summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-09-02 22:02:41 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-09-03 03:04:37 +0200
commita143fe8c5451493b128b4c6f0750f02b58af8666 (patch)
tree4b74787f6ece9256db04dc65002cae749f6936b3
parent2bfe659e4d30b449747585e18eeb84bfc5d73f43 (diff)
Add initial version of new UML metamodel implementation
Change-Id: Ic29a04dc49fac075d9c736237573b7f4e3da85ef Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
-rw-r--r--examples/uml/nested-packages/main.cpp430
-rwxr-xr-xscripts/generate-class.pl30
-rw-r--r--scripts/templates/class.cpp327
-rw-r--r--scripts/templates/class_p.h130
-rw-r--r--scripts/templates/common.tmpl185
-rw-r--r--scripts/templates/module.pri9
-rw-r--r--scripts/templates/module.pro2
-rw-r--r--scripts/templates/qclass.cpp361
-rw-r--r--scripts/templates/qclass.h110
-rw-r--r--scripts/templates/qobjectclass.cpp85
-rw-r--r--scripts/templates/qobjectclass_p.h94
-rwxr-xr-xscripts/xmi2qt.pl2
-rw-r--r--src/modeling/modeling.pro15
-rw-r--r--src/modeling/qguardedlist.h133
-rw-r--r--src/modeling/qguardedset.h131
-rw-r--r--src/modeling/qmodelingobject.cpp66
-rw-r--r--src/modeling/qmodelingobject.h29
-rw-r--r--src/modeling/qsignaledpointer.h104
-rw-r--r--src/modeling/qtmodelingglobal.h9
-rw-r--r--src/src.pro4
-rw-r--r--src/uml/internal/umlabstraction.cpp75
-rw-r--r--src/uml/internal/umlabstraction_p.h68
-rw-r--r--src/uml/internal/umlacceptcallaction.cpp75
-rw-r--r--src/uml/internal/umlacceptcallaction_p.h68
-rw-r--r--src/uml/internal/umlaccepteventaction.cpp130
-rw-r--r--src/uml/internal/umlaccepteventaction_p.h77
-rw-r--r--src/uml/internal/umlaction.cpp215
-rw-r--r--src/uml/internal/umlaction_p.h89
-rw-r--r--src/uml/internal/umlactionexecutionspecification.cpp67
-rw-r--r--src/uml/internal/umlactionexecutionspecification_p.h68
-rw-r--r--src/uml/internal/umlactioninputpin.cpp75
-rw-r--r--src/uml/internal/umlactioninputpin_p.h68
-rw-r--r--src/uml/internal/umlactivity.cpp327
-rw-r--r--src/uml/internal/umlactivity_p.h100
-rw-r--r--src/uml/internal/umlactivityedge.cpp312
-rw-r--r--src/uml/internal/umlactivityedge_p.h104
-rw-r--r--src/uml/internal/umlactivityfinalnode.cpp46
-rw-r--r--src/uml/internal/umlactivityfinalnode_p.h61
-rw-r--r--src/uml/internal/umlactivitygroup.cpp197
-rw-r--r--src/uml/internal/umlactivitygroup_p.h85
-rw-r--r--src/uml/internal/umlactivitynode.cpp321
-rw-r--r--src/uml/internal/umlactivitynode_p.h100
-rw-r--r--src/uml/internal/umlactivityparameternode.cpp67
-rw-r--r--src/uml/internal/umlactivityparameternode_p.h68
-rw-r--r--src/uml/internal/umlactivitypartition.cpp238
-rw-r--r--src/uml/internal/umlactivitypartition_p.h91
-rw-r--r--src/uml/internal/umlactor.cpp46
-rw-r--r--src/uml/internal/umlactor_p.h61
-rw-r--r--src/uml/internal/umladdstructuralfeaturevalueaction.cpp92
-rw-r--r--src/uml/internal/umladdstructuralfeaturevalueaction_p.h71
-rw-r--r--src/uml/internal/umladdvariablevalueaction.cpp92
-rw-r--r--src/uml/internal/umladdvariablevalueaction_p.h71
-rw-r--r--src/uml/internal/umlanyreceiveevent.cpp46
-rw-r--r--src/uml/internal/umlanyreceiveevent_p.h61
-rw-r--r--src/uml/internal/umlartifact.cpp198
-rw-r--r--src/uml/internal/umlartifact_p.h87
-rw-r--r--src/uml/internal/umlassociation.cpp224
-rw-r--r--src/uml/internal/umlassociation_p.h85
-rw-r--r--src/uml/internal/umlassociationclass.cpp46
-rw-r--r--src/uml/internal/umlassociationclass_p.h62
-rw-r--r--src/uml/internal/umlbehavior.cpp272
-rw-r--r--src/uml/internal/umlbehavior_p.h97
-rw-r--r--src/uml/internal/umlbehavioralfeature.cpp222
-rw-r--r--src/uml/internal/umlbehavioralfeature_p.h97
-rw-r--r--src/uml/internal/umlbehavioredclassifier.cpp150
-rw-r--r--src/uml/internal/umlbehavioredclassifier_p.h77
-rw-r--r--src/uml/internal/umlbehaviorexecutionspecification.cpp67
-rw-r--r--src/uml/internal/umlbehaviorexecutionspecification_p.h68
-rw-r--r--src/uml/internal/umlbroadcastsignalaction.cpp67
-rw-r--r--src/uml/internal/umlbroadcastsignalaction_p.h68
-rw-r--r--src/uml/internal/umlcallaction.cpp98
-rw-r--r--src/uml/internal/umlcallaction_p.h72
-rw-r--r--src/uml/internal/umlcallbehavioraction.cpp67
-rw-r--r--src/uml/internal/umlcallbehavioraction_p.h68
-rw-r--r--src/uml/internal/umlcallevent.cpp67
-rw-r--r--src/uml/internal/umlcallevent_p.h68
-rw-r--r--src/uml/internal/umlcalloperationaction.cpp93
-rw-r--r--src/uml/internal/umlcalloperationaction_p.h72
-rw-r--r--src/uml/internal/umlcentralbuffernode.cpp46
-rw-r--r--src/uml/internal/umlcentralbuffernode_p.h61
-rw-r--r--src/uml/internal/umlchangeevent.cpp75
-rw-r--r--src/uml/internal/umlchangeevent_p.h68
-rw-r--r--src/uml/internal/umlclass.cpp326
-rw-r--r--src/uml/internal/umlclass_p.h102
-rw-r--r--src/uml/internal/umlclassifier.cpp622
-rw-r--r--src/uml/internal/umlclassifier_p.h145
-rw-r--r--src/uml/internal/umlclassifiertemplateparameter.cpp109
-rw-r--r--src/uml/internal/umlclassifiertemplateparameter_p.h75
-rw-r--r--src/uml/internal/umlclause.cpp193
-rw-r--r--src/uml/internal/umlclause_p.h89
-rw-r--r--src/uml/internal/umlclearassociationaction.cpp93
-rw-r--r--src/uml/internal/umlclearassociationaction_p.h72
-rw-r--r--src/uml/internal/umlclearstructuralfeatureaction.cpp75
-rw-r--r--src/uml/internal/umlclearstructuralfeatureaction_p.h68
-rw-r--r--src/uml/internal/umlclearvariableaction.cpp46
-rw-r--r--src/uml/internal/umlclearvariableaction_p.h61
-rw-r--r--src/uml/internal/umlcollaboration.cpp81
-rw-r--r--src/uml/internal/umlcollaboration_p.h70
-rw-r--r--src/uml/internal/umlcollaborationuse.cpp99
-rw-r--r--src/uml/internal/umlcollaborationuse_p.h73
-rw-r--r--src/uml/internal/umlcombinedfragment.cpp130
-rw-r--r--src/uml/internal/umlcombinedfragment_p.h79
-rw-r--r--src/uml/internal/umlcomment.cpp89
-rw-r--r--src/uml/internal/umlcomment_p.h70
-rw-r--r--src/uml/internal/umlcommunicationpath.cpp46
-rw-r--r--src/uml/internal/umlcommunicationpath_p.h61
-rw-r--r--src/uml/internal/umlcomponent.cpp228
-rw-r--r--src/uml/internal/umlcomponent_p.h89
-rw-r--r--src/uml/internal/umlcomponentrealization.cpp108
-rw-r--r--src/uml/internal/umlcomponentrealization_p.h73
-rw-r--r--src/uml/internal/umlconditionalnode.cpp141
-rw-r--r--src/uml/internal/umlconditionalnode_p.h80
-rw-r--r--src/uml/internal/umlconnectableelement.cpp111
-rw-r--r--src/uml/internal/umlconnectableelement_p.h73
-rw-r--r--src/uml/internal/umlconnectableelementtemplateparameter.cpp67
-rw-r--r--src/uml/internal/umlconnectableelementtemplateparameter_p.h68
-rw-r--r--src/uml/internal/umlconnectionpointreference.cpp123
-rw-r--r--src/uml/internal/umlconnectionpointreference_p.h77
-rw-r--r--src/uml/internal/umlconnector.cpp177
-rw-r--r--src/uml/internal/umlconnector_p.h86
-rw-r--r--src/uml/internal/umlconnectorend.cpp106
-rw-r--r--src/uml/internal/umlconnectorend_p.h74
-rw-r--r--src/uml/internal/umlconsiderignorefragment.cpp75
-rw-r--r--src/uml/internal/umlconsiderignorefragment_p.h69
-rw-r--r--src/uml/internal/umlconstraint.cpp124
-rw-r--r--src/uml/internal/umlconstraint_p.h77
-rw-r--r--src/uml/internal/umlcontinuation.cpp65
-rw-r--r--src/uml/internal/umlcontinuation_p.h66
-rw-r--r--src/uml/internal/umlcontrolflow.cpp46
-rw-r--r--src/uml/internal/umlcontrolflow_p.h61
-rw-r--r--src/uml/internal/umlcontrolnode.cpp46
-rw-r--r--src/uml/internal/umlcontrolnode_p.h61
-rw-r--r--src/uml/internal/umlcreatelinkaction.cpp75
-rw-r--r--src/uml/internal/umlcreatelinkaction_p.h69
-rw-r--r--src/uml/internal/umlcreatelinkobjectaction.cpp75
-rw-r--r--src/uml/internal/umlcreatelinkobjectaction_p.h68
-rw-r--r--src/uml/internal/umlcreateobjectaction.cpp93
-rw-r--r--src/uml/internal/umlcreateobjectaction_p.h72
-rw-r--r--src/uml/internal/umldatastorenode.cpp46
-rw-r--r--src/uml/internal/umldatastorenode_p.h61
-rw-r--r--src/uml/internal/umldatatype.cpp149
-rw-r--r--src/uml/internal/umldatatype_p.h78
-rw-r--r--src/uml/internal/umldecisionnode.cpp85
-rw-r--r--src/uml/internal/umldecisionnode_p.h72
-rw-r--r--src/uml/internal/umldependency.cpp122
-rw-r--r--src/uml/internal/umldependency_p.h74
-rw-r--r--src/uml/internal/umldeployedartifact.cpp46
-rw-r--r--src/uml/internal/umldeployedartifact_p.h61
-rw-r--r--src/uml/internal/umldeployment.cpp150
-rw-r--r--src/uml/internal/umldeployment_p.h78
-rw-r--r--src/uml/internal/umldeploymentspecification.cpp104
-rw-r--r--src/uml/internal/umldeploymentspecification_p.h74
-rw-r--r--src/uml/internal/umldeploymenttarget.cpp127
-rw-r--r--src/uml/internal/umldeploymenttarget_p.h73
-rw-r--r--src/uml/internal/umldestroylinkaction.cpp75
-rw-r--r--src/uml/internal/umldestroylinkaction_p.h69
-rw-r--r--src/uml/internal/umldestroyobjectaction.cpp109
-rw-r--r--src/uml/internal/umldestroyobjectaction_p.h74
-rw-r--r--src/uml/internal/umldestructionoccurrencespecification.cpp46
-rw-r--r--src/uml/internal/umldestructionoccurrencespecification_p.h61
-rw-r--r--src/uml/internal/umldevice.cpp46
-rw-r--r--src/uml/internal/umldevice_p.h61
-rw-r--r--src/uml/internal/umldirectedrelationship.cpp112
-rw-r--r--src/uml/internal/umldirectedrelationship_p.h73
-rw-r--r--src/uml/internal/umlduration.cpp100
-rw-r--r--src/uml/internal/umlduration_p.h72
-rw-r--r--src/uml/internal/umldurationconstraint.cpp83
-rw-r--r--src/uml/internal/umldurationconstraint_p.h71
-rw-r--r--src/uml/internal/umldurationinterval.cpp84
-rw-r--r--src/uml/internal/umldurationinterval_p.h71
-rw-r--r--src/uml/internal/umldurationobservation.cpp83
-rw-r--r--src/uml/internal/umldurationobservation_p.h71
-rw-r--r--src/uml/internal/umlelement.cpp141
-rw-r--r--src/uml/internal/umlelement_p.h78
-rw-r--r--src/uml/internal/umlelementimport.cpp145
-rw-r--r--src/uml/internal/umlelementimport_p.h83
-rw-r--r--src/uml/internal/umlencapsulatedclassifier.cpp89
-rw-r--r--src/uml/internal/umlencapsulatedclassifier_p.h68
-rw-r--r--src/uml/internal/umlenumeration.cpp91
-rw-r--r--src/uml/internal/umlenumeration_p.h69
-rw-r--r--src/uml/internal/umlenumerationliteral.cpp93
-rw-r--r--src/uml/internal/umlenumerationliteral_p.h70
-rw-r--r--src/uml/internal/umlevent.cpp46
-rw-r--r--src/uml/internal/umlevent_p.h61
-rw-r--r--src/uml/internal/umlexceptionhandler.cpp133
-rw-r--r--src/uml/internal/umlexceptionhandler_p.h80
-rw-r--r--src/uml/internal/umlexecutablenode.cpp91
-rw-r--r--src/uml/internal/umlexecutablenode_p.h69
-rw-r--r--src/uml/internal/umlexecutionenvironment.cpp46
-rw-r--r--src/uml/internal/umlexecutionenvironment_p.h61
-rw-r--r--src/uml/internal/umlexecutionoccurrencespecification.cpp67
-rw-r--r--src/uml/internal/umlexecutionoccurrencespecification_p.h68
-rw-r--r--src/uml/internal/umlexecutionspecification.cpp84
-rw-r--r--src/uml/internal/umlexecutionspecification_p.h71
-rw-r--r--src/uml/internal/umlexpansionnode.cpp84
-rw-r--r--src/uml/internal/umlexpansionnode_p.h71
-rw-r--r--src/uml/internal/umlexpansionregion.cpp137
-rw-r--r--src/uml/internal/umlexpansionregion_p.h78
-rw-r--r--src/uml/internal/umlexpression.cpp95
-rw-r--r--src/uml/internal/umlexpression_p.h70
-rw-r--r--src/uml/internal/umlextend.cpp153
-rw-r--r--src/uml/internal/umlextend_p.h81
-rw-r--r--src/uml/internal/umlextension.cpp121
-rw-r--r--src/uml/internal/umlextension_p.h77
-rw-r--r--src/uml/internal/umlextensionend.cpp98
-rw-r--r--src/uml/internal/umlextensionend_p.h73
-rw-r--r--src/uml/internal/umlextensionpoint.cpp72
-rw-r--r--src/uml/internal/umlextensionpoint_p.h68
-rw-r--r--src/uml/internal/umlfeature.cpp102
-rw-r--r--src/uml/internal/umlfeature_p.h72
-rw-r--r--src/uml/internal/umlfinalnode.cpp46
-rw-r--r--src/uml/internal/umlfinalnode_p.h61
-rw-r--r--src/uml/internal/umlfinalstate.cpp46
-rw-r--r--src/uml/internal/umlfinalstate_p.h61
-rw-r--r--src/uml/internal/umlflowfinalnode.cpp46
-rw-r--r--src/uml/internal/umlflowfinalnode_p.h61
-rw-r--r--src/uml/internal/umlforknode.cpp46
-rw-r--r--src/uml/internal/umlforknode_p.h61
-rw-r--r--src/uml/internal/umlfunctionbehavior.cpp46
-rw-r--r--src/uml/internal/umlfunctionbehavior_p.h61
-rw-r--r--src/uml/internal/umlgate.cpp46
-rw-r--r--src/uml/internal/umlgate_p.h61
-rw-r--r--src/uml/internal/umlgeneralization.cpp154
-rw-r--r--src/uml/internal/umlgeneralization_p.h79
-rw-r--r--src/uml/internal/umlgeneralizationset.cpp137
-rw-r--r--src/uml/internal/umlgeneralizationset_p.h79
-rw-r--r--src/uml/internal/umlgeneralordering.cpp84
-rw-r--r--src/uml/internal/umlgeneralordering_p.h71
-rw-r--r--src/uml/internal/umlimage.cpp96
-rw-r--r--src/uml/internal/umlimage_p.h72
-rw-r--r--src/uml/internal/umlinclude.cpp101
-rw-r--r--src/uml/internal/umlinclude_p.h72
-rw-r--r--src/uml/internal/umlinformationflow.cpp242
-rw-r--r--src/uml/internal/umlinformationflow_p.h99
-rw-r--r--src/uml/internal/umlinformationitem.cpp73
-rw-r--r--src/uml/internal/umlinformationitem_p.h67
-rw-r--r--src/uml/internal/umlinitialnode.cpp46
-rw-r--r--src/uml/internal/umlinitialnode_p.h61
-rw-r--r--src/uml/internal/umlinputpin.cpp46
-rw-r--r--src/uml/internal/umlinputpin_p.h61
-rw-r--r--src/uml/internal/umlinstancespecification.cpp143
-rw-r--r--src/uml/internal/umlinstancespecification_p.h80
-rw-r--r--src/uml/internal/umlinstancevalue.cpp67
-rw-r--r--src/uml/internal/umlinstancevalue_p.h68
-rw-r--r--src/uml/internal/umlinteraction.cpp238
-rw-r--r--src/uml/internal/umlinteraction_p.h89
-rw-r--r--src/uml/internal/umlinteractionconstraint.cpp100
-rw-r--r--src/uml/internal/umlinteractionconstraint_p.h71
-rw-r--r--src/uml/internal/umlinteractionfragment.cpp163
-rw-r--r--src/uml/internal/umlinteractionfragment_p.h82
-rw-r--r--src/uml/internal/umlinteractionoperand.cpp116
-rw-r--r--src/uml/internal/umlinteractionoperand_p.h73
-rw-r--r--src/uml/internal/umlinteractionuse.cpp174
-rw-r--r--src/uml/internal/umlinteractionuse_p.h85
-rw-r--r--src/uml/internal/umlinterface.cpp259
-rw-r--r--src/uml/internal/umlinterface_p.h91
-rw-r--r--src/uml/internal/umlinterfacerealization.cpp102
-rw-r--r--src/uml/internal/umlinterfacerealization_p.h72
-rw-r--r--src/uml/internal/umlinterruptibleactivityregion.cpp127
-rw-r--r--src/uml/internal/umlinterruptibleactivityregion_p.h74
-rw-r--r--src/uml/internal/umlinterval.cpp82
-rw-r--r--src/uml/internal/umlinterval_p.h69
-rw-r--r--src/uml/internal/umlintervalconstraint.cpp67
-rw-r--r--src/uml/internal/umlintervalconstraint_p.h68
-rw-r--r--src/uml/internal/umlinvocationaction.cpp99
-rw-r--r--src/uml/internal/umlinvocationaction_p.h73
-rw-r--r--src/uml/internal/umljoinnode.cpp92
-rw-r--r--src/uml/internal/umljoinnode_p.h71
-rw-r--r--src/uml/internal/umllifeline.cpp170
-rw-r--r--src/uml/internal/umllifeline_p.h85
-rw-r--r--src/uml/internal/umllinkaction.cpp124
-rw-r--r--src/uml/internal/umllinkaction_p.h78
-rw-r--r--src/uml/internal/umllinkendcreationdata.cpp84
-rw-r--r--src/uml/internal/umllinkendcreationdata_p.h71
-rw-r--r--src/uml/internal/umllinkenddata.cpp117
-rw-r--r--src/uml/internal/umllinkenddata_p.h77
-rw-r--r--src/uml/internal/umllinkenddestructiondata.cpp84
-rw-r--r--src/uml/internal/umllinkenddestructiondata_p.h71
-rw-r--r--src/uml/internal/umlliteralboolean.cpp83
-rw-r--r--src/uml/internal/umlliteralboolean_p.h70
-rw-r--r--src/uml/internal/umlliteralinteger.cpp83
-rw-r--r--src/uml/internal/umlliteralinteger_p.h70
-rw-r--r--src/uml/internal/umlliteralnull.cpp64
-rw-r--r--src/uml/internal/umlliteralnull_p.h65
-rw-r--r--src/uml/internal/umlliteralreal.cpp82
-rw-r--r--src/uml/internal/umlliteralreal_p.h70
-rw-r--r--src/uml/internal/umlliteralspecification.cpp46
-rw-r--r--src/uml/internal/umlliteralspecification_p.h61
-rw-r--r--src/uml/internal/umlliteralstring.cpp82
-rw-r--r--src/uml/internal/umlliteralstring_p.h70
-rw-r--r--src/uml/internal/umlliteralunlimitednatural.cpp83
-rw-r--r--src/uml/internal/umlliteralunlimitednatural_p.h70
-rw-r--r--src/uml/internal/umlloopnode.cpp261
-rw-r--r--src/uml/internal/umlloopnode_p.h101
-rw-r--r--src/uml/internal/umlmanifestation.cpp75
-rw-r--r--src/uml/internal/umlmanifestation_p.h68
-rw-r--r--src/uml/internal/umlmergenode.cpp46
-rw-r--r--src/uml/internal/umlmergenode_p.h61
-rw-r--r--src/uml/internal/umlmessage.cpp212
-rw-r--r--src/uml/internal/umlmessage_p.h94
-rw-r--r--src/uml/internal/umlmessageend.cpp67
-rw-r--r--src/uml/internal/umlmessageend_p.h68
-rw-r--r--src/uml/internal/umlmessageevent.cpp46
-rw-r--r--src/uml/internal/umlmessageevent_p.h61
-rw-r--r--src/uml/internal/umlmessageoccurrencespecification.cpp46
-rw-r--r--src/uml/internal/umlmessageoccurrencespecification_p.h62
-rw-r--r--src/uml/internal/umlmodel.cpp64
-rw-r--r--src/uml/internal/umlmodel_p.h66
-rw-r--r--src/uml/internal/umlmultiplicityelement.cpp239
-rw-r--r--src/uml/internal/umlmultiplicityelement_p.h90
-rw-r--r--src/uml/internal/umlnamedelement.cpp224
-rw-r--r--src/uml/internal/umlnamedelement_p.h94
-rw-r--r--src/uml/internal/umlnamespace.cpp320
-rw-r--r--src/uml/internal/umlnamespace_p.h97
-rw-r--r--src/uml/internal/umlnode.cpp79
-rw-r--r--src/uml/internal/umlnode_p.h68
-rw-r--r--src/uml/internal/umlobjectflow.cpp118
-rw-r--r--src/uml/internal/umlobjectflow_p.h77
-rw-r--r--src/uml/internal/umlobjectnode.cpp153
-rw-r--r--src/uml/internal/umlobjectnode_p.h86
-rw-r--r--src/uml/internal/umlobservation.cpp46
-rw-r--r--src/uml/internal/umlobservation_p.h61
-rw-r--r--src/uml/internal/umloccurrencespecification.cpp138
-rw-r--r--src/uml/internal/umloccurrencespecification_p.h77
-rw-r--r--src/uml/internal/umlopaqueaction.cpp163
-rw-r--r--src/uml/internal/umlopaqueaction_p.h82
-rw-r--r--src/uml/internal/umlopaquebehavior.cpp98
-rw-r--r--src/uml/internal/umlopaquebehavior_p.h71
-rw-r--r--src/uml/internal/umlopaqueexpression.cpp173
-rw-r--r--src/uml/internal/umlopaqueexpression_p.h85
-rw-r--r--src/uml/internal/umloperation.cpp483
-rw-r--r--src/uml/internal/umloperation_p.h126
-rw-r--r--src/uml/internal/umloperationtemplateparameter.cpp67
-rw-r--r--src/uml/internal/umloperationtemplateparameter_p.h68
-rw-r--r--src/uml/internal/umloutputpin.cpp46
-rw-r--r--src/uml/internal/umloutputpin_p.h61
-rw-r--r--src/uml/internal/umlpackage.cpp371
-rw-r--r--src/uml/internal/umlpackage_p.h106
-rw-r--r--src/uml/internal/umlpackageableelement.cpp65
-rw-r--r--src/uml/internal/umlpackageableelement_p.h69
-rw-r--r--src/uml/internal/umlpackageimport.cpp119
-rw-r--r--src/uml/internal/umlpackageimport_p.h77
-rw-r--r--src/uml/internal/umlpackagemerge.cpp101
-rw-r--r--src/uml/internal/umlpackagemerge_p.h71
-rw-r--r--src/uml/internal/umlparameter.cpp217
-rw-r--r--src/uml/internal/umlparameter_p.h94
-rw-r--r--src/uml/internal/umlparameterableelement.cpp109
-rw-r--r--src/uml/internal/umlparameterableelement_p.h75
-rw-r--r--src/uml/internal/umlparameterset.cpp117
-rw-r--r--src/uml/internal/umlparameterset_p.h74
-rw-r--r--src/uml/internal/umlpartdecomposition.cpp46
-rw-r--r--src/uml/internal/umlpartdecomposition_p.h61
-rw-r--r--src/uml/internal/umlpin.cpp65
-rw-r--r--src/uml/internal/umlpin_p.h67
-rw-r--r--src/uml/internal/umlport.cpp216
-rw-r--r--src/uml/internal/umlport_p.h88
-rw-r--r--src/uml/internal/umlprimitivetype.cpp46
-rw-r--r--src/uml/internal/umlprimitivetype_p.h61
-rw-r--r--src/uml/internal/umlprofile.cpp113
-rw-r--r--src/uml/internal/umlprofile_p.h74
-rw-r--r--src/uml/internal/umlprofileapplication.cpp119
-rw-r--r--src/uml/internal/umlprofileapplication_p.h75
-rw-r--r--src/uml/internal/umlproperty.cpp498
-rw-r--r--src/uml/internal/umlproperty_p.h137
-rw-r--r--src/uml/internal/umlprotocolconformance.cpp101
-rw-r--r--src/uml/internal/umlprotocolconformance_p.h71
-rw-r--r--src/uml/internal/umlprotocolstatemachine.cpp91
-rw-r--r--src/uml/internal/umlprotocolstatemachine_p.h69
-rw-r--r--src/uml/internal/umlprotocoltransition.cpp131
-rw-r--r--src/uml/internal/umlprotocoltransition_p.h75
-rw-r--r--src/uml/internal/umlpseudostate.cpp112
-rw-r--r--src/uml/internal/umlpseudostate_p.h77
-rw-r--r--src/uml/internal/umlqualifiervalue.cpp85
-rw-r--r--src/uml/internal/umlqualifiervalue_p.h72
-rw-r--r--src/uml/internal/umlraiseexceptionaction.cpp75
-rw-r--r--src/uml/internal/umlraiseexceptionaction_p.h68
-rw-r--r--src/uml/internal/umlreadextentaction.cpp93
-rw-r--r--src/uml/internal/umlreadextentaction_p.h72
-rw-r--r--src/uml/internal/umlreadisclassifiedobjectaction.cpp136
-rw-r--r--src/uml/internal/umlreadisclassifiedobjectaction_p.h79
-rw-r--r--src/uml/internal/umlreadlinkaction.cpp75
-rw-r--r--src/uml/internal/umlreadlinkaction_p.h68
-rw-r--r--src/uml/internal/umlreadlinkobjectendaction.cpp119
-rw-r--r--src/uml/internal/umlreadlinkobjectendaction_p.h76
-rw-r--r--src/uml/internal/umlreadlinkobjectendqualifieraction.cpp119
-rw-r--r--src/uml/internal/umlreadlinkobjectendqualifieraction_p.h76
-rw-r--r--src/uml/internal/umlreadselfaction.cpp75
-rw-r--r--src/uml/internal/umlreadselfaction_p.h68
-rw-r--r--src/uml/internal/umlreadstructuralfeatureaction.cpp75
-rw-r--r--src/uml/internal/umlreadstructuralfeatureaction_p.h68
-rw-r--r--src/uml/internal/umlreadvariableaction.cpp75
-rw-r--r--src/uml/internal/umlreadvariableaction_p.h68
-rw-r--r--src/uml/internal/umlrealization.cpp46
-rw-r--r--src/uml/internal/umlrealization_p.h61
-rw-r--r--src/uml/internal/umlreception.cpp67
-rw-r--r--src/uml/internal/umlreception_p.h68
-rw-r--r--src/uml/internal/umlreclassifyobjectaction.cpp143
-rw-r--r--src/uml/internal/umlreclassifyobjectaction_p.h80
-rw-r--r--src/uml/internal/umlredefinableelement.cpp137
-rw-r--r--src/uml/internal/umlredefinableelement_p.h80
-rw-r--r--src/uml/internal/umlredefinabletemplatesignature.cpp157
-rw-r--r--src/uml/internal/umlredefinabletemplatesignature_p.h80
-rw-r--r--src/uml/internal/umlreduceaction.cpp136
-rw-r--r--src/uml/internal/umlreduceaction_p.h79
-rw-r--r--src/uml/internal/umlregion.cpp262
-rw-r--r--src/uml/internal/umlregion_p.h95
-rw-r--r--src/uml/internal/umlrelationship.cpp73
-rw-r--r--src/uml/internal/umlrelationship_p.h67
-rw-r--r--src/uml/internal/umlremovestructuralfeaturevalueaction.cpp92
-rw-r--r--src/uml/internal/umlremovestructuralfeaturevalueaction_p.h71
-rw-r--r--src/uml/internal/umlremovevariablevalueaction.cpp92
-rw-r--r--src/uml/internal/umlremovevariablevalueaction_p.h71
-rw-r--r--src/uml/internal/umlreplyaction.cpp124
-rw-r--r--src/uml/internal/umlreplyaction_p.h76
-rw-r--r--src/uml/internal/umlsendobjectaction.cpp92
-rw-r--r--src/uml/internal/umlsendobjectaction_p.h71
-rw-r--r--src/uml/internal/umlsendsignalaction.cpp93
-rw-r--r--src/uml/internal/umlsendsignalaction_p.h72
-rw-r--r--src/uml/internal/umlsequencenode.cpp75
-rw-r--r--src/uml/internal/umlsequencenode_p.h69
-rw-r--r--src/uml/internal/umlsignal.cpp83
-rw-r--r--src/uml/internal/umlsignal_p.h69
-rw-r--r--src/uml/internal/umlsignalevent.cpp67
-rw-r--r--src/uml/internal/umlsignalevent_p.h68
-rw-r--r--src/uml/internal/umlslot.cpp122
-rw-r--r--src/uml/internal/umlslot_p.h77
-rw-r--r--src/uml/internal/umlstartclassifierbehavioraction.cpp75
-rw-r--r--src/uml/internal/umlstartclassifierbehavioraction_p.h68
-rw-r--r--src/uml/internal/umlstartobjectbehavioraction.cpp75
-rw-r--r--src/uml/internal/umlstartobjectbehavioraction_p.h68
-rw-r--r--src/uml/internal/umlstate.cpp486
-rw-r--r--src/uml/internal/umlstate_p.h123
-rw-r--r--src/uml/internal/umlstateinvariant.cpp93
-rw-r--r--src/uml/internal/umlstateinvariant_p.h72
-rw-r--r--src/uml/internal/umlstatemachine.cpp236
-rw-r--r--src/uml/internal/umlstatemachine_p.h91
-rw-r--r--src/uml/internal/umlstereotype.cpp113
-rw-r--r--src/uml/internal/umlstereotype_p.h75
-rw-r--r--src/uml/internal/umlstringexpression.cpp111
-rw-r--r--src/uml/internal/umlstringexpression_p.h74
-rw-r--r--src/uml/internal/umlstructuralfeature.cpp65
-rw-r--r--src/uml/internal/umlstructuralfeature_p.h68
-rw-r--r--src/uml/internal/umlstructuralfeatureaction.cpp93
-rw-r--r--src/uml/internal/umlstructuralfeatureaction_p.h72
-rw-r--r--src/uml/internal/umlstructuredactivitynode.cpp278
-rw-r--r--src/uml/internal/umlstructuredactivitynode_p.h98
-rw-r--r--src/uml/internal/umlstructuredclassifier.cpp184
-rw-r--r--src/uml/internal/umlstructuredclassifier_p.h82
-rw-r--r--src/uml/internal/umlsubstitution.cpp101
-rw-r--r--src/uml/internal/umlsubstitution_p.h71
-rw-r--r--src/uml/internal/umltemplateableelement.cpp136
-rw-r--r--src/uml/internal/umltemplateableelement_p.h78
-rw-r--r--src/uml/internal/umltemplatebinding.cpp144
-rw-r--r--src/uml/internal/umltemplatebinding_p.h77
-rw-r--r--src/uml/internal/umltemplateparameter.cpp159
-rw-r--r--src/uml/internal/umltemplateparameter_p.h81
-rw-r--r--src/uml/internal/umltemplateparametersubstitution.cpp134
-rw-r--r--src/uml/internal/umltemplateparametersubstitution_p.h79
-rw-r--r--src/uml/internal/umltemplatesignature.cpp141
-rw-r--r--src/uml/internal/umltemplatesignature_p.h77
-rw-r--r--src/uml/internal/umltestidentityaction.cpp126
-rw-r--r--src/uml/internal/umltestidentityaction_p.h75
-rw-r--r--src/uml/internal/umltimeconstraint.cpp84
-rw-r--r--src/uml/internal/umltimeconstraint_p.h71
-rw-r--r--src/uml/internal/umltimeevent.cpp92
-rw-r--r--src/uml/internal/umltimeevent_p.h71
-rw-r--r--src/uml/internal/umltimeexpression.cpp100
-rw-r--r--src/uml/internal/umltimeexpression_p.h72
-rw-r--r--src/uml/internal/umltimeinterval.cpp84
-rw-r--r--src/uml/internal/umltimeinterval_p.h71
-rw-r--r--src/uml/internal/umltimeobservation.cpp84
-rw-r--r--src/uml/internal/umltimeobservation_p.h71
-rw-r--r--src/uml/internal/umltransition.cpp275
-rw-r--r--src/uml/internal/umltransition_p.h105
-rw-r--r--src/uml/internal/umltrigger.cpp93
-rw-r--r--src/uml/internal/umltrigger_p.h73
-rw-r--r--src/uml/internal/umltype.cpp78
-rw-r--r--src/uml/internal/umltype_p.h71
-rw-r--r--src/uml/internal/umltypedelement.cpp67
-rw-r--r--src/uml/internal/umltypedelement_p.h68
-rw-r--r--src/uml/internal/umlunmarshallaction.cpp125
-rw-r--r--src/uml/internal/umlunmarshallaction_p.h77
-rw-r--r--src/uml/internal/umlusage.cpp46
-rw-r--r--src/uml/internal/umlusage_p.h61
-rw-r--r--src/uml/internal/umlusecase.cpp221
-rw-r--r--src/uml/internal/umlusecase_p.h87
-rw-r--r--src/uml/internal/umlvaluepin.cpp75
-rw-r--r--src/uml/internal/umlvaluepin_p.h68
-rw-r--r--src/uml/internal/umlvaluespecification.cpp115
-rw-r--r--src/uml/internal/umlvaluespecification_p.h74
-rw-r--r--src/uml/internal/umlvaluespecificationaction.cpp101
-rw-r--r--src/uml/internal/umlvaluespecificationaction_p.h72
-rw-r--r--src/uml/internal/umlvariable.cpp107
-rw-r--r--src/uml/internal/umlvariable_p.h77
-rw-r--r--src/uml/internal/umlvariableaction.cpp67
-rw-r--r--src/uml/internal/umlvariableaction_p.h68
-rw-r--r--src/uml/internal/umlvertex.cpp170
-rw-r--r--src/uml/internal/umlvertex_p.h79
-rw-r--r--src/uml/internal/umlwritelinkaction.cpp46
-rw-r--r--src/uml/internal/umlwritelinkaction_p.h61
-rw-r--r--src/uml/internal/umlwritestructuralfeatureaction.cpp101
-rw-r--r--src/uml/internal/umlwritestructuralfeatureaction_p.h72
-rw-r--r--src/uml/internal/umlwritevariableaction.cpp75
-rw-r--r--src/uml/internal/umlwritevariableaction_p.h68
-rw-r--r--src/uml/qobjects/qumlabstractionobject.cpp390
-rw-r--r--src/uml/qobjects/qumlabstractionobject_p.h194
-rw-r--r--src/uml/qobjects/qumlacceptcallactionobject.cpp623
-rw-r--r--src/uml/qobjects/qumlacceptcallactionobject_p.h246
-rw-r--r--src/uml/qobjects/qumlaccepteventactionobject.cpp609
-rw-r--r--src/uml/qobjects/qumlaccepteventactionobject_p.h237
-rw-r--r--src/uml/qobjects/qumlactionexecutionspecificationobject.cpp337
-rw-r--r--src/uml/qobjects/qumlactionexecutionspecificationobject_p.h166
-rw-r--r--src/uml/qobjects/qumlactioninputpinobject.cpp647
-rw-r--r--src/uml/qobjects/qumlactioninputpinobject_p.h264
-rw-r--r--src/uml/qobjects/qumlactivityfinalnodeobject.cpp436
-rw-r--r--src/uml/qobjects/qumlactivityfinalnodeobject_p.h182
-rw-r--r--src/uml/qobjects/qumlactivityobject.cpp1362
-rw-r--r--src/uml/qobjects/qumlactivityobject_p.h448
-rw-r--r--src/uml/qobjects/qumlactivityparameternodeobject.cpp531
-rw-r--r--src/uml/qobjects/qumlactivityparameternodeobject_p.h222
-rw-r--r--src/uml/qobjects/qumlactivitypartitionobject.cpp413
-rw-r--r--src/uml/qobjects/qumlactivitypartitionobject_p.h179
-rw-r--r--src/uml/qobjects/qumlactorobject.cpp903
-rw-r--r--src/uml/qobjects/qumlactorobject_p.h318
-rw-r--r--src/uml/qobjects/qumladdstructuralfeaturevalueactionobject.cpp631
-rw-r--r--src/uml/qobjects/qumladdstructuralfeaturevalueactionobject_p.h256
-rw-r--r--src/uml/qobjects/qumladdvariablevalueactionobject.cpp611
-rw-r--r--src/uml/qobjects/qumladdvariablevalueactionobject_p.h250
-rw-r--r--src/uml/qobjects/qumlanyreceiveeventobject.cpp273
-rw-r--r--src/uml/qobjects/qumlanyreceiveeventobject_p.h147
-rw-r--r--src/uml/qobjects/qumlartifactobject.cpp939
-rw-r--r--src/uml/qobjects/qumlartifactobject_p.h326
-rw-r--r--src/uml/qobjects/qumlassociationclassobject.cpp1204
-rw-r--r--src/uml/qobjects/qumlassociationclassobject_p.h412
-rw-r--r--src/uml/qobjects/qumlassociationobject.cpp959
-rw-r--r--src/uml/qobjects/qumlassociationobject_p.h336
-rw-r--r--src/uml/qobjects/qumlbehaviorexecutionspecificationobject.cpp337
-rw-r--r--src/uml/qobjects/qumlbehaviorexecutionspecificationobject_p.h166
-rw-r--r--src/uml/qobjects/qumlbroadcastsignalactionobject.cpp606
-rw-r--r--src/uml/qobjects/qumlbroadcastsignalactionobject_p.h242
-rw-r--r--src/uml/qobjects/qumlcallbehavioractionobject.cpp638
-rw-r--r--src/uml/qobjects/qumlcallbehavioractionobject_p.h255
-rw-r--r--src/uml/qobjects/qumlcalleventobject.cpp288
-rw-r--r--src/uml/qobjects/qumlcalleventobject_p.h156
-rw-r--r--src/uml/qobjects/qumlcalloperationactionobject.cpp648
-rw-r--r--src/uml/qobjects/qumlcalloperationactionobject_p.h258
-rw-r--r--src/uml/qobjects/qumlcentralbuffernodeobject.cpp516
-rw-r--r--src/uml/qobjects/qumlcentralbuffernodeobject_p.h213
-rw-r--r--src/uml/qobjects/qumlchangeeventobject.cpp288
-rw-r--r--src/uml/qobjects/qumlchangeeventobject_p.h156
-rw-r--r--src/uml/qobjects/qumlclassifiertemplateparameterobject.cpp217
-rw-r--r--src/uml/qobjects/qumlclassifiertemplateparameterobject_p.h126
-rw-r--r--src/uml/qobjects/qumlclassobject.cpp1095
-rw-r--r--src/uml/qobjects/qumlclassobject_p.h377
-rw-r--r--src/uml/qobjects/qumlclauseobject.cpp234
-rw-r--r--src/uml/qobjects/qumlclauseobject_p.h121
-rw-r--r--src/uml/qobjects/qumlclearassociationactionobject.cpp583
-rw-r--r--src/uml/qobjects/qumlclearassociationactionobject_p.h232
-rw-r--r--src/uml/qobjects/qumlclearstructuralfeatureactionobject.cpp597
-rw-r--r--src/uml/qobjects/qumlclearstructuralfeatureactionobject_p.h241
-rw-r--r--src/uml/qobjects/qumlclearvariableactionobject.cpp573
-rw-r--r--src/uml/qobjects/qumlclearvariableactionobject_p.h229
-rw-r--r--src/uml/qobjects/qumlcollaborationobject.cpp1003
-rw-r--r--src/uml/qobjects/qumlcollaborationobject_p.h350
-rw-r--r--src/uml/qobjects/qumlcollaborationuseobject.cpp266
-rw-r--r--src/uml/qobjects/qumlcollaborationuseobject_p.h138
-rw-r--r--src/uml/qobjects/qumlcombinedfragmentobject.cpp348
-rw-r--r--src/uml/qobjects/qumlcombinedfragmentobject_p.h162
-rw-r--r--src/uml/qobjects/qumlcommentobject.cpp159
-rw-r--r--src/uml/qobjects/qumlcommentobject_p.h105
-rw-r--r--src/uml/qobjects/qumlcommunicationpathobject.cpp959
-rw-r--r--src/uml/qobjects/qumlcommunicationpathobject_p.h336
-rw-r--r--src/uml/qobjects/qumlcomponentobject.cpp1202
-rw-r--r--src/uml/qobjects/qumlcomponentobject_p.h406
-rw-r--r--src/uml/qobjects/qumlcomponentrealizationobject.cpp424
-rw-r--r--src/uml/qobjects/qumlcomponentrealizationobject_p.h207
-rw-r--r--src/uml/qobjects/qumlconditionalnodeobject.cpp923
-rw-r--r--src/uml/qobjects/qumlconditionalnodeobject_p.h322
-rw-r--r--src/uml/qobjects/qumlconnectableelementtemplateparameterobject.cpp189
-rw-r--r--src/uml/qobjects/qumlconnectableelementtemplateparameterobject_p.h119
-rw-r--r--src/uml/qobjects/qumlconnectionpointreferenceobject.cpp345
-rw-r--r--src/uml/qobjects/qumlconnectionpointreferenceobject_p.h162
-rw-r--r--src/uml/qobjects/qumlconnectorendobject.cpp267
-rw-r--r--src/uml/qobjects/qumlconnectorendobject_p.h140
-rw-r--r--src/uml/qobjects/qumlconnectorobject.cpp410
-rw-r--r--src/uml/qobjects/qumlconnectorobject_p.h183
-rw-r--r--src/uml/qobjects/qumlconsiderignorefragmentobject.cpp370
-rw-r--r--src/uml/qobjects/qumlconsiderignorefragmentobject_p.h172
-rw-r--r--src/uml/qobjects/qumlconstraintobject.cpp316
-rw-r--r--src/uml/qobjects/qumlconstraintobject_p.h163
-rw-r--r--src/uml/qobjects/qumlcontinuationobject.cpp311
-rw-r--r--src/uml/qobjects/qumlcontinuationobject_p.h154
-rw-r--r--src/uml/qobjects/qumlcontrolflowobject.cpp433
-rw-r--r--src/uml/qobjects/qumlcontrolflowobject_p.h185
-rw-r--r--src/uml/qobjects/qumlcreatelinkactionobject.cpp612
-rw-r--r--src/uml/qobjects/qumlcreatelinkactionobject_p.h243
-rw-r--r--src/uml/qobjects/qumlcreatelinkobjectactionobject.cpp626
-rw-r--r--src/uml/qobjects/qumlcreatelinkobjectactionobject_p.h252
-rw-r--r--src/uml/qobjects/qumlcreateobjectactionobject.cpp582
-rw-r--r--src/uml/qobjects/qumlcreateobjectactionobject_p.h232
-rw-r--r--src/uml/qobjects/qumldatastorenodeobject.cpp516
-rw-r--r--src/uml/qobjects/qumldatastorenodeobject_p.h213
-rw-r--r--src/uml/qobjects/qumldatatypeobject.cpp894
-rw-r--r--src/uml/qobjects/qumldatatypeobject_p.h317
-rw-r--r--src/uml/qobjects/qumldecisionnodeobject.cpp462
-rw-r--r--src/uml/qobjects/qumldecisionnodeobject_p.h194
-rw-r--r--src/uml/qobjects/qumldependencyobject.cpp374
-rw-r--r--src/uml/qobjects/qumldependencyobject_p.h185
-rw-r--r--src/uml/qobjects/qumldeploymentobject.cpp428
-rw-r--r--src/uml/qobjects/qumldeploymentobject_p.h202
-rw-r--r--src/uml/qobjects/qumldeploymentspecificationobject.cpp975
-rw-r--r--src/uml/qobjects/qumldeploymentspecificationobject_p.h341
-rw-r--r--src/uml/qobjects/qumldestroylinkactionobject.cpp612
-rw-r--r--src/uml/qobjects/qumldestroylinkactionobject_p.h243
-rw-r--r--src/uml/qobjects/qumldestroyobjectactionobject.cpp592
-rw-r--r--src/uml/qobjects/qumldestroyobjectactionobject_p.h235
-rw-r--r--src/uml/qobjects/qumldestructionoccurrencespecificationobject.cpp344
-rw-r--r--src/uml/qobjects/qumldestructionoccurrencespecificationobject_p.h167
-rw-r--r--src/uml/qobjects/qumldeviceobject.cpp1160
-rw-r--r--src/uml/qobjects/qumldeviceobject_p.h401
-rw-r--r--src/uml/qobjects/qumldurationconstraintobject.cpp330
-rw-r--r--src/uml/qobjects/qumldurationconstraintobject_p.h178
-rw-r--r--src/uml/qobjects/qumldurationintervalobject.cpp351
-rw-r--r--src/uml/qobjects/qumldurationintervalobject_p.h183
-rw-r--r--src/uml/qobjects/qumldurationobject.cpp359
-rw-r--r--src/uml/qobjects/qumldurationobject_p.h178
-rw-r--r--src/uml/qobjects/qumldurationobservationobject.cpp297
-rw-r--r--src/uml/qobjects/qumldurationobservationobject_p.h159
-rw-r--r--src/uml/qobjects/qumlelementimportobject.cpp243
-rw-r--r--src/uml/qobjects/qumlelementimportobject_p.h139
-rw-r--r--src/uml/qobjects/qumlenumerationliteralobject.cpp375
-rw-r--r--src/uml/qobjects/qumlenumerationliteralobject_p.h186
-rw-r--r--src/uml/qobjects/qumlenumerationobject.cpp917
-rw-r--r--src/uml/qobjects/qumlenumerationobject_p.h327
-rw-r--r--src/uml/qobjects/qumlexceptionhandlerobject.cpp183
-rw-r--r--src/uml/qobjects/qumlexceptionhandlerobject_p.h111
-rw-r--r--src/uml/qobjects/qumlexecutionenvironmentobject.cpp1160
-rw-r--r--src/uml/qobjects/qumlexecutionenvironmentobject_p.h401
-rw-r--r--src/uml/qobjects/qumlexecutionoccurrencespecificationobject.cpp344
-rw-r--r--src/uml/qobjects/qumlexecutionoccurrencespecificationobject_p.h167
-rw-r--r--src/uml/qobjects/qumlexpansionnodeobject.cpp541
-rw-r--r--src/uml/qobjects/qumlexpansionnodeobject_p.h225
-rw-r--r--src/uml/qobjects/qumlexpansionregionobject.cpp931
-rw-r--r--src/uml/qobjects/qumlexpansionregionobject_p.h323
-rw-r--r--src/uml/qobjects/qumlexpressionobject.cpp358
-rw-r--r--src/uml/qobjects/qumlexpressionobject_p.h178
-rw-r--r--src/uml/qobjects/qumlextendobject.cpp350
-rw-r--r--src/uml/qobjects/qumlextendobject_p.h168
-rw-r--r--src/uml/qobjects/qumlextensionendobject.cpp785
-rw-r--r--src/uml/qobjects/qumlextensionendobject_p.h323
-rw-r--r--src/uml/qobjects/qumlextensionobject.cpp982
-rw-r--r--src/uml/qobjects/qumlextensionobject_p.h350
-rw-r--r--src/uml/qobjects/qumlextensionpointobject.cpp312
-rw-r--r--src/uml/qobjects/qumlextensionpointobject_p.h155
-rw-r--r--src/uml/qobjects/qumlfinalstateobject.cpp678
-rw-r--r--src/uml/qobjects/qumlfinalstateobject_p.h255
-rw-r--r--src/uml/qobjects/qumlflowfinalnodeobject.cpp436
-rw-r--r--src/uml/qobjects/qumlflowfinalnodeobject_p.h182
-rw-r--r--src/uml/qobjects/qumlforknodeobject.cpp436
-rw-r--r--src/uml/qobjects/qumlforknodeobject_p.h182
-rw-r--r--src/uml/qobjects/qumlfunctionbehaviorobject.cpp1258
-rw-r--r--src/uml/qobjects/qumlfunctionbehaviorobject_p.h426
-rw-r--r--src/uml/qobjects/qumlgateobject.cpp248
-rw-r--r--src/uml/qobjects/qumlgateobject_p.h134
-rw-r--r--src/uml/qobjects/qumlgeneralizationobject.cpp244
-rw-r--r--src/uml/qobjects/qumlgeneralizationobject_p.h135
-rw-r--r--src/uml/qobjects/qumlgeneralizationsetobject.cpp327
-rw-r--r--src/uml/qobjects/qumlgeneralizationsetobject_p.h166
-rw-r--r--src/uml/qobjects/qumlgeneralorderingobject.cpp258
-rw-r--r--src/uml/qobjects/qumlgeneralorderingobject_p.h137
-rw-r--r--src/uml/qobjects/qumlimageobject.cpp162
-rw-r--r--src/uml/qobjects/qumlimageobject_p.h107
-rw-r--r--src/uml/qobjects/qumlincludeobject.cpp320
-rw-r--r--src/uml/qobjects/qumlincludeobject_p.h161
-rw-r--r--src/uml/qobjects/qumlinformationflowobject.cpp470
-rw-r--r--src/uml/qobjects/qumlinformationflowobject_p.h205
-rw-r--r--src/uml/qobjects/qumlinformationitemobject.cpp873
-rw-r--r--src/uml/qobjects/qumlinformationitemobject_p.h311
-rw-r--r--src/uml/qobjects/qumlinitialnodeobject.cpp436
-rw-r--r--src/uml/qobjects/qumlinitialnodeobject_p.h182
-rw-r--r--src/uml/qobjects/qumlinputpinobject.cpp632
-rw-r--r--src/uml/qobjects/qumlinputpinobject_p.h255
-rw-r--r--src/uml/qobjects/qumlinstancespecificationobject.cpp368
-rw-r--r--src/uml/qobjects/qumlinstancespecificationobject_p.h178
-rw-r--r--src/uml/qobjects/qumlinstancevalueobject.cpp340
-rw-r--r--src/uml/qobjects/qumlinstancevalueobject_p.h174
-rw-r--r--src/uml/qobjects/qumlinteractionconstraintobject.cpp340
-rw-r--r--src/uml/qobjects/qumlinteractionconstraintobject_p.h175
-rw-r--r--src/uml/qobjects/qumlinteractionobject.cpp1385
-rw-r--r--src/uml/qobjects/qumlinteractionobject_p.h458
-rw-r--r--src/uml/qobjects/qumlinteractionoperandobject.cpp480
-rw-r--r--src/uml/qobjects/qumlinteractionoperandobject_p.h194
-rw-r--r--src/uml/qobjects/qumlinteractionuseobject.cpp370
-rw-r--r--src/uml/qobjects/qumlinteractionuseobject_p.h168
-rw-r--r--src/uml/qobjects/qumlinterfaceobject.cpp958
-rw-r--r--src/uml/qobjects/qumlinterfaceobject_p.h330
-rw-r--r--src/uml/qobjects/qumlinterfacerealizationobject.cpp416
-rw-r--r--src/uml/qobjects/qumlinterfacerealizationobject_p.h206
-rw-r--r--src/uml/qobjects/qumlinterruptibleactivityregionobject.cpp355
-rw-r--r--src/uml/qobjects/qumlinterruptibleactivityregionobject_p.h163
-rw-r--r--src/uml/qobjects/qumlintervalconstraintobject.cpp319
-rw-r--r--src/uml/qobjects/qumlintervalconstraintobject_p.h169
-rw-r--r--src/uml/qobjects/qumlintervalobject.cpp350
-rw-r--r--src/uml/qobjects/qumlintervalobject_p.h177
-rw-r--r--src/uml/qobjects/qumljoinnodeobject.cpp461
-rw-r--r--src/uml/qobjects/qumljoinnodeobject_p.h194
-rw-r--r--src/uml/qobjects/qumllifelineobject.cpp300
-rw-r--r--src/uml/qobjects/qumllifelineobject_p.h147
-rw-r--r--src/uml/qobjects/qumllinkendcreationdataobject.cpp197
-rw-r--r--src/uml/qobjects/qumllinkendcreationdataobject_p.h120
-rw-r--r--src/uml/qobjects/qumllinkenddataobject.cpp173
-rw-r--r--src/uml/qobjects/qumllinkenddataobject_p.h108
-rw-r--r--src/uml/qobjects/qumllinkenddestructiondataobject.cpp197
-rw-r--r--src/uml/qobjects/qumllinkenddestructiondataobject_p.h120
-rw-r--r--src/uml/qobjects/qumlliteralbooleanobject.cpp341
-rw-r--r--src/uml/qobjects/qumlliteralbooleanobject_p.h176
-rw-r--r--src/uml/qobjects/qumlliteralintegerobject.cpp341
-rw-r--r--src/uml/qobjects/qumlliteralintegerobject_p.h176
-rw-r--r--src/uml/qobjects/qumlliteralnullobject.cpp327
-rw-r--r--src/uml/qobjects/qumlliteralnullobject_p.h167
-rw-r--r--src/uml/qobjects/qumlliteralrealobject.cpp341
-rw-r--r--src/uml/qobjects/qumlliteralrealobject_p.h176
-rw-r--r--src/uml/qobjects/qumlliteralstringobject.cpp341
-rw-r--r--src/uml/qobjects/qumlliteralstringobject_p.h176
-rw-r--r--src/uml/qobjects/qumlliteralunlimitednaturalobject.cpp340
-rw-r--r--src/uml/qobjects/qumlliteralunlimitednaturalobject_p.h176
-rw-r--r--src/uml/qobjects/qumlloopnodeobject.cpp995
-rw-r--r--src/uml/qobjects/qumlloopnodeobject_p.h338
-rw-r--r--src/uml/qobjects/qumlmanifestationobject.cpp405
-rw-r--r--src/uml/qobjects/qumlmanifestationobject_p.h203
-rw-r--r--src/uml/qobjects/qumlmergenodeobject.cpp436
-rw-r--r--src/uml/qobjects/qumlmergenodeobject_p.h182
-rw-r--r--src/uml/qobjects/qumlmessageobject.cpp329
-rw-r--r--src/uml/qobjects/qumlmessageobject_p.h156
-rw-r--r--src/uml/qobjects/qumlmessageoccurrencespecificationobject.cpp344
-rw-r--r--src/uml/qobjects/qumlmessageoccurrencespecificationobject_p.h167
-rw-r--r--src/uml/qobjects/qumlmodelobject.cpp650
-rw-r--r--src/uml/qobjects/qumlmodelobject_p.h251
-rw-r--r--src/uml/qobjects/qumlnodeobject.cpp1159
-rw-r--r--src/uml/qobjects/qumlnodeobject_p.h401
-rw-r--r--src/uml/qobjects/qumlobjectflowobject.cpp478
-rw-r--r--src/uml/qobjects/qumlobjectflowobject_p.h203
-rw-r--r--src/uml/qobjects/qumloccurrencespecificationobject.cpp329
-rw-r--r--src/uml/qobjects/qumloccurrencespecificationobject_p.h158
-rw-r--r--src/uml/qobjects/qumlopaqueactionobject.cpp628
-rw-r--r--src/uml/qobjects/qumlopaqueactionobject_p.h242
-rw-r--r--src/uml/qobjects/qumlopaquebehaviorobject.cpp1258
-rw-r--r--src/uml/qobjects/qumlopaquebehaviorobject_p.h426
-rw-r--r--src/uml/qobjects/qumlopaqueexpressionobject.cpp403
-rw-r--r--src/uml/qobjects/qumlopaqueexpressionobject_p.h191
-rw-r--r--src/uml/qobjects/qumloperationobject.cpp836
-rw-r--r--src/uml/qobjects/qumloperationobject_p.h309
-rw-r--r--src/uml/qobjects/qumloperationtemplateparameterobject.cpp189
-rw-r--r--src/uml/qobjects/qumloperationtemplateparameterobject_p.h119
-rw-r--r--src/uml/qobjects/qumloutputpinobject.cpp632
-rw-r--r--src/uml/qobjects/qumloutputpinobject_p.h255
-rw-r--r--src/uml/qobjects/qumlpackageimportobject.cpp226
-rw-r--r--src/uml/qobjects/qumlpackageimportobject_p.h133
-rw-r--r--src/uml/qobjects/qumlpackagemergeobject.cpp215
-rw-r--r--src/uml/qobjects/qumlpackagemergeobject_p.h128
-rw-r--r--src/uml/qobjects/qumlpackageobject.cpp635
-rw-r--r--src/uml/qobjects/qumlpackageobject_p.h242
-rw-r--r--src/uml/qobjects/qumlparameterobject.cpp505
-rw-r--r--src/uml/qobjects/qumlparameterobject_p.h224
-rw-r--r--src/uml/qobjects/qumlparametersetobject.cpp275
-rw-r--r--src/uml/qobjects/qumlparametersetobject_p.h139
-rw-r--r--src/uml/qobjects/qumlpartdecompositionobject.cpp370
-rw-r--r--src/uml/qobjects/qumlpartdecompositionobject_p.h168
-rw-r--r--src/uml/qobjects/qumlportobject.cpp881
-rw-r--r--src/uml/qobjects/qumlportobject_p.h345
-rw-r--r--src/uml/qobjects/qumlprimitivetypeobject.cpp894
-rw-r--r--src/uml/qobjects/qumlprimitivetypeobject_p.h317
-rw-r--r--src/uml/qobjects/qumlprofileapplicationobject.cpp226
-rw-r--r--src/uml/qobjects/qumlprofileapplicationobject_p.h131
-rw-r--r--src/uml/qobjects/qumlprofileobject.cpp675
-rw-r--r--src/uml/qobjects/qumlprofileobject_p.h256
-rw-r--r--src/uml/qobjects/qumlpropertyobject.cpp781
-rw-r--r--src/uml/qobjects/qumlpropertyobject_p.h315
-rw-r--r--src/uml/qobjects/qumlprotocolconformanceobject.cpp215
-rw-r--r--src/uml/qobjects/qumlprotocolconformanceobject_p.h128
-rw-r--r--src/uml/qobjects/qumlprotocolstatemachineobject.cpp1320
-rw-r--r--src/uml/qobjects/qumlprotocolstatemachineobject_p.h444
-rw-r--r--src/uml/qobjects/qumlprotocoltransitionobject.cpp585
-rw-r--r--src/uml/qobjects/qumlprotocoltransitionobject_p.h231
-rw-r--r--src/uml/qobjects/qumlpseudostateobject.cpp328
-rw-r--r--src/uml/qobjects/qumlpseudostateobject_p.h160
-rw-r--r--src/uml/qobjects/qumlqualifiervalueobject.cpp154
-rw-r--r--src/uml/qobjects/qumlqualifiervalueobject_p.h104
-rw-r--r--src/uml/qobjects/qumlraiseexceptionactionobject.cpp572
-rw-r--r--src/uml/qobjects/qumlraiseexceptionactionobject_p.h229
-rw-r--r--src/uml/qobjects/qumlreadextentactionobject.cpp582
-rw-r--r--src/uml/qobjects/qumlreadextentactionobject_p.h232
-rw-r--r--src/uml/qobjects/qumlreadisclassifiedobjectactionobject.cpp602
-rw-r--r--src/uml/qobjects/qumlreadisclassifiedobjectactionobject_p.h238
-rw-r--r--src/uml/qobjects/qumlreadlinkactionobject.cpp621
-rw-r--r--src/uml/qobjects/qumlreadlinkactionobject_p.h246
-rw-r--r--src/uml/qobjects/qumlreadlinkobjectendactionobject.cpp593
-rw-r--r--src/uml/qobjects/qumlreadlinkobjectendactionobject_p.h235
-rw-r--r--src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject.cpp593
-rw-r--r--src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject_p.h235
-rw-r--r--src/uml/qobjects/qumlreadselfactionobject.cpp572
-rw-r--r--src/uml/qobjects/qumlreadselfactionobject_p.h229
-rw-r--r--src/uml/qobjects/qumlreadstructuralfeatureactionobject.cpp597
-rw-r--r--src/uml/qobjects/qumlreadstructuralfeatureactionobject_p.h241
-rw-r--r--src/uml/qobjects/qumlreadvariableactionobject.cpp587
-rw-r--r--src/uml/qobjects/qumlreadvariableactionobject_p.h238
-rw-r--r--src/uml/qobjects/qumlrealizationobject.cpp390
-rw-r--r--src/uml/qobjects/qumlrealizationobject_p.h194
-rw-r--r--src/uml/qobjects/qumlreceptionobject.cpp596
-rw-r--r--src/uml/qobjects/qumlreceptionobject_p.h234
-rw-r--r--src/uml/qobjects/qumlreclassifyobjectactionobject.cpp618
-rw-r--r--src/uml/qobjects/qumlreclassifyobjectactionobject_p.h240
-rw-r--r--src/uml/qobjects/qumlredefinabletemplatesignatureobject.cpp401
-rw-r--r--src/uml/qobjects/qumlredefinabletemplatesignatureobject_p.h182
-rw-r--r--src/uml/qobjects/qumlreduceactionobject.cpp603
-rw-r--r--src/uml/qobjects/qumlreduceactionobject_p.h238
-rw-r--r--src/uml/qobjects/qumlregionobject.cpp522
-rw-r--r--src/uml/qobjects/qumlregionobject_p.h208
-rw-r--r--src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject.cpp631
-rw-r--r--src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject_p.h256
-rw-r--r--src/uml/qobjects/qumlremovevariablevalueactionobject.cpp611
-rw-r--r--src/uml/qobjects/qumlremovevariablevalueactionobject_p.h250
-rw-r--r--src/uml/qobjects/qumlreplyactionobject.cpp601
-rw-r--r--src/uml/qobjects/qumlreplyactionobject_p.h236
-rw-r--r--src/uml/qobjects/qumlsendobjectactionobject.cpp597
-rw-r--r--src/uml/qobjects/qumlsendobjectactionobject_p.h241
-rw-r--r--src/uml/qobjects/qumlsendsignalactionobject.cpp616
-rw-r--r--src/uml/qobjects/qumlsendsignalactionobject_p.h245
-rw-r--r--src/uml/qobjects/qumlsequencenodeobject.cpp885
-rw-r--r--src/uml/qobjects/qumlsequencenodeobject_p.h312
-rw-r--r--src/uml/qobjects/qumlsignaleventobject.cpp288
-rw-r--r--src/uml/qobjects/qumlsignaleventobject_p.h156
-rw-r--r--src/uml/qobjects/qumlsignalobject.cpp873
-rw-r--r--src/uml/qobjects/qumlsignalobject_p.h311
-rw-r--r--src/uml/qobjects/qumlslotobject.cpp173
-rw-r--r--src/uml/qobjects/qumlslotobject_p.h108
-rw-r--r--src/uml/qobjects/qumlstartclassifierbehavioractionobject.cpp572
-rw-r--r--src/uml/qobjects/qumlstartclassifierbehavioractionobject_p.h229
-rw-r--r--src/uml/qobjects/qumlstartobjectbehavioractionobject.cpp637
-rw-r--r--src/uml/qobjects/qumlstartobjectbehavioractionobject_p.h255
-rw-r--r--src/uml/qobjects/qumlstateinvariantobject.cpp304
-rw-r--r--src/uml/qobjects/qumlstateinvariantobject_p.h153
-rw-r--r--src/uml/qobjects/qumlstatemachineobject.cpp1296
-rw-r--r--src/uml/qobjects/qumlstatemachineobject_p.h434
-rw-r--r--src/uml/qobjects/qumlstateobject.cpp677
-rw-r--r--src/uml/qobjects/qumlstateobject_p.h255
-rw-r--r--src/uml/qobjects/qumlstereotypeobject.cpp1137
-rw-r--r--src/uml/qobjects/qumlstereotypeobject_p.h393
-rw-r--r--src/uml/qobjects/qumlstringexpressionobject.cpp440
-rw-r--r--src/uml/qobjects/qumlstringexpressionobject_p.h210
-rw-r--r--src/uml/qobjects/qumlstructuredactivitynodeobject.cpp879
-rw-r--r--src/uml/qobjects/qumlstructuredactivitynodeobject_p.h306
-rw-r--r--src/uml/qobjects/qumlsubstitutionobject.cpp415
-rw-r--r--src/uml/qobjects/qumlsubstitutionobject_p.h206
-rw-r--r--src/uml/qobjects/qumltemplatebindingobject.cpp235
-rw-r--r--src/uml/qobjects/qumltemplatebindingobject_p.h132
-rw-r--r--src/uml/qobjects/qumltemplateparameterobject.cpp184
-rw-r--r--src/uml/qobjects/qumltemplateparameterobject_p.h113
-rw-r--r--src/uml/qobjects/qumltemplateparametersubstitutionobject.cpp175
-rw-r--r--src/uml/qobjects/qumltemplateparametersubstitutionobject_p.h110
-rw-r--r--src/uml/qobjects/qumltemplatesignatureobject.cpp180
-rw-r--r--src/uml/qobjects/qumltemplatesignatureobject_p.h109
-rw-r--r--src/uml/qobjects/qumltestidentityactionobject.cpp592
-rw-r--r--src/uml/qobjects/qumltestidentityactionobject_p.h235
-rw-r--r--src/uml/qobjects/qumltimeconstraintobject.cpp330
-rw-r--r--src/uml/qobjects/qumltimeconstraintobject_p.h178
-rw-r--r--src/uml/qobjects/qumltimeeventobject.cpp298
-rw-r--r--src/uml/qobjects/qumltimeeventobject_p.h159
-rw-r--r--src/uml/qobjects/qumltimeexpressionobject.cpp359
-rw-r--r--src/uml/qobjects/qumltimeexpressionobject_p.h178
-rw-r--r--src/uml/qobjects/qumltimeintervalobject.cpp351
-rw-r--r--src/uml/qobjects/qumltimeintervalobject_p.h183
-rw-r--r--src/uml/qobjects/qumltimeobservationobject.cpp297
-rw-r--r--src/uml/qobjects/qumltimeobservationobject_p.h159
-rw-r--r--src/uml/qobjects/qumltransitionobject.cpp541
-rw-r--r--src/uml/qobjects/qumltransitionobject_p.h215
-rw-r--r--src/uml/qobjects/qumltriggerobject.cpp267
-rw-r--r--src/uml/qobjects/qumltriggerobject_p.h138
-rw-r--r--src/uml/qobjects/qumlunmarshallactionobject.cpp600
-rw-r--r--src/uml/qobjects/qumlunmarshallactionobject_p.h236
-rw-r--r--src/uml/qobjects/qumlusageobject.cpp375
-rw-r--r--src/uml/qobjects/qumlusageobject_p.h185
-rw-r--r--src/uml/qobjects/qumlusecaseobject.cpp991
-rw-r--r--src/uml/qobjects/qumlusecaseobject_p.h343
-rw-r--r--src/uml/qobjects/qumlvaluepinobject.cpp646
-rw-r--r--src/uml/qobjects/qumlvaluepinobject_p.h264
-rw-r--r--src/uml/qobjects/qumlvaluespecificationactionobject.cpp583
-rw-r--r--src/uml/qobjects/qumlvaluespecificationactionobject_p.h232
-rw-r--r--src/uml/qobjects/qumlvariableobject.cpp445
-rw-r--r--src/uml/qobjects/qumlvariableobject_p.h208
-rw-r--r--src/uml/qumlabstraction.cpp347
-rw-r--r--src/uml/qumlabstraction.h139
-rw-r--r--src/uml/qumlacceptcallaction.cpp567
-rw-r--r--src/uml/qumlacceptcallaction.h197
-rw-r--r--src/uml/qumlaccepteventaction.cpp557
-rw-r--r--src/uml/qumlaccepteventaction.h195
-rw-r--r--src/uml/qumlaction.cpp512
-rw-r--r--src/uml/qumlaction.h188
-rw-r--r--src/uml/qumlactionexecutionspecification.cpp318
-rw-r--r--src/uml/qumlactionexecutionspecification.h120
-rw-r--r--src/uml/qumlactioninputpin.cpp664
-rw-r--r--src/uml/qumlactioninputpin.h221
-rw-r--r--src/uml/qumlactivity.cpp1382
-rw-r--r--src/uml/qumlactivity.h432
-rw-r--r--src/uml/qumlactivityedge.cpp475
-rw-r--r--src/uml/qumlactivityedge.h151
-rw-r--r--src/uml/qumlactivityfinalnode.cpp386
-rw-r--r--src/uml/qumlactivityfinalnode.h131
-rw-r--r--src/uml/qumlactivitygroup.cpp286
-rw-r--r--src/uml/qumlactivitygroup.h111
-rw-r--r--src/uml/qumlactivitynode.cpp466
-rw-r--r--src/uml/qumlactivitynode.h155
-rw-r--r--src/uml/qumlactivityparameternode.cpp500
-rw-r--r--src/uml/qumlactivityparameternode.h178
-rw-r--r--src/uml/qumlactivitypartition.cpp408
-rw-r--r--src/uml/qumlactivitypartition.h139
-rw-r--r--src/uml/qumlactor.cpp869
-rw-r--r--src/uml/qumlactor.h270
-rw-r--r--src/uml/qumladdstructuralfeaturevalueaction.cpp587
-rw-r--r--src/uml/qumladdstructuralfeaturevalueaction.h208
-rw-r--r--src/uml/qumladdvariablevalueaction.cpp561
-rw-r--r--src/uml/qumladdvariablevalueaction.h202
-rw-r--r--src/uml/qumlanyreceiveevent.cpp250
-rw-r--r--src/uml/qumlanyreceiveevent.h95
-rw-r--r--src/uml/qumlartifact.cpp939
-rw-r--r--src/uml/qumlartifact.h295
-rw-r--r--src/uml/qumlassociation.cpp945
-rw-r--r--src/uml/qumlassociation.h301
-rw-r--r--src/uml/qumlassociationclass.cpp1130
-rw-r--r--src/uml/qumlassociationclass.h360
-rw-r--r--src/uml/qumlbehavior.cpp1198
-rw-r--r--src/uml/qumlbehavior.h387
-rw-r--r--src/uml/qumlbehavioralfeature.cpp529
-rw-r--r--src/uml/qumlbehavioralfeature.h191
-rw-r--r--src/uml/qumlbehavioredclassifier.cpp889
-rw-r--r--src/uml/qumlbehavioredclassifier.h280
-rw-r--r--src/uml/qumlbehaviorexecutionspecification.cpp318
-rw-r--r--src/uml/qumlbehaviorexecutionspecification.h120
-rw-r--r--src/uml/qumlbroadcastsignalaction.cpp544
-rw-r--r--src/uml/qumlbroadcastsignalaction.h194
-rw-r--r--src/uml/qumlcallaction.cpp559
-rw-r--r--src/uml/qumlcallaction.h204
-rw-r--r--src/uml/qumlcallbehavioraction.cpp579
-rw-r--r--src/uml/qumlcallbehavioraction.h207
-rw-r--r--src/uml/qumlcallevent.cpp269
-rw-r--r--src/uml/qumlcallevent.h107
-rw-r--r--src/uml/qumlcalloperationaction.cpp599
-rw-r--r--src/uml/qumlcalloperationaction.h210
-rw-r--r--src/uml/qumlcentralbuffernode.cpp481
-rw-r--r--src/uml/qumlcentralbuffernode.h166
-rw-r--r--src/uml/qumlchangeevent.cpp274
-rw-r--r--src/uml/qumlchangeevent.h107
-rw-r--r--src/uml/qumlclass.cpp1085
-rw-r--r--src/uml/qumlclass.h353
-rw-r--r--src/uml/qumlclassifier.cpp996
-rw-r--r--src/uml/qumlclassifier.h306
-rw-r--r--src/uml/qumlclassifiertemplateparameter.cpp193
-rw-r--r--src/uml/qumlclassifiertemplateparameter.h81
-rw-r--r--src/uml/qumlclause.cpp232
-rw-r--r--src/uml/qumlclause.h91
-rw-r--r--src/uml/qumlclearassociationaction.cpp528
-rw-r--r--src/uml/qumlclearassociationaction.h183
-rw-r--r--src/uml/qumlclearstructuralfeatureaction.cpp543
-rw-r--r--src/uml/qumlclearstructuralfeatureaction.h192
-rw-r--r--src/uml/qumlclearvariableaction.cpp507
-rw-r--r--src/uml/qumlclearvariableaction.h178
-rw-r--r--src/uml/qumlcollaboration.cpp955
-rw-r--r--src/uml/qumlcollaboration.h304
-rw-r--r--src/uml/qumlcollaborationuse.cpp242
-rw-r--r--src/uml/qumlcollaborationuse.h92
-rw-r--r--src/uml/qumlcombinedfragment.cpp336
-rw-r--r--src/uml/qumlcombinedfragment.h124
-rw-r--r--src/uml/qumlcomment.cpp115
-rw-r--r--src/uml/qumlcomment.h59
-rw-r--r--src/uml/qumlcommunicationpath.cpp909
-rw-r--r--src/uml/qumlcommunicationpath.h282
-rw-r--r--src/uml/qumlcomponent.cpp1152
-rw-r--r--src/uml/qumlcomponent.h372
-rw-r--r--src/uml/qumlcomponentrealization.cpp388
-rw-r--r--src/uml/qumlcomponentrealization.h157
-rw-r--r--src/uml/qumlconditionalnode.cpp821
-rw-r--r--src/uml/qumlconditionalnode.h274
-rw-r--r--src/uml/qumlconnectableelement.cpp282
-rw-r--r--src/uml/qumlconnectableelement.h115
-rw-r--r--src/uml/qumlconnectableelementtemplateparameter.cpp154
-rw-r--r--src/uml/qumlconnectableelementtemplateparameter.h69
-rw-r--r--src/uml/qumlconnectionpointreference.cpp312
-rw-r--r--src/uml/qumlconnectionpointreference.h120
-rw-r--r--src/uml/qumlconnector.cpp378
-rw-r--r--src/uml/qumlconnector.h145
-rw-r--r--src/uml/qumlconnectorend.cpp262
-rw-r--r--src/uml/qumlconnectorend.h92
-rw-r--r--src/uml/qumlconsiderignorefragment.cpp346
-rw-r--r--src/uml/qumlconsiderignorefragment.h126
-rw-r--r--src/uml/qumlconstraint.cpp308
-rw-r--r--src/uml/qumlconstraint.h119
-rw-r--r--src/uml/qumlcontinuation.cpp284
-rw-r--r--src/uml/qumlcontinuation.h108
-rw-r--r--src/uml/qumlcontrolflow.cpp398
-rw-r--r--src/uml/qumlcontrolflow.h135
-rw-r--r--src/uml/qumlcontrolnode.cpp380
-rw-r--r--src/uml/qumlcontrolnode.h130
-rw-r--r--src/uml/qumlcreatelinkaction.cpp550
-rw-r--r--src/uml/qumlcreatelinkaction.h197
-rw-r--r--src/uml/qumlcreatelinkobjectaction.cpp570
-rw-r--r--src/uml/qumlcreatelinkobjectaction.h205
-rw-r--r--src/uml/qumlcreateobjectaction.cpp527
-rw-r--r--src/uml/qumlcreateobjectaction.h182
-rw-r--r--src/uml/qumldatastorenode.cpp482
-rw-r--r--src/uml/qumldatastorenode.h166
-rw-r--r--src/uml/qumldatatype.cpp880
-rw-r--r--src/uml/qumldatatype.h280
-rw-r--r--src/uml/qumldecisionnode.cpp421
-rw-r--r--src/uml/qumldecisionnode.h147
-rw-r--r--src/uml/qumldependency.cpp335
-rw-r--r--src/uml/qumldependency.h138
-rw-r--r--src/uml/qumldeployedartifact.cpp192
-rw-r--r--src/uml/qumldeployedartifact.h70
-rw-r--r--src/uml/qumldeployment.cpp402
-rw-r--r--src/uml/qumldeployment.h157
-rw-r--r--src/uml/qumldeploymentspecification.cpp953
-rw-r--r--src/uml/qumldeploymentspecification.h299
-rw-r--r--src/uml/qumldeploymenttarget.cpp241
-rw-r--r--src/uml/qumldeploymenttarget.h91
-rw-r--r--src/uml/qumldestroylinkaction.cpp550
-rw-r--r--src/uml/qumldestroylinkaction.h197
-rw-r--r--src/uml/qumldestroyobjectaction.cpp540
-rw-r--r--src/uml/qumldestroyobjectaction.h187
-rw-r--r--src/uml/qumldestructionoccurrencespecification.cpp322
-rw-r--r--src/uml/qumldestructionoccurrencespecification.h118
-rw-r--r--src/uml/qumldevice.cpp1092
-rw-r--r--src/uml/qumldevice.h352
-rw-r--r--src/uml/qumldirectedrelationship.cpp118
-rw-r--r--src/uml/qumldirectedrelationship.h61
-rw-r--r--src/uml/qumlduration.cpp372
-rw-r--r--src/uml/qumlduration.h135
-rw-r--r--src/uml/qumldurationconstraint.cpp319
-rw-r--r--src/uml/qumldurationconstraint.h132
-rw-r--r--src/uml/qumldurationinterval.cpp363
-rw-r--r--src/uml/qumldurationinterval.h137
-rw-r--r--src/uml/qumldurationobservation.cpp281
-rw-r--r--src/uml/qumldurationobservation.h110
-rw-r--r--src/uml/qumlelement.cpp122
-rw-r--r--src/uml/qumlelement.h55
-rw-r--r--src/uml/qumlelementimport.cpp199
-rw-r--r--src/uml/qumlelementimport.h85
-rw-r--r--src/uml/qumlencapsulatedclassifier.cpp886
-rw-r--r--src/uml/qumlencapsulatedclassifier.h281
-rw-r--r--src/uml/qumlenumeration.cpp893
-rw-r--r--src/uml/qumlenumeration.h282
-rw-r--r--src/uml/qumlenumerationliteral.cpp353
-rw-r--r--src/uml/qumlenumerationliteral.h141
-rw-r--r--src/uml/qumlevent.cpp244
-rw-r--r--src/uml/qumlevent.h94
-rw-r--r--src/uml/qumlexceptionhandler.cpp165
-rw-r--r--src/uml/qumlexceptionhandler.h65
-rw-r--r--src/uml/qumlexecutablenode.cpp413
-rw-r--r--src/uml/qumlexecutablenode.h152
-rw-r--r--src/uml/qumlexecutionenvironment.cpp1092
-rw-r--r--src/uml/qumlexecutionenvironment.h352
-rw-r--r--src/uml/qumlexecutionoccurrencespecification.cpp323
-rw-r--r--src/uml/qumlexecutionoccurrencespecification.h120
-rw-r--r--src/uml/qumlexecutionspecification.cpp295
-rw-r--r--src/uml/qumlexecutionspecification.h114
-rw-r--r--src/uml/qumlexpansionnode.cpp516
-rw-r--r--src/uml/qumlexpansionnode.h182
-rw-r--r--src/uml/qumlexpansionregion.cpp827
-rw-r--r--src/uml/qumlexpansionregion.h275
-rw-r--r--src/uml/qumlexpression.cpp368
-rw-r--r--src/uml/qumlexpression.h138
-rw-r--r--src/uml/qumlextend.cpp316
-rw-r--r--src/uml/qumlextend.h118
-rw-r--r--src/uml/qumlextension.cpp930
-rw-r--r--src/uml/qumlextension.h303
-rw-r--r--src/uml/qumlextensionend.cpp823
-rw-r--r--src/uml/qumlextensionend.h281
-rw-r--r--src/uml/qumlextensionpoint.cpp271
-rw-r--r--src/uml/qumlextensionpoint.h102
-rw-r--r--src/uml/qumlfeature.cpp276
-rw-r--r--src/uml/qumlfeature.h112
-rw-r--r--src/uml/qumlfinalnode.cpp380
-rw-r--r--src/uml/qumlfinalnode.h130
-rw-r--r--src/uml/qumlfinalstate.cpp622
-rw-r--r--src/uml/qumlfinalstate.h198
-rw-r--r--src/uml/qumlflowfinalnode.cpp386
-rw-r--r--src/uml/qumlflowfinalnode.h131
-rw-r--r--src/uml/qumlforknode.cpp386
-rw-r--r--src/uml/qumlforknode.h131
-rw-r--r--src/uml/qumlfunctionbehavior.cpp1207
-rw-r--r--src/uml/qumlfunctionbehavior.h380
-rw-r--r--src/uml/qumlgate.cpp216
-rw-r--r--src/uml/qumlgate.h81
-rw-r--r--src/uml/qumlgeneralization.cpp205
-rw-r--r--src/uml/qumlgeneralization.h83
-rw-r--r--src/uml/qumlgeneralizationset.cpp324
-rw-r--r--src/uml/qumlgeneralizationset.h125
-rw-r--r--src/uml/qumlgeneralordering.cpp233
-rw-r--r--src/uml/qumlgeneralordering.h87
-rw-r--r--src/uml/qumlimage.cpp121
-rw-r--r--src/uml/qumlimage.h58
-rw-r--r--src/uml/qumlinclude.cpp274
-rw-r--r--src/uml/qumlinclude.h106
-rw-r--r--src/uml/qumlinformationflow.cpp445
-rw-r--r--src/uml/qumlinformationflow.h179
-rw-r--r--src/uml/qumlinformationitem.cpp837
-rw-r--r--src/uml/qumlinformationitem.h266
-rw-r--r--src/uml/qumlinitialnode.cpp386
-rw-r--r--src/uml/qumlinitialnode.h131
-rw-r--r--src/uml/qumlinputpin.cpp639
-rw-r--r--src/uml/qumlinputpin.h209
-rw-r--r--src/uml/qumlinstancespecification.cpp362
-rw-r--r--src/uml/qumlinstancespecification.h141
-rw-r--r--src/uml/qumlinstancevalue.cpp345
-rw-r--r--src/uml/qumlinstancevalue.h126
-rw-r--r--src/uml/qumlinteraction.cpp1386
-rw-r--r--src/uml/qumlinteraction.h440
-rw-r--r--src/uml/qumlinteractionconstraint.cpp344
-rw-r--r--src/uml/qumlinteractionconstraint.h127
-rw-r--r--src/uml/qumlinteractionfragment.cpp284
-rw-r--r--src/uml/qumlinteractionfragment.h106
-rw-r--r--src/uml/qumlinteractionoperand.cpp453
-rw-r--r--src/uml/qumlinteractionoperand.h152
-rw-r--r--src/uml/qumlinteractionuse.cpp381
-rw-r--r--src/uml/qumlinteractionuse.h132
-rw-r--r--src/uml/qumlinterface.cpp982
-rw-r--r--src/uml/qumlinterface.h304
-rw-r--r--src/uml/qumlinterfacerealization.cpp385
-rw-r--r--src/uml/qumlinterfacerealization.h153
-rw-r--r--src/uml/qumlinterruptibleactivityregion.cpp308
-rw-r--r--src/uml/qumlinterruptibleactivityregion.h116
-rw-r--r--src/uml/qumlinterval.cpp361
-rw-r--r--src/uml/qumlinterval.h132
-rw-r--r--src/uml/qumlintervalconstraint.cpp305
-rw-r--r--src/uml/qumlintervalconstraint.h121
-rw-r--r--src/uml/qumlinvocationaction.cpp525
-rw-r--r--src/uml/qumlinvocationaction.h190
-rw-r--r--src/uml/qumljoinnode.cpp424
-rw-r--r--src/uml/qumljoinnode.h147
-rw-r--r--src/uml/qumllifeline.cpp304
-rw-r--r--src/uml/qumllifeline.h105
-rw-r--r--src/uml/qumllinkaction.cpp539
-rw-r--r--src/uml/qumllinkaction.h202
-rw-r--r--src/uml/qumllinkendcreationdata.cpp160
-rw-r--r--src/uml/qumllinkendcreationdata.h71
-rw-r--r--src/uml/qumllinkenddata.cpp145
-rw-r--r--src/uml/qumllinkenddata.h61
-rw-r--r--src/uml/qumllinkenddestructiondata.cpp160
-rw-r--r--src/uml/qumllinkenddestructiondata.h71
-rw-r--r--src/uml/qumlliteralboolean.cpp334
-rw-r--r--src/uml/qumlliteralboolean.h131
-rw-r--r--src/uml/qumlliteralinteger.cpp334
-rw-r--r--src/uml/qumlliteralinteger.h131
-rw-r--r--src/uml/qumlliteralnull.cpp318
-rw-r--r--src/uml/qumlliteralnull.h118
-rw-r--r--src/uml/qumlliteralreal.cpp331
-rw-r--r--src/uml/qumlliteralreal.h131
-rw-r--r--src/uml/qumlliteralspecification.cpp320
-rw-r--r--src/uml/qumlliteralspecification.h113
-rw-r--r--src/uml/qumlliteralstring.cpp333
-rw-r--r--src/uml/qumlliteralstring.h131
-rw-r--r--src/uml/qumlliteralunlimitednatural.cpp333
-rw-r--r--src/uml/qumlliteralunlimitednatural.h131
-rw-r--r--src/uml/qumlloopnode.cpp910
-rw-r--r--src/uml/qumlloopnode.h309
-rw-r--r--src/uml/qumlmanifestation.cpp364
-rw-r--r--src/uml/qumlmanifestation.h149
-rw-r--r--src/uml/qumlmergenode.cpp386
-rw-r--r--src/uml/qumlmergenode.h131
-rw-r--r--src/uml/qumlmessage.cpp347
-rw-r--r--src/uml/qumlmessage.h117
-rw-r--r--src/uml/qumlmessageend.cpp209
-rw-r--r--src/uml/qumlmessageend.h84
-rw-r--r--src/uml/qumlmessageevent.cpp244
-rw-r--r--src/uml/qumlmessageevent.h94
-rw-r--r--src/uml/qumlmessageoccurrencespecification.cpp322
-rw-r--r--src/uml/qumlmessageoccurrencespecification.h119
-rw-r--r--src/uml/qumlmodel.cpp634
-rw-r--r--src/uml/qumlmodel.h206
-rw-r--r--src/uml/qumlmultiplicityelement.cpp258
-rw-r--r--src/uml/qumlmultiplicityelement.h88
-rw-r--r--src/uml/qumlnamedelement.cpp242
-rw-r--r--src/uml/qumlnamedelement.h89
-rw-r--r--src/uml/qumlnamespace.cpp434
-rw-r--r--src/uml/qumlnamespace.h134
-rw-r--r--src/uml/qumlnode.cpp1097
-rw-r--r--src/uml/qumlnode.h357
-rw-r--r--src/uml/qumlobjectflow.cpp461
-rw-r--r--src/uml/qumlobjectflow.h159
-rw-r--r--src/uml/qumlobjectnode.cpp485
-rw-r--r--src/uml/qumlobjectnode.h177
-rw-r--r--src/uml/qumlobservation.cpp244
-rw-r--r--src/uml/qumlobservation.h94
-rw-r--r--src/uml/qumloccurrencespecification.cpp321
-rw-r--r--src/uml/qumloccurrencespecification.h117
-rw-r--r--src/uml/qumlopaqueaction.cpp580
-rw-r--r--src/uml/qumlopaqueaction.h198
-rw-r--r--src/uml/qumlopaquebehavior.cpp1206
-rw-r--r--src/uml/qumlopaquebehavior.h383
-rw-r--r--src/uml/qumlopaqueexpression.cpp408
-rw-r--r--src/uml/qumlopaqueexpression.h152
-rw-r--r--src/uml/qumloperation.cpp902
-rw-r--r--src/uml/qumloperation.h292
-rw-r--r--src/uml/qumloperationtemplateparameter.cpp154
-rw-r--r--src/uml/qumloperationtemplateparameter.h69
-rw-r--r--src/uml/qumloutputpin.cpp639
-rw-r--r--src/uml/qumloutputpin.h209
-rw-r--r--src/uml/qumlpackage.cpp693
-rw-r--r--src/uml/qumlpackage.h222
-rw-r--r--src/uml/qumlpackageableelement.cpp243
-rw-r--r--src/uml/qumlpackageableelement.h101
-rw-r--r--src/uml/qumlpackageimport.cpp170
-rw-r--r--src/uml/qumlpackageimport.h75
-rw-r--r--src/uml/qumlpackagemerge.cpp156
-rw-r--r--src/uml/qumlpackagemerge.h71
-rw-r--r--src/uml/qumlparameter.cpp558
-rw-r--r--src/uml/qumlparameter.h189
-rw-r--r--src/uml/qumlparameterableelement.cpp122
-rw-r--r--src/uml/qumlparameterableelement.h60
-rw-r--r--src/uml/qumlparameterset.cpp254
-rw-r--r--src/uml/qumlparameterset.h97
-rw-r--r--src/uml/qumlpartdecomposition.cpp351
-rw-r--r--src/uml/qumlpartdecomposition.h121
-rw-r--r--src/uml/qumlpin.cpp632
-rw-r--r--src/uml/qumlpin.h213
-rw-r--r--src/uml/qumlport.cpp935
-rw-r--r--src/uml/qumlport.h308
-rw-r--r--src/uml/qumlprimitivetype.cpp858
-rw-r--r--src/uml/qumlprimitivetype.h268
-rw-r--r--src/uml/qumlprofile.cpp671
-rw-r--r--src/uml/qumlprofile.h216
-rw-r--r--src/uml/qumlprofileapplication.cpp170
-rw-r--r--src/uml/qumlprofileapplication.h75
-rw-r--r--src/uml/qumlproperty.cpp908
-rw-r--r--src/uml/qumlproperty.h293
-rw-r--r--src/uml/qumlprotocolconformance.cpp156
-rw-r--r--src/uml/qumlprotocolconformance.h71
-rw-r--r--src/uml/qumlprotocolstatemachine.cpp1281
-rw-r--r--src/uml/qumlprotocolstatemachine.h406
-rw-r--r--src/uml/qumlprotocoltransition.cpp563
-rw-r--r--src/uml/qumlprotocoltransition.h184
-rw-r--r--src/uml/qumlpseudostate.cpp300
-rw-r--r--src/uml/qumlpseudostate.h111
-rw-r--r--src/uml/qumlqualifiervalue.cpp113
-rw-r--r--src/uml/qumlqualifiervalue.h53
-rw-r--r--src/uml/qumlraiseexceptionaction.cpp512
-rw-r--r--src/uml/qumlraiseexceptionaction.h179
-rw-r--r--src/uml/qumlreadextentaction.cpp527
-rw-r--r--src/uml/qumlreadextentaction.h182
-rw-r--r--src/uml/qumlreadisclassifiedobjectaction.cpp561
-rw-r--r--src/uml/qumlreadisclassifiedobjectaction.h189
-rw-r--r--src/uml/qumlreadlinkaction.cpp564
-rw-r--r--src/uml/qumlreadlinkaction.h198
-rw-r--r--src/uml/qumlreadlinkobjectendaction.cpp548
-rw-r--r--src/uml/qumlreadlinkobjectendaction.h186
-rw-r--r--src/uml/qumlreadlinkobjectendqualifieraction.cpp548
-rw-r--r--src/uml/qumlreadlinkobjectendqualifieraction.h186
-rw-r--r--src/uml/qumlreadselfaction.cpp512
-rw-r--r--src/uml/qumlreadselfaction.h179
-rw-r--r--src/uml/qumlreadstructuralfeatureaction.cpp543
-rw-r--r--src/uml/qumlreadstructuralfeatureaction.h192
-rw-r--r--src/uml/qumlreadvariableaction.cpp530
-rw-r--r--src/uml/qumlreadvariableaction.h189
-rw-r--r--src/uml/qumlrealization.cpp341
-rw-r--r--src/uml/qumlrealization.h137
-rw-r--r--src/uml/qumlreception.cpp532
-rw-r--r--src/uml/qumlreception.h181
-rw-r--r--src/uml/qumlreclassifyobjectaction.cpp567
-rw-r--r--src/uml/qumlreclassifyobjectaction.h198
-rw-r--r--src/uml/qumlredefinableelement.cpp241
-rw-r--r--src/uml/qumlredefinableelement.h108
-rw-r--r--src/uml/qumlredefinabletemplatesignature.cpp364
-rw-r--r--src/uml/qumlredefinabletemplatesignature.h140
-rw-r--r--src/uml/qumlreduceaction.cpp562
-rw-r--r--src/uml/qumlreduceaction.h190
-rw-r--r--src/uml/qumlregion.cpp516
-rw-r--r--src/uml/qumlregion.h174
-rw-r--r--src/uml/qumlrelationship.cpp85
-rw-r--r--src/uml/qumlrelationship.h49
-rw-r--r--src/uml/qumlremovestructuralfeaturevalueaction.cpp587
-rw-r--r--src/uml/qumlremovestructuralfeaturevalueaction.h208
-rw-r--r--src/uml/qumlremovevariablevalueaction.cpp561
-rw-r--r--src/uml/qumlremovevariablevalueaction.h202
-rw-r--r--src/uml/qumlreplyaction.cpp554
-rw-r--r--src/uml/qumlreplyaction.h191
-rw-r--r--src/uml/qumlsendobjectaction.cpp547
-rw-r--r--src/uml/qumlsendobjectaction.h193
-rw-r--r--src/uml/qumlsendsignalaction.cpp564
-rw-r--r--src/uml/qumlsendsignalaction.h197
-rw-r--r--src/uml/qumlsequencenode.cpp765
-rw-r--r--src/uml/qumlsequencenode.h255
-rw-r--r--src/uml/qumlsignal.cpp844
-rw-r--r--src/uml/qumlsignal.h264
-rw-r--r--src/uml/qumlsignalevent.cpp269
-rw-r--r--src/uml/qumlsignalevent.h107
-rw-r--r--src/uml/qumlslot.cpp146
-rw-r--r--src/uml/qumlslot.h61
-rw-r--r--src/uml/qumlstartclassifierbehavioraction.cpp512
-rw-r--r--src/uml/qumlstartclassifierbehavioraction.h179
-rw-r--r--src/uml/qumlstartobjectbehavioraction.cpp583
-rw-r--r--src/uml/qumlstartobjectbehavioraction.h206
-rw-r--r--src/uml/qumlstate.cpp774
-rw-r--r--src/uml/qumlstate.h232
-rw-r--r--src/uml/qumlstateinvariant.cpp289
-rw-r--r--src/uml/qumlstateinvariant.h106
-rw-r--r--src/uml/qumlstatemachine.cpp1266
-rw-r--r--src/uml/qumlstatemachine.h412
-rw-r--r--src/uml/qumlstereotype.cpp1077
-rw-r--r--src/uml/qumlstereotype.h350
-rw-r--r--src/uml/qumlstringexpression.cpp461
-rw-r--r--src/uml/qumlstringexpression.h171
-rw-r--r--src/uml/qumlstructuralfeature.cpp446
-rw-r--r--src/uml/qumlstructuralfeature.h160
-rw-r--r--src/uml/qumlstructuralfeatureaction.cpp520
-rw-r--r--src/uml/qumlstructuralfeatureaction.h186
-rw-r--r--src/uml/qumlstructuredactivitynode.cpp817
-rw-r--r--src/uml/qumlstructuredactivitynode.h264
-rw-r--r--src/uml/qumlstructuredclassifier.cpp893
-rw-r--r--src/uml/qumlstructuredclassifier.h288
-rw-r--r--src/uml/qumlsubstitution.cpp385
-rw-r--r--src/uml/qumlsubstitution.h153
-rw-r--r--src/uml/qumltemplateableelement.cpp157
-rw-r--r--src/uml/qumltemplateableelement.h62
-rw-r--r--src/uml/qumltemplatebinding.cpp192
-rw-r--r--src/uml/qumltemplatebinding.h79
-rw-r--r--src/uml/qumltemplateparameter.cpp196
-rw-r--r--src/uml/qumltemplateparameter.h65
-rw-r--r--src/uml/qumltemplateparametersubstitution.cpp164
-rw-r--r--src/uml/qumltemplateparametersubstitution.h61
-rw-r--r--src/uml/qumltemplatesignature.cpp169
-rw-r--r--src/uml/qumltemplatesignature.h67
-rw-r--r--src/uml/qumltestidentityaction.cpp553
-rw-r--r--src/uml/qumltestidentityaction.h186
-rw-r--r--src/uml/qumltimeconstraint.cpp320
-rw-r--r--src/uml/qumltimeconstraint.h132
-rw-r--r--src/uml/qumltimeevent.cpp288
-rw-r--r--src/uml/qumltimeevent.h111
-rw-r--r--src/uml/qumltimeexpression.cpp372
-rw-r--r--src/uml/qumltimeexpression.h135
-rw-r--r--src/uml/qumltimeinterval.cpp363
-rw-r--r--src/uml/qumltimeinterval.h137
-rw-r--r--src/uml/qumltimeobservation.cpp282
-rw-r--r--src/uml/qumltimeobservation.h110
-rw-r--r--src/uml/qumltransition.cpp550
-rw-r--r--src/uml/qumltransition.h178
-rw-r--r--src/uml/qumltrigger.cpp238
-rw-r--r--src/uml/qumltrigger.h91
-rw-r--r--src/uml/qumltype.cpp265
-rw-r--r--src/uml/qumltype.h109
-rw-r--r--src/uml/qumltypedelement.cpp209
-rw-r--r--src/uml/qumltypedelement.h84
-rw-r--r--src/uml/qumlunmarshallaction.cpp552
-rw-r--r--src/uml/qumlunmarshallaction.h189
-rw-r--r--src/uml/qumlusage.cpp323
-rw-r--r--src/uml/qumlusage.h127
-rw-r--r--src/uml/qumlusecase.cpp1000
-rw-r--r--src/uml/qumlusecase.h316
-rw-r--r--src/uml/qumlvaluepin.cpp663
-rw-r--r--src/uml/qumlvaluepin.h220
-rw-r--r--src/uml/qumlvaluespecification.cpp285
-rw-r--r--src/uml/qumlvaluespecification.h122
-rw-r--r--src/uml/qumlvaluespecificationaction.cpp533
-rw-r--r--src/uml/qumlvaluespecificationaction.h183
-rw-r--r--src/uml/qumlvariable.cpp465
-rw-r--r--src/uml/qumlvariable.h169
-rw-r--r--src/uml/qumlvariableaction.cpp500
-rw-r--r--src/uml/qumlvariableaction.h183
-rw-r--r--src/uml/qumlvertex.cpp266
-rw-r--r--src/uml/qumlvertex.h102
-rw-r--r--src/uml/qumlwritelinkaction.cpp535
-rw-r--r--src/uml/qumlwritelinkaction.h186
-rw-r--r--src/uml/qumlwritestructuralfeatureaction.cpp555
-rw-r--r--src/uml/qumlwritestructuralfeatureaction.h198
-rw-r--r--src/uml/qumlwritevariableaction.cpp522
-rw-r--r--src/uml/qumlwritevariableaction.h194
-rw-r--r--src/uml/uml.pri870
-rw-r--r--src/uml/uml.pro2
1376 files changed, 165490 insertions, 189221 deletions
diff --git a/examples/uml/nested-packages/main.cpp b/examples/uml/nested-packages/main.cpp
index ddfea860..d0b3c34a 100644
--- a/examples/uml/nested-packages/main.cpp
+++ b/examples/uml/nested-packages/main.cpp
@@ -38,411 +38,37 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include <QtUml/QtUml>
+#include <QtUml/QUmlComment>
#include <QtCore/QDebug>
int main ()
{
- qDebug() << "Abstraction";
- QUmlAbstraction Abstraction;
- qDebug() << "AcceptCallAction";
- QUmlAcceptCallAction AcceptCallAction;
- qDebug() << "AcceptEventAction";
- QUmlAcceptEventAction AcceptEventAction;
- qDebug() << "ActionExecutionSpecification";
- QUmlActionExecutionSpecification ActionExecutionSpecification;
- qDebug() << "ActionInputPin";
- QUmlActionInputPin ActionInputPin;
- qDebug() << "Activity";
- QUmlActivity Activity;
- qDebug() << "ActivityFinalNode";
- QUmlActivityFinalNode ActivityFinalNode;
- qDebug() << "ActivityParameterNode";
- QUmlActivityParameterNode ActivityParameterNode;
- qDebug() << "ActivityPartition";
- QUmlActivityPartition ActivityPartition;
- qDebug() << "Actor";
- QUmlActor Actor;
- qDebug() << "AddStructuralFeatureValueAction";
- QUmlAddStructuralFeatureValueAction AddStructuralFeatureValueAction;
- qDebug() << "AddVariableValueAction";
- QUmlAddVariableValueAction AddVariableValueAction;
- qDebug() << "AnyReceiveEvent";
- QUmlAnyReceiveEvent AnyReceiveEvent;
- qDebug() << "Artifact";
- QUmlArtifact Artifact;
- qDebug() << "Association";
- QUmlAssociation Association;
- qDebug() << "AssociationClass";
- QUmlAssociationClass AssociationClass;
- qDebug() << "BehaviorExecutionSpecification";
- QUmlBehaviorExecutionSpecification BehaviorExecutionSpecification;
- qDebug() << "BroadcastSignalAction";
- QUmlBroadcastSignalAction BroadcastSignalAction;
- qDebug() << "CallBehaviorAction";
- QUmlCallBehaviorAction CallBehaviorAction;
- qDebug() << "CallEvent";
- QUmlCallEvent CallEvent;
- qDebug() << "CallOperationAction";
- QUmlCallOperationAction CallOperationAction;
- qDebug() << "CentralBufferNode";
- QUmlCentralBufferNode CentralBufferNode;
- qDebug() << "ChangeEvent";
- QUmlChangeEvent ChangeEvent;
- qDebug() << "Class";
- QUmlClass Class;
- qDebug() << "ClassifierTemplateParameter";
- QUmlClassifierTemplateParameter ClassifierTemplateParameter;
- qDebug() << "Clause";
- QUmlClause Clause;
- qDebug() << "ClearAssociationAction";
- QUmlClearAssociationAction ClearAssociationAction;
- qDebug() << "ClearStructuralFeatureAction";
- QUmlClearStructuralFeatureAction ClearStructuralFeatureAction;
- qDebug() << "ClearVariableAction";
- QUmlClearVariableAction ClearVariableAction;
- qDebug() << "Collaboration";
- QUmlCollaboration Collaboration;
- qDebug() << "CollaborationUse";
- QUmlCollaborationUse CollaborationUse;
- qDebug() << "CombinedFragment";
- QUmlCombinedFragment CombinedFragment;
- qDebug() << "Comment";
- QUmlComment Comment;
- qDebug() << "CommunicationPath";
- QUmlCommunicationPath CommunicationPath;
- qDebug() << "Component";
- QUmlComponent Component;
- qDebug() << "ComponentRealization";
- QUmlComponentRealization ComponentRealization;
- qDebug() << "ConditionalNode";
- QUmlConditionalNode ConditionalNode;
- qDebug() << "ConnectableElementTemplateParameter";
- QUmlConnectableElementTemplateParameter ConnectableElementTemplateParameter;
- qDebug() << "ConnectionPointReference";
- QUmlConnectionPointReference ConnectionPointReference;
- qDebug() << "Connector";
- QUmlConnector Connector;
- qDebug() << "ConnectorEnd";
- QUmlConnectorEnd ConnectorEnd;
- qDebug() << "ConsiderIgnoreFragment";
- QUmlConsiderIgnoreFragment ConsiderIgnoreFragment;
- qDebug() << "Constraint";
- QUmlConstraint Constraint;
- qDebug() << "Continuation";
- QUmlContinuation Continuation;
- qDebug() << "ControlFlow";
- QUmlControlFlow ControlFlow;
- qDebug() << "CreateLinkAction";
- QUmlCreateLinkAction CreateLinkAction;
- qDebug() << "CreateLinkObjectAction";
- QUmlCreateLinkObjectAction CreateLinkObjectAction;
- qDebug() << "CreateObjectAction";
- QUmlCreateObjectAction CreateObjectAction;
- qDebug() << "DataStoreNode";
- QUmlDataStoreNode DataStoreNode;
- qDebug() << "DataType";
- QUmlDataType DataType;
- qDebug() << "DecisionNode";
- QUmlDecisionNode DecisionNode;
- qDebug() << "Dependency";
- QUmlDependency Dependency;
- qDebug() << "Deployment";
- QUmlDeployment Deployment;
- qDebug() << "DeploymentSpecification";
- QUmlDeploymentSpecification DeploymentSpecification;
- qDebug() << "DestroyLinkAction";
- QUmlDestroyLinkAction DestroyLinkAction;
- qDebug() << "DestroyObjectAction";
- QUmlDestroyObjectAction DestroyObjectAction;
- qDebug() << "DestructionOccurrenceSpecification";
- QUmlDestructionOccurrenceSpecification DestructionOccurrenceSpecification;
- qDebug() << "Device";
- QUmlDevice Device;
- qDebug() << "Duration";
- QUmlDuration Duration;
- qDebug() << "DurationConstraint";
- QUmlDurationConstraint DurationConstraint;
- qDebug() << "DurationInterval";
- QUmlDurationInterval DurationInterval;
- qDebug() << "DurationObservation";
- QUmlDurationObservation DurationObservation;
- qDebug() << "ElementImport";
- QUmlElementImport ElementImport;
- qDebug() << "Enumeration";
- QUmlEnumeration Enumeration;
- qDebug() << "EnumerationLiteral";
- QUmlEnumerationLiteral EnumerationLiteral;
- qDebug() << "ExceptionHandler";
- QUmlExceptionHandler ExceptionHandler;
- qDebug() << "ExecutionEnvironment";
- QUmlExecutionEnvironment ExecutionEnvironment;
- qDebug() << "ExecutionOccurrenceSpecification";
- QUmlExecutionOccurrenceSpecification ExecutionOccurrenceSpecification;
- qDebug() << "ExpansionNode";
- QUmlExpansionNode ExpansionNode;
- qDebug() << "ExpansionRegion";
- QUmlExpansionRegion ExpansionRegion;
- qDebug() << "Expression";
- QUmlExpression Expression;
- qDebug() << "Extend";
- QUmlExtend Extend;
- qDebug() << "Extension";
- QUmlExtension Extension;
- qDebug() << "ExtensionEnd";
- QUmlExtensionEnd ExtensionEnd;
- qDebug() << "ExtensionPoint";
- QUmlExtensionPoint ExtensionPoint;
- qDebug() << "FinalState";
- QUmlFinalState FinalState;
- qDebug() << "FlowFinalNode";
- QUmlFlowFinalNode FlowFinalNode;
- qDebug() << "ForkNode";
- QUmlForkNode ForkNode;
- qDebug() << "FunctionBehavior";
- QUmlFunctionBehavior FunctionBehavior;
- qDebug() << "Gate";
- QUmlGate Gate;
- qDebug() << "GeneralOrdering";
- QUmlGeneralOrdering GeneralOrdering;
- qDebug() << "Generalization";
- QUmlGeneralization Generalization;
- qDebug() << "GeneralizationSet";
- QUmlGeneralizationSet GeneralizationSet;
- qDebug() << "Image";
- QUmlImage Image;
- qDebug() << "Include";
- QUmlInclude Include;
- qDebug() << "InformationFlow";
- QUmlInformationFlow InformationFlow;
- qDebug() << "InformationItem";
- QUmlInformationItem InformationItem;
- qDebug() << "InitialNode";
- QUmlInitialNode InitialNode;
- qDebug() << "InputPin";
- QUmlInputPin InputPin;
- qDebug() << "InstanceSpecification";
- QUmlInstanceSpecification InstanceSpecification;
- qDebug() << "InstanceValue";
- QUmlInstanceValue InstanceValue;
- qDebug() << "Interaction";
- QUmlInteraction Interaction;
- qDebug() << "InteractionConstraint";
- QUmlInteractionConstraint InteractionConstraint;
- qDebug() << "InteractionOperand";
- QUmlInteractionOperand InteractionOperand;
- qDebug() << "InteractionUse";
- QUmlInteractionUse InteractionUse;
- qDebug() << "Interface";
- QUmlInterface Interface;
- qDebug() << "InterfaceRealization";
- QUmlInterfaceRealization InterfaceRealization;
- qDebug() << "InterruptibleActivityRegion";
- QUmlInterruptibleActivityRegion InterruptibleActivityRegion;
- qDebug() << "Interval";
- QUmlInterval Interval;
- qDebug() << "IntervalConstraint";
- QUmlIntervalConstraint IntervalConstraint;
- qDebug() << "JoinNode";
- QUmlJoinNode JoinNode;
- qDebug() << "Lifeline";
- QUmlLifeline Lifeline;
- qDebug() << "LinkEndCreationData";
- QUmlLinkEndCreationData LinkEndCreationData;
- qDebug() << "LinkEndData";
- QUmlLinkEndData LinkEndData;
- qDebug() << "LinkEndDestructionData";
- QUmlLinkEndDestructionData LinkEndDestructionData;
- qDebug() << "LiteralBoolean";
- QUmlLiteralBoolean LiteralBoolean;
- qDebug() << "LiteralInteger";
- QUmlLiteralInteger LiteralInteger;
- qDebug() << "LiteralNull";
- QUmlLiteralNull LiteralNull;
- qDebug() << "LiteralReal";
- QUmlLiteralReal LiteralReal;
- qDebug() << "LiteralString";
- QUmlLiteralString LiteralString;
- qDebug() << "LiteralUnlimitedNatural";
- QUmlLiteralUnlimitedNatural LiteralUnlimitedNatural;
- qDebug() << "LoopNode";
- QUmlLoopNode LoopNode;
- qDebug() << "Manifestation";
- QUmlManifestation Manifestation;
- qDebug() << "MergeNode";
- QUmlMergeNode MergeNode;
- qDebug() << "Message";
- QUmlMessage Message;
- qDebug() << "MessageOccurrenceSpecification";
- QUmlMessageOccurrenceSpecification MessageOccurrenceSpecification;
- qDebug() << "Model";
- QUmlModel Model;
- qDebug() << "Node";
- QUmlNode Node;
- qDebug() << "ObjectFlow";
- QUmlObjectFlow ObjectFlow;
- qDebug() << "OccurrenceSpecification";
- QUmlOccurrenceSpecification OccurrenceSpecification;
- qDebug() << "OpaqueAction";
- QUmlOpaqueAction OpaqueAction;
- qDebug() << "OpaqueBehavior";
- QUmlOpaqueBehavior OpaqueBehavior;
- qDebug() << "OpaqueExpression";
- QUmlOpaqueExpression OpaqueExpression;
- qDebug() << "Operation";
- QUmlOperation Operation;
- qDebug() << "OperationTemplateParameter";
- QUmlOperationTemplateParameter OperationTemplateParameter;
- qDebug() << "OutputPin";
- QUmlOutputPin OutputPin;
- qDebug() << "Package";
- QUmlPackage Package;
- qDebug() << "PackageImport";
- QUmlPackageImport PackageImport;
- qDebug() << "PackageMerge";
- QUmlPackageMerge PackageMerge;
- qDebug() << "Parameter";
- QUmlParameter Parameter;
- qDebug() << "ParameterSet";
- QUmlParameterSet ParameterSet;
- qDebug() << "PartDecomposition";
- QUmlPartDecomposition PartDecomposition;
- qDebug() << "Port";
- QUmlPort Port;
- qDebug() << "PrimitiveType";
- QUmlPrimitiveType PrimitiveType;
- qDebug() << "Profile";
- QUmlProfile Profile;
- qDebug() << "ProfileApplication";
- QUmlProfileApplication ProfileApplication;
- qDebug() << "Property";
- QUmlProperty Property;
- qDebug() << "ProtocolConformance";
- QUmlProtocolConformance ProtocolConformance;
- qDebug() << "ProtocolStateMachine";
- QUmlProtocolStateMachine ProtocolStateMachine;
- qDebug() << "ProtocolTransition";
- QUmlProtocolTransition ProtocolTransition;
- qDebug() << "Pseudostate";
- QUmlPseudostate Pseudostate;
- qDebug() << "QualifierValue";
- QUmlQualifierValue QualifierValue;
- qDebug() << "RaiseExceptionAction";
- QUmlRaiseExceptionAction RaiseExceptionAction;
- qDebug() << "ReadExtentAction";
- QUmlReadExtentAction ReadExtentAction;
- qDebug() << "ReadIsClassifiedObjectAction";
- QUmlReadIsClassifiedObjectAction ReadIsClassifiedObjectAction;
- qDebug() << "ReadLinkAction";
- QUmlReadLinkAction ReadLinkAction;
- qDebug() << "ReadLinkObjectEndAction";
- QUmlReadLinkObjectEndAction ReadLinkObjectEndAction;
- qDebug() << "ReadLinkObjectEndQualifierAction";
- QUmlReadLinkObjectEndQualifierAction ReadLinkObjectEndQualifierAction;
- qDebug() << "ReadSelfAction";
- QUmlReadSelfAction ReadSelfAction;
- qDebug() << "ReadStructuralFeatureAction";
- QUmlReadStructuralFeatureAction ReadStructuralFeatureAction;
- qDebug() << "ReadVariableAction";
- QUmlReadVariableAction ReadVariableAction;
- qDebug() << "Realization";
- QUmlRealization Realization;
- qDebug() << "Reception";
- QUmlReception Reception;
- qDebug() << "ReclassifyObjectAction";
- QUmlReclassifyObjectAction ReclassifyObjectAction;
- qDebug() << "RedefinableTemplateSignature";
- QUmlRedefinableTemplateSignature RedefinableTemplateSignature;
- qDebug() << "ReduceAction";
- QUmlReduceAction ReduceAction;
- qDebug() << "Region";
- QUmlRegion Region;
- qDebug() << "RemoveStructuralFeatureValueAction";
- QUmlRemoveStructuralFeatureValueAction RemoveStructuralFeatureValueAction;
- qDebug() << "RemoveVariableValueAction";
- QUmlRemoveVariableValueAction RemoveVariableValueAction;
- qDebug() << "ReplyAction";
- QUmlReplyAction ReplyAction;
- qDebug() << "SendObjectAction";
- QUmlSendObjectAction SendObjectAction;
- qDebug() << "SendSignalAction";
- QUmlSendSignalAction SendSignalAction;
- qDebug() << "SequenceNode";
- QUmlSequenceNode SequenceNode;
- qDebug() << "Signal";
- QUmlSignal Signal;
- qDebug() << "SignalEvent";
- QUmlSignalEvent SignalEvent;
- qDebug() << "Slot";
- QUmlSlot Slot;
- qDebug() << "StartClassifierBehaviorAction";
- QUmlStartClassifierBehaviorAction StartClassifierBehaviorAction;
- qDebug() << "StartObjectBehaviorAction";
- QUmlStartObjectBehaviorAction StartObjectBehaviorAction;
- qDebug() << "State";
- QUmlState State;
- qDebug() << "StateInvariant";
- QUmlStateInvariant StateInvariant;
- qDebug() << "StateMachine";
- QUmlStateMachine StateMachine;
- qDebug() << "Stereotype";
- QUmlStereotype Stereotype;
- qDebug() << "StringExpression";
- QUmlStringExpression StringExpression;
- qDebug() << "StructuredActivityNode";
- QUmlStructuredActivityNode StructuredActivityNode;
- qDebug() << "Substitution";
- QUmlSubstitution Substitution;
- qDebug() << "TemplateBinding";
- QUmlTemplateBinding TemplateBinding;
- qDebug() << "TemplateParameter";
- QUmlTemplateParameter TemplateParameter;
- qDebug() << "TemplateParameterSubstitution";
- QUmlTemplateParameterSubstitution TemplateParameterSubstitution;
- qDebug() << "TemplateSignature";
- QUmlTemplateSignature TemplateSignature;
- qDebug() << "TestIdentityAction";
- QUmlTestIdentityAction TestIdentityAction;
- qDebug() << "TimeConstraint";
- QUmlTimeConstraint TimeConstraint;
- qDebug() << "TimeEvent";
- QUmlTimeEvent TimeEvent;
- qDebug() << "TimeExpression";
- QUmlTimeExpression TimeExpression;
- qDebug() << "TimeInterval";
- QUmlTimeInterval TimeInterval;
- qDebug() << "TimeObservation";
- QUmlTimeObservation TimeObservation;
- qDebug() << "Transition";
- QUmlTransition Transition;
- qDebug() << "Trigger";
- QUmlTrigger Trigger;
- qDebug() << "UnmarshallAction";
- QUmlUnmarshallAction UnmarshallAction;
- qDebug() << "Usage";
- QUmlUsage Usage;
- qDebug() << "UseCase";
- QUmlUseCase UseCase;
- qDebug() << "ValuePin";
- QUmlValuePin ValuePin;
- qDebug() << "ValueSpecificationAction";
- QUmlValueSpecificationAction ValueSpecificationAction;
- qDebug() << "Variable";
- QUmlVariable Variable;
+ QUmlComment *c1 = new QUmlComment;
+ c1->asQObject()->setObjectName("c1");
+ QUmlComment *c2 = new QUmlComment;
+ c2->asQObject()->setObjectName("c2");
+ QUmlComment *c3 = new QUmlComment;
+ c3->asQObject()->setObjectName("c3");
- Package.setName("Package");
- //Package.addOwnedMember(0);
- Package.addPackagedElement(&Class);
- qDebug() << "PackagedElement added !";
- qDebug() << Package.packagedElement().size();
- qDebug() << Package.ownedMember().size();
- qDebug() << Package.member().size();
- qDebug() << Class.namespace_()->name();
- Package.removePackagedElement(&Class);
- qDebug() << "PackagedElement removed !";
- qDebug() << Package.packagedElement().size();
- qDebug() << Package.ownedMember().size();
- qDebug() << Package.member().size();
- if (Class.namespace_())
- qDebug() << Class.namespace_()->name();
+ c2->setBody("Teste");
+ c1->addOwnedComment(c2);
+ c1->addOwnedComment(c3);
+ qDebug() << "c2's parent:" << c2->asQObject()->parent()->objectName();
+ qDebug() << "c3's parent:" << c3->asQObject()->parent()->objectName();
+
+ //c1->removeOwnedComment(c3);
+ qDebug() << "c3's parent:" << c3->asQObject()->parent();
+
+ qDebug() << "Comment size:" << c1->ownedComment().size();
+ delete c2;
+ //c1->removeOwnedComment(c2);
+ qDebug() << "Comment size:" << c1->ownedComment().size();
+ foreach(QObject *c, c1->asQObject()->property("ownedComment").value< QSet<QObject *> >())
+ qDebug() << c->objectName();
+
+ foreach(QObject *c, c1->asQObject()->property("ownedElement").value< QSet<QObject *> >())
+ qDebug() << c->objectName();
+
+ delete c1;
+ //delete c3;
}
diff --git a/scripts/generate-class.pl b/scripts/generate-class.pl
index 51b81627..532e1fb1 100755
--- a/scripts/generate-class.pl
+++ b/scripts/generate-class.pl
@@ -61,6 +61,7 @@ binmode STDOUT, ':utf8';
foreach my $class ($classset->get_nodelist) {
my $className = $class->findvalue('@name');
+ my $isAbstract = $class->findvalue('@isAbstract');
open STDOUT, '>', $options{o}."/".$namespace."/q".lc($namespace).lc($className).".h";
if ($tt->process('qclass.h', {
xmi => $options{i},
@@ -74,18 +75,21 @@ foreach my $class ($classset->get_nodelist) {
namespace => $namespace,
className => $className
}) ne 1) { print $tt->error(); }
- open STDOUT, '>', $options{o}."/".$namespace."/internal/".lc($namespace).lc($className)."_p.h";
- if ($tt->process('class_p.h', {
- xmi => $options{i},
- namespace => $namespace,
- className => $className
- }) ne 1) { print $tt->error(); }
- close STDOUT;
- open STDOUT, '>', $options{o}."/".$namespace."/internal/".lc($namespace).lc($className).".cpp";
- if ($tt->process('class.cpp', {
- xmi => $options{i},
- namespace => $namespace,
- className => $className
- }) ne 1) { print $tt->error(); }
close STDOUT;
+ if ($isAbstract ne 'true') {
+ open STDOUT, '>', $options{o}."/".$namespace."/qobjects/q".lc($namespace).lc($className)."object_p.h";
+ if ($tt->process('qobjectclass_p.h', {
+ xmi => $options{i},
+ namespace => $namespace,
+ className => $className
+ }) ne 1) { print $tt->error(); }
+ close STDOUT;
+ open STDOUT, '>', $options{o}."/".$namespace."/qobjects/q".lc($namespace).lc($className)."object.cpp";
+ if ($tt->process('qobjectclass.cpp', {
+ xmi => $options{i},
+ namespace => $namespace,
+ className => $className
+ }) ne 1) { print $tt->error(); }
+ close STDOUT;
+ }
}
diff --git a/scripts/templates/class.cpp b/scripts/templates/class.cpp
deleted file mode 100644
index b3717b11..00000000
--- a/scripts/templates/class.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-[%- PROCESS common.tmpl -%]
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt${namespace} module of the Qt Toolkit.
-**
-** \$QT_BEGIN_LICENSE:LGPL\$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** \$QT_END_LICENSE\$
-**
-****************************************************************************/
-#include "${namespace.lower}${className.lower}_p.h"
-[%- superclasses = [] -%]
-[%- SET generalization = class.findnodes("generalization") -%]
-[%- FOREACH superclass IN generalization -%]
-[%- superclasses.push("${namespace}${superclass.findvalue('@general')}") -%]
-[%- END -%]
-[%- forwards = [] -%]
-[%- FOREACH forward = class.findnodes("ownedAttribute[@type] | ownedOperation/ownedParameter[@type]") -%]
-[%- SET forwardName = forward.findvalue('@type') -%]
-[%- IF xmi.findnodes("//packagedElement[@xmi:type='uml:Enumeration' and @name='$forwardName']").findvalue("@name") == "" -%]
-[%- IF forwardName != className && superclasses.grep("^${namespace}${forwardName}\$").size == 0 -%][%- forwards.push("${namespace}${forwardName}") -%][%- END -%]
-[%- END -%]
-[%- END -%]
-[%- FOREACH forward = forwards.unique.sort -%]
-[%- IF loop.first %]
-[% END %]
-#include "private/${forward.lower}_p.h"
-[%- END %]
-
-${namespace}${className}::${namespace}${className}()
-[%- SET found = "false" -%]
-[%- FOREACH attribute = class.findnodes("ownedAttribute[(@isDerived=\"false\" or not(@isDerived)) or (@isDerivedUnion and @isDerivedUnion=\"true\")]") -%]
- [%- SET defaultType = attribute.findvalue("defaultValue/@xmi:type") -%]
- [%- SET type = QT_TYPE(namespace, attribute) -%]
- [%- IF defaultType == "uml:LiteralBoolean" || defaultType == "uml:InstanceValue" || defaultType == "uml:LiteralInteger" || defaultType == "uml:LiteralUnlimitedNatural" || type.match('\*$') -%]
- [%- IF found == "false" %] :
-[% SET found = "true" -%]
- [%- ELSE %],
-[% END -%]
- [%- IF defaultType == "uml:LiteralBoolean" -%]
- [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%]
- [%- IF defaultValue != "" -%]
- _[% QT_ATTRIBUTE(attribute) %](${defaultValue})
- [%- ELSE -%]
- _[% QT_ATTRIBUTE(attribute) %](false)
- [%- END -%]
- [%- ELSIF defaultType == "uml:InstanceValue" -%]
- [%- SET defaultInstance = attribute.findvalue("defaultValue/@instance") -%]
- _[% QT_ATTRIBUTE(attribute) %](Qt${namespace}::${defaultInstance.split("-").0}${defaultInstance.split("-").1.ucfirst})
- [%- ELSIF defaultType == "uml:LiteralInteger" -%]
- [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%]
- [%- IF defaultValue != "" -%]
- _[% QT_ATTRIBUTE(attribute) %](${defaultValue})
- [%- ELSE -%]
- _[% QT_ATTRIBUTE(attribute) %](0)
- [%- END -%]
- [%- ELSIF defaultType == "uml:LiteralUnlimitedNatural" -%]
- [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%]
- [%- IF defaultValue != "" -%]
- _[% QT_ATTRIBUTE(attribute) %](${defaultValue})
- [%- ELSE -%]
- _[% QT_ATTRIBUTE(attribute) %](0)
- [%- END -%]
- [%- ELSIF type.match('\*$') -%]
- _[% QT_ATTRIBUTE(attribute) %](0)
- [%- END -%]
- [%- END -%]
-[%- END %]
-{
-}
-[%- FOREACH attribute = class.findnodes("ownedAttribute") %]
-[%- IF loop.first %]
-
-// OWNED ATTRIBUTES
-[%- END %]
-
-[%- SET qtAttribute = QT_ATTRIBUTE(attribute) -%]
-[%- SET qtType = QT_TYPE(namespace, attribute) -%]
-[%- SET readOnly = attribute.findvalue("@isReadOnly") -%]
-[%- SET derived = attribute.findvalue("@isDerived") -%]
-[%- SET derivedUnion = attribute.findvalue("@isDerivedUnion") -%]
-[%- SET association = attribute.findvalue("@association") %]
-[% IF qtType.match("QList|QSet") %]const [% END %][% QT_TYPE(namespace, attribute) -%]
-${namespace}${className}::${qtAttribute}() const
-{
- // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
-
- [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
- qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
-
- [%- IF qtType.match('\*$') %]
- return 0;
- [%- ELSE %]
- return ${qtType.trim}();
- [%- END %]
- [%- ELSE %]
- return _${qtAttribute};
- [%- END %]
-}
- [%- SET attributeName = attribute.findvalue("@name").ucfirst %]
- [%- IF attribute.findnodes("upperValue").findvalue("@value") == "*" %]
-
-void ${namespace}${className}::add${attributeName}(${QT_TYPE(namespace, attribute).remove("QSet<").remove("QList<").replace("> ", " ").replace('\* $', '*')}${qtAttribute})
-{
- // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
-
- [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
- qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
- Q_UNUSED(${qtAttribute});
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- [%- ELSE %]
- if (!_${qtAttribute}.contains(${qtAttribute})) {
- _${qtAttribute}.[% IF QT_TYPE(namespace, attribute).match("QList") %]append[% ELSE %]insert[% END %](${qtAttribute});
- [%- END %]
- [%- found = "false" -%]
- [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
- [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
- [%- IF subsettedProperty.findvalue("@name") != "" -%]
- [%- IF found == "false" %]
-
- // Adjust subsetted properties
- [%- found = "true" -%]
- [%- END -%]
- [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
- add${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
- [%- ELSE %]
- set${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
- [%- END -%]
- [%- END %]
- [%- END %]
- [%- IF association != "" -%]
- [%- found = "false" -%]
- [%- FOREACH memberEnd = xmi.findvalue("//packagedElement[@xmi:type=\"uml:Association\" and @name=\"${association}\"]/@memberEnd").split(' ') -%]
- [%- NEXT IF memberEnd.split('-').0 == className -%]
- [%- SET oppositeProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${memberEnd.split('-').0}\"]/ownedAttribute[@name=\"${memberEnd.split('-').1}\"]") -%]
- [%- IF oppositeProperty.findvalue("@name") != "" -%]
- [%- IF found == "false" %]
-
- // Adjust opposite properties
- [%- found = "true" -%]
- [%- END %]
- if (${qtAttribute}) {
- [%- IF oppositeProperty.findvalue("upperValue/@value") == "*" %]
- ${qtAttribute}->add${memberEnd.split('-').1.ucfirst}(this);
- [%- ELSE %]
- ${qtAttribute}->set${memberEnd.split('-').1.ucfirst}(this);
- [%- END %]
- }
- [%- END %]
- [%- END %]
- [%- END %]
- }
-}
-
-void ${namespace}${className}::remove${attributeName}(${QT_TYPE(namespace, attribute).remove("QSet<").remove("QList<").replace("> ", " ").replace('\* $', '*')}${qtAttribute})
-{
- // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
-
- [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
- qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
- Q_UNUSED(${qtAttribute});
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- [%- ELSE %]
- if (_${qtAttribute}.contains(${qtAttribute})) {
- _${qtAttribute}.[% IF QT_TYPE(namespace, attribute).match("QList") %]removeAll[% ELSE %]remove[% END %](${qtAttribute});
- [%- END %]
- [%- found = "false" -%]
- [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
- [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
- [%- IF subsettedProperty.findvalue("@name") != "" -%]
- [%- IF found == "false" %]
-
- // Adjust subsetted properties
- [%- found = "true" -%]
- [%- END -%]
- [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
- remove${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
- [%- ELSE %]
- set${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
- [%- END -%]
- [%- END %]
- [%- END %]
- [%- IF association != "" -%]
- [%- found = "false" -%]
- [%- FOREACH memberEnd = xmi.findvalue("//packagedElement[@xmi:type=\"uml:Association\" and @name=\"${association}\"]/@memberEnd").split(' ') -%]
- [%- NEXT IF memberEnd.split('-').0 == className -%]
- [%- SET oppositeProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${memberEnd.split('-').0}\"]/ownedAttribute[@name=\"${memberEnd.split('-').1}\"]") -%]
- [%- IF oppositeProperty.findvalue("@name") != "" -%]
- [%- IF found == "false" %]
-
- // Adjust opposite properties
- [%- found = "true" -%]
- [%- END %]
- if (${qtAttribute}) {
- [%- IF oppositeProperty.findvalue("upperValue/@value") == "*" %]
- ${qtAttribute}->remove${memberEnd.split('-').1.ucfirst}(this);
- [%- ELSE %]
- ${qtAttribute}->set${memberEnd.split('-').1.ucfirst}(0);
- [%- END %]
- }
- [%- END %]
- [%- END %]
- [%- END %]
- }
-}
- [%- ELSE %]
-
-void ${namespace}${className}::set${attributeName.remove("^Is")}(${QT_TYPE(namespace, attribute)}${qtAttribute})
-{
- // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
-
- [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
- qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
- Q_UNUSED(${qtAttribute});
-
- if (false /* <derivedexclusion-criteria> */) {
- [%- ELSE %]
- if (_${qtAttribute} != ${qtAttribute}) {
- [%- END %]
- [%- found = "false" -%]
- [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
- [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
- [%- IF subsettedProperty.findvalue("@name") != "" -%]
- [%- IF found == "false" %]
- // Adjust subsetted properties
- [%- found = "true" -%]
- [%- END -%]
- [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
- [% IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]// [% END %]remove${subsettedPropertyName.split('-').1.ucfirst}([%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]/* <derived-code> */[% ELSE %]_${qtAttribute}[% END %]);
- [%- END -%]
- [%- END %]
- [%- END %]
-[%- IF found == "true" %]
-[% END %]
- [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
- // <derived-code>
- [%- ELSE %]
- _${qtAttribute} = ${qtAttribute};
- [%- END %]
- [%- found = "false" -%]
- [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
- [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
- [%- IF subsettedProperty.findvalue("@name") != "" -%]
- [%- IF found == "false" %]
-
- // Adjust subsetted properties
- [%- found = "true" -%]
- [%- END -%]
- [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
- if (${qtAttribute}) {
- add${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
- }
- [%- ELSE %]
- set${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
- [%- END -%]
- [%- END %]
- [%- END %]
- }
-}
- [%- END %]
-[%- END %]
-[%- FOREACH operation = class.findnodes("ownedOperation[@name != ../ownedAttribute[@isDerived='true']/@name]") -%]
-[%- IF loop.first %]
-
-// OPERATIONS
-[%- END %]
-[%- SET operationName = operation.findvalue("@name") -%]
-
-[%- SET returnType = QT_TYPE(namespace, operation.findnodes("ownedParameter[@direction='return']")) %]
-
-${returnType}${namespace}${className}::${operationName}(
- [% SET parameters = operation.findnodes("ownedParameter[@direction!='return']") -%]
- [%- FOREACH parameter = parameters -%]
- [%- QT_TYPE(namespace, parameter) -%]
-${parameter.findvalue("@name")}
- [%- IF !loop.last %], [% END -%]
- [%- END -%]
-)[% IF operation.findvalue("@isQuery") == "true" %] const[% END %]
-{
- qWarning("${namespace}${className}::${operationName}(): to be implemented (operation)");
-
- [%- FOREACH parameter = parameters %]
- Q_UNUSED(${parameter.findvalue("@name")});
- [%- END %]
- [%- IF returnType.match('\*$') %]
- return 0;
- [%- ELSE %]
- return ${returnType}();
- [%- END %]
-}
-[%- END %]
-
diff --git a/scripts/templates/class_p.h b/scripts/templates/class_p.h
deleted file mode 100644
index 7ec0ec53..00000000
--- a/scripts/templates/class_p.h
+++ /dev/null
@@ -1,130 +0,0 @@
-[%- PROCESS common.tmpl -%]
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the Qt${namespace} module of the Qt Toolkit.
-**
-** \$QT_BEGIN_LICENSE:LGPL\$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** \$QT_END_LICENSE\$
-**
-****************************************************************************/
-#ifndef ${namespace.upper}${className.upper}_H
-#define ${namespace.upper}${className.upper}_H
-
-#include <Qt${namespace}/Qt${namespace}Global>
-[% superclasses = [] -%]
-[%- SET generalization = class.findnodes("generalization") -%]
-[%- FOREACH superclass IN generalization -%]
-[% SET superclassName = superclass.findvalue("@general") %]
-#include "private/${namespace.lower}${superclassName.lower}_p.h"
-[%- superclasses.push("${namespace}${superclassName}") -%]
-[%- IF loop.last %]
-[% END -%]
-[%- END -%]
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-[%- SET useNamespace = 'false' -%]
-[%- forwards = [] -%]
-[%- FOREACH forward = class.findnodes("ownedAttribute[@type] | ownedOperation/ownedParameter[@type]") -%]
-[%- SET forwardName = forward.findvalue('@type') -%]
-[%- IF xmi.findnodes("//packagedElement[@xmi:type='uml:Enumeration' and @name='$forwardName']").findvalue("@name") != "" -%]
- [%- SET useNamespace = 'true' -%]
-[%- ELSE -%]
-[%- IF forwardName != className && superclasses.grep("^${namespace}${forwardName}\$").size == 0 -%][%- forwards.push("${namespace}${forwardName}") -%][%- END -%]
-[%- END -%]
-[%- END -%]
-[%- IF useNamespace == 'true' %]
-#include <Qt${namespace}/Qt${namespace}Namespace>
-[% END -%]
-[%- FOREACH forward = forwards.unique.sort %]
-class ${forward};
-[%- IF loop.last %]
-[% END %]
-[%- END -%]
-
-class Q_${namespace.upper}_EXPORT ${namespace}${className}
-[%- FOREACH superclass IN generalization -%]
-[%- IF loop.first -%] : [%- END -%]
-public ${namespace}${superclass.findvalue("@general")}
-[%- IF !loop.last %], [% END -%]
-[%- END %]
-{
-public:
- Q_DECL_HIDDEN explicit ${namespace}${className}();
-[%- FOREACH attribute = class.findnodes("ownedAttribute") -%]
- [%- IF loop.first %]
-
- // Owned attributes
- [%- END -%]
- [%- SET qtAttribute = QT_ATTRIBUTE(attribute) -%]
- [%- SET readOnly = attribute.findvalue("@isReadOnly") -%]
- [%- SET qtType = QT_TYPE(namespace, attribute) %]
- [% IF qtType.match("QList|QSet") %]const [% END %]${qtType}${qtAttribute}() const;
- [%- SET attributeName = attribute.findvalue("@name").ucfirst -%]
- [%- IF attribute.findnodes("upperValue").findvalue("@value") == "*" %]
- [% IF readOnly == "true" %]Q_DECL_HIDDEN [% END %]void add${attributeName}([% qtType.remove("QSet<").remove("QList<").replace("> ", " ").replace('\* $', '*') %]${qtAttribute});
- [% IF readOnly == "true" %]Q_DECL_HIDDEN [% END %]void remove${attributeName}([% qtType.remove("QSet<").remove("QList<").replace("> ", " ").replace('\* $', '*') %]${qtAttribute});
- [%- ELSE %]
- [% IF readOnly == "true" %]Q_DECL_HIDDEN [% END %]void set${attributeName.remove("^Is")}(${qtType}${qtAttribute});
- [%- END %]
- [%- IF loop.last %]
- [%- END %]
-[%- END -%]
-[%- FOREACH operation = class.findnodes("ownedOperation[@name != ../ownedAttribute[@isDerived='true']/@name]") -%]
-[%- IF loop.first %]
-
- // Operations
-[%- END %]
-[% SET operationName = operation.findvalue("@name") -%]
- [% QT_TYPE(namespace, operation.findnodes("ownedParameter[@direction='return']")) -%]
-${operationName}(
- [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
- [%- QT_TYPE(namespace, parameter) -%]
-${parameter.findvalue("@name")}
- [%- IF !loop.last %], [% END -%]
- [%- END -%]
-)[% IF operation.findvalue("@isQuery") == "true" %] const[% END %];
-[%- END %]
-
-protected:
-[%- FOREACH attribute = class.findnodes("ownedAttribute[(@isDerived=\"false\" or not(@isDerived)) or (@isDerivedUnion and @isDerivedUnion=\"true\")]") %]
- [% QT_TYPE(namespace, attribute) -%]_[%- QT_ATTRIBUTE(attribute) %];
-[%- END %]
-};
-
-#endif // ${namespace.upper}${className.upper}_H
-
diff --git a/scripts/templates/common.tmpl b/scripts/templates/common.tmpl
index a218b92a..96d7b63c 100644
--- a/scripts/templates/common.tmpl
+++ b/scripts/templates/common.tmpl
@@ -8,7 +8,7 @@
"Real" = "double"
};
-%]
-[%- MACRO QT_TYPE(namespace, attribute, internal) BLOCK -%]
+[%- MACRO QT_TYPE(namespace, attribute, external) BLOCK -%]
[%- SET multiplicity = attribute.findnodes("upperValue").findvalue("@value") -%]
[%- SET isUnique = attribute.findvalue("@isUnique") -%]
[%- SET isOrdered = attribute.findvalue("@isOrdered") -%]
@@ -18,7 +18,7 @@
[%- IF xmi.findnodes("//packagedElement[@xmi:type='uml:Enumeration' and @name='$attributeType']").findvalue("@name") != "" -%]
Qt${namespace}::${attributeType}
[%- ELSE -%]
-[% IF internal == "false" %]Q[% END %]${namespace}${attributeType} *
+[% IF external == "false" %]QObject *[% ELSE %]Q${namespace}${attributeType} *[% END %]
[%- END -%]
[%- ELSE -%]
${uml2qt_type.item(attribute.findnodes("type").findvalue("@href").split("#").last)}[%- IF multiplicity != "*" %] [% END -%]
@@ -173,26 +173,24 @@ ${parameter.findvalue("@name")}
[%- NEXT IF redefinedProperties.grep("^${className}-${qtAttribute}$").size > 0 -%]
[%- SET qtType = QT_TYPE(namespace, attribute, "false") -%]
[%- SET readOnly = attribute.findvalue("@isReadOnly") -%]
- [%- IF readOnly == "false" || readOnly == "" -%]
[%- SET attributeName = attribute.findvalue("@name").ucfirst -%]
[%- IF attribute.findnodes("upperValue").findvalue("@value") == "*" -%]
- [%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
- void add${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*').remove('^Q') %]${qtAttribute});
- void remove${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*').remove('^Q') %]${qtAttribute});
- [%- ELSE %]
- void add${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "")}${qtAttribute});
- void remove${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "")}${qtAttribute});
- [%- END -%]
+ [%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]add${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*') %]${qtAttribute});
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]remove${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*') %]${qtAttribute});
+ [%- ELSE %]
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]add${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "")}${qtAttribute});
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]remove${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "")}${qtAttribute});
+ [%- END -%]
[%- ELSE -%]
- [%- IF qtType.match('QList|QSet') %]
- void set${attributeName.remove("^Is")}(${qtType.remove('^Q')}${qtAttribute});
- [%- ELSIF qtType.match('\*$') %]
- void set${attributeName.remove("^Is")}(${qtType}${qtAttribute});
- [%- ELSE %]
- void set${attributeName.remove("^Is")}(${qtType}${qtAttribute});
+ [%- IF qtType.match('QList|QSet') %]
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]set${attributeName}(${qtType}${qtAttribute});
+ [%- ELSIF qtType.match('\*$') %]
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]set${attributeName}(${qtType}${qtAttribute} = 0);
+ [%- ELSE %]
+ void [%- IF readOnly == "true" -%]Q_DECL_HIDDEN [% END %]set${attributeName.remove("^Is")}(${qtType}${qtAttribute});
+ [%- END -%]
[%- END -%]
- [%- END -%]
- [%- END %]
[%- END %]
[%- END -%]
[%- MACRO GENERATE_CPP_ATTRIBUTES(originalClassName, class, visitedClasses, redefinedProperties) BLOCK -%]
@@ -213,38 +211,21 @@ ${parameter.findvalue("@name")}
[%- SET found = "true" -%]
[% END -%]
-[%- SET documentation = attribute.findvalue("ownedComment/body/text()") -%]
-[%- IF documentation != "" %]
-/*!
- ${documentation}
- */
-[%- END -%]
[%- SET qtType = QT_TYPE(namespace, attribute, "false") -%]
+ [%- SET originalQtType = QT_TYPE(namespace, attribute, "true") -%]
[%- SET derived = attribute.findvalue("@isDerived") -%]
[%- SET derivedUnion = attribute.findvalue("@isDerivedUnion") %]
-[% IF qtType.match("QList|QSet") %]const [% END %]${qtType}Q${namespace}${originalClassName}::${qtAttribute}() const
+[% IF qtType.match("QList|QSet") %]const [% END %]${qtType}Q${namespace}${originalClassName}Object::${qtAttribute}() const
{
[%- IF qtType.match("QList|QSet") %]
- [%- IF derived == "true" && (derivedUnion == "" || derivedUnion == "false") %]
- ${qtType}r;
- foreach (${qtType.remove("QList<").remove("QSet<").remove(">").trim.remove("^Q")}element, ${namespace}${className}::${qtAttribute}())
- r.[% IF qtType.match("QList") %]append[% ELSE %]insert[% END %](reinterpret_cast<${qtType.remove("QList<").remove("QSet<").remove(">").trim}>(element));
- return r;
- [%- ELSE %]
- return *(reinterpret_cast<const ${qtType.trim.remove(' \*$')} *>(&_${qtAttribute}));
- [%- END -%]
+ ${qtType}[% IF qtType.match("QList") %]list[% ELSE %]set[% END %];
+ foreach (Q${originalQtType.remove("QList<").remove("QSet<").remove(">").trim.remove("^Q")}element, qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->${qtAttribute}())
+ [% IF qtType.match("QList") %]list[% ELSE %]set[% END %].[% IF qtType.match("QList") %]append[% ELSE %]insert[% END %](element->asQObject());
+ return [% IF qtType.match("QList") %]list[% ELSE %]set[% END %];
[%- ELSIF qtType.match('\*$') %]
- [%- IF derived == "true" && (derivedUnion == "" || derivedUnion == "false") %]
- return reinterpret_cast<${qtType.trim}>(${namespace}${className}::${qtAttribute}());
- [%- ELSE %]
- return reinterpret_cast<${qtType.trim}>(_${qtAttribute});
- [%- END -%]
+ return qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->${qtAttribute}()->asQObject();
[%- ELSE %]
- [%- IF derived == "true" && (derivedUnion == "" || derivedUnion == "false") %]
- return ${namespace}${className}::${qtAttribute}();
- [%- ELSE %]
- return _${qtAttribute};
- [%- END -%]
+ return qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->${qtAttribute}();
[%- END %]
}
@@ -271,14 +252,9 @@ ${parameter.findvalue("@name")}
[% SET operationName = operation.findvalue("@name") -%]
[%- NEXT IF redefinedOperations.grep("^${className}-${operationName}$").size > 0 -%]
[%- SET return = QT_TYPE(namespace, operation.findnodes("ownedParameter[@direction='return']"), "false") %]
-[%- SET documentation = operation.findvalue("ownedComment/body/text()") -%]
-[%- IF documentation != "" %]
-/*!
- ${documentation}
- */
-[%- END %]
+[%- SET originalReturn = QT_TYPE(namespace, operation.findnodes("ownedParameter[@direction='return']"), "true") %]
[% return -%]
-Q${namespace}${originalClassName}::${operationName}(
+Q${namespace}${originalClassName}Object::${operationName}(
[%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
[%- QT_TYPE(namespace, parameter, "false") -%]
${parameter.findvalue("@name")}
@@ -286,32 +262,51 @@ ${parameter.findvalue("@name")}
[%- END -%]
)[% IF operation.findvalue("@isQuery") == "true" %] const[% END %]
{
- [%- IF return.match('\*$') || !return.match("QList|QSet") %]
- return [% IF return.match('\*$') %]reinterpret_cast<${return.trim}>([% END %]${namespace}${className}::${operationName}(
[%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ [%- IF QT_TYPE(namespace, parameter, "true").match("QList|QSet") %]
+ ${QT_TYPE(namespace, parameter, "true")}${parameter.findvalue("@name")}Converted;
+ foreach (QObject *object, ${parameter.findvalue("@name")})
+ ${parameter.findvalue("@name")}Converted.[% IF QT_TYPE(namespace, parameter, "true").match("QList") %]append[% ELSE %]insert[% END %](qmodelingobjectproperty_cast<${QT_TYPE(namespace, parameter, "true").remove("QList<").remove("QSet<").remove(">").trim}>(object));
+ [%- END -%]
+ [%- END -%]
+ [%- IF return.match("QList|QSet") && return.match('\*') %]
+ ${return}[% IF qtType.match("QList") %]list[% ELSE %]set[% END %];
+ foreach (${originalReturn.remove("QList<").remove("QSet<").remove(">").trim}element, qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->${operationName}(
+ [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ [%- qtType = QT_TYPE(namespace, parameter, "true") -%]
+ [%- IF qtType.match('QList|QSet') -%]
+${parameter.findvalue("@name")}Converted
+ [%- ELSIF qtType.match('\*$') -%]
+qmodelingobjectproperty_cast<${qtType.remove("QList<").remove("QSet<").remove(">")}>(${parameter.findvalue("@name")})
+ [%- ELSE -%]
${parameter.findvalue("@name")}
- [%- IF !loop.last %], [% END -%]
- [%- END -%])[% IF return.match('\*$') %])[% END %];
- [%- ELSIF return.match('\*') %]
- ${return}r;
- foreach (${return.remove("QList<").remove("QSet<").remove(">").trim.remove("^Q")}element, ${namespace}${className}::${operationName}(
- [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
-[%- qtType = QT_TYPE(namespace, parameter, "false") -%]
-[%- IF qtType.match("QList|QSet") -%]
-*(reinterpret_cast<${qtType.replace("<Q", "<")}*>(&${parameter.findvalue("@name")}))
-[%- ELSE -%]
+ [%- END -%]
+ [%- IF !loop.last %], [% END -%]
+ [%- END -%]))
+ [% IF qtType.match("QList") %]list[% ELSE %]set[% END %].[% IF return.match("QList") %]append[% ELSE %]insert[% END %](element->asQObject());
+ return [% IF qtType.match("QList") %]list[% ELSE %]set[% END %];
+ [%- ELSIF !return.match("QList|QSet") && return.match('\*$') %]
+ return qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->${operationName}(
+ [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ [%- qtType = QT_TYPE(namespace, parameter, "true") -%]
+ [%- IF qtType.match('\*$') -%]
+qmodelingobjectproperty_cast<${qtType.remove("QList<").remove("QSet<").remove(">")}>(${parameter.findvalue("@name")})
+ [%- ELSE -%]
${parameter.findvalue("@name")}
-[%- END -%]
- [%- IF !loop.last %], [% END -%]
- [%- END -%]))
- r.[% IF return.match("QList") %]append[% ELSE %]insert[% END %](reinterpret_cast<${return.remove("QList<").remove("QSet<").remove(">").trim}>(element));
- return r;
+ [%- END -%]
+ [%- IF !loop.last %], [% END -%]
+ [%- END -%])->asQObject();
[%- ELSE %]
- return ${namespace}${className}::${operationName}(
- [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ return qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->${operationName}(
+ [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ [%- qtType = QT_TYPE(namespace, parameter, "true") -%]
+ [%- IF qtType.match('\*$') -%]
+qmodelingobjectproperty_cast<${qtType.remove("QList<").remove("QSet<").remove(">")}>(${parameter.findvalue("@name")})
+ [%- ELSE -%]
${parameter.findvalue("@name")}
- [%- IF !loop.last %], [% END -%]
- [%- END -%]);
+ [%- END -%]
+ [%- IF !loop.last %], [% END -%]
+ [%- END -%]);
[%- END %]
}
@@ -337,50 +332,48 @@ ${parameter.findvalue("@name")}
[%- SET found = "true" -%]
[% END -%]
- [%- SET readOnly = attribute.findvalue("@isReadOnly") %]
- [%- IF readOnly == "false" || readOnly == "" -%]
[%- SET attributeName = attribute.findvalue("@name").ucfirst -%]
[%- SET qtType = QT_TYPE(namespace, attribute, "false") -%]
+ [%- SET originalQtType = QT_TYPE(namespace, attribute, "true") -%]
[%- IF attribute.findnodes("upperValue").findvalue("@value") == "*" -%]
- [%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
-void Q${namespace}${originalClassName}::add${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*').remove('^Q') %]${qtAttribute})
- [%- ELSE %]
-void Q${namespace}${originalClassName}::add${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "")} ${qtAttribute})
- [%- END %]
+ [%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
+void Q${namespace}${originalClassName}Object::add${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*') %]${qtAttribute})
+ [%- ELSE %]
+void Q${namespace}${originalClassName}Object::add${attributeName}(${originalQtType.remove("QSet<").remove("QList<").replace(">", "")} ${qtAttribute})
+ [%- END %]
{
- ${namespace}${className}::add${attributeName}(${qtAttribute});
+ [%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
+ qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->add${attributeName}(qmodelingobjectproperty_cast<${originalQtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*')}>(${qtAttribute}));
+ [%- ELSE %]
+ qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->add${attributeName}(${qtAttribute});
+ [%- END %]
}
[%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
-void Q${namespace}${originalClassName}::remove${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*').remove('^Q') %]${qtAttribute})
+void Q${namespace}${originalClassName}Object::remove${attributeName}([% qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*') %]${qtAttribute})
[%- ELSE %]
-void Q${namespace}${originalClassName}::remove${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "")} ${qtAttribute})
+void Q${namespace}${originalClassName}Object::remove${attributeName}(${originalQtType.remove("QSet<").remove("QList<").replace(">", "")} ${qtAttribute})
[%- END %]
{
- ${namespace}${className}::remove${attributeName}(${qtAttribute});
-}
-
- [%- ELSE -%]
- [%- IF qtType.match('QList|QSet') %]
-void Q${namespace}${originalClassName}::set${attributeName.remove("^Is")}(${qtType.remove('^Q')}${qtAttribute})
-{
- ${namespace}${className}::set${attributeName.remove("^Is")}(${qtAttribute});
+ [%- IF qtType.remove("QSet<").remove("QList<").match('\*') %]
+ qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->remove${attributeName}(qmodelingobjectproperty_cast<${originalQtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*')}>(${qtAttribute}));
+ [%- ELSE %]
+ qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->remove${attributeName}(${qtAttribute});
+ [%- END %]
}
[%- ELSIF qtType.match('\*$') %]
-void Q${namespace}${originalClassName}::set${attributeName.remove("^Is")}(${qtType}${qtAttribute})
+void Q${namespace}${originalClassName}Object::set${attributeName}(${qtType}${qtAttribute})
{
- ${namespace}${className}::set${attributeName.remove("^Is")}(${qtAttribute});
+ qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->set${attributeName}(qmodelingobjectproperty_cast<${originalQtType}>(${qtAttribute}));
}
[%- ELSE %]
-void Q${namespace}${originalClassName}::set${attributeName.remove("^Is")}(${qtType}${qtAttribute})
+void Q${namespace}${originalClassName}Object::set${attributeName.remove("^Is")}(${qtType}${qtAttribute})
{
- ${namespace}${className}::set${attributeName.remove("^Is")}(${qtAttribute});
+ qmodelingobjectproperty_cast<Q${namespace}${originalClassName} *>(this)->set${attributeName.remove("^Is")}(${qtAttribute});
}
-[% END -%]
- [%- END -%]
- [%- END %]
+ [% END -%]
[%- IF loop.last %]
[% END -%]
[%- END %]
diff --git a/scripts/templates/module.pri b/scripts/templates/module.pri
index 88876e4b..12fe0903 100644
--- a/scripts/templates/module.pri
+++ b/scripts/templates/module.pri
@@ -9,14 +9,19 @@ HEADERS += \
PRIVATE_HEADERS +=
[%- FOREACH class = xmi.findnodes('//packagedElement[@xmi:type=\'uml:Class\']') -%]
+[%- IF class.findvalue("@isAbstract") != "true" -%]
\
- internal/${namespace.lower}${class.findvalue('@name').lower}_p.h
+ qobjects/q${namespace.lower}${class.findvalue('@name').lower}object_p.h
+[%- END -%]
[%- END %]
SOURCES += \
qt${namespace.lower}namespace.cpp
[%- FOREACH class = xmi.findnodes('//packagedElement[@xmi:type=\'uml:Class\']') -%]
+[%- IF class.findvalue("@isAbstract") != "true" -%]
+ \
+ qobjects/q${namespace.lower}${class.findvalue('@name').lower}object.cpp
+[%- END -%]
\
- internal/${namespace.lower}${class.findvalue('@name').lower}.cpp \
q${namespace.lower}${class.findvalue('@name').lower}.cpp
[%- END %]
diff --git a/scripts/templates/module.pro b/scripts/templates/module.pro
index eea9495e..4b39de97 100644
--- a/scripts/templates/module.pro
+++ b/scripts/templates/module.pro
@@ -8,3 +8,5 @@ QMAKE_DOCS = [%- GET '$$PWD' -%]/doc/qt${namespace.lower}.qdocconf
load(qt_module)
include(${namespace.lower}.pri)
+
+HEADERS += [%- GET '$$PUBLIC_HEADERS' -%] [% GET '$$PRIVATE_HEADERS' -%]
diff --git a/scripts/templates/qclass.cpp b/scripts/templates/qclass.cpp
index 183c9e1f..cce4513c 100644
--- a/scripts/templates/qclass.cpp
+++ b/scripts/templates/qclass.cpp
@@ -40,43 +40,354 @@
**
****************************************************************************/
#include "q${namespace.lower}${className.lower}.h"
+[%- IF class.findvalue("@isAbstract") != "true" %]
-[% SET useNamespace = 'false' -%]
+#include "private/q${namespace.lower}${className.lower}object_p.h"
+[%- END -%]
+
+[%- superclasses = [] -%]
+[%- SET generalization = class.findnodes("generalization") -%]
+[%- FOREACH superclass IN generalization -%]
+[%- superclasses.push("${namespace}${superclass.findvalue('@general')}") -%]
+[%- END -%]
[%- forwards = [] -%]
-[%- visitedClasses = [] -%]
-[%- GENERATE_FWD_DECLARATIONS(class, visitedClasses, forwards, useNamespace) -%]
-[%- FOREACH forward = forwards.unique.sort -%]
-#include <Qt${namespace}/${forward}>
-[% IF loop.last %]
-[% END -%]
+[%- FOREACH forward = class.findnodes("ownedAttribute[@type] | ownedOperation/ownedParameter[@type]") -%]
+[%- SET forwardName = forward.findvalue('@type') -%]
+[%- IF xmi.findnodes("//packagedElement[@xmi:type='uml:Enumeration' and @name='$forwardName']").findvalue("@name") == "" -%]
+[%- IF forwardName != className && superclasses.grep("^${namespace}${forwardName}\$").size == 0 -%][%- forwards.push("${namespace}${forwardName}") -%][%- END -%]
+[%- END -%]
[%- END -%]
-QT_BEGIN_NAMESPACE
+[%- FOREACH forward = forwards.unique.sort -%]
+[%- IF loop.first %]
+[% END %]
+#include <Qt${namespace}/Q$${forward}>
+[%- END %]
/*!
- \class ${namespace}${className}
+ \class Q${namespace}${className}
\inmodule Qt${namespace}
\brief ${class.findvalue("ownedComment/body/text()")}
*/
+Q${namespace}${className}::Q${namespace}${className}([%- IF class.findvalue("@isAbstract") != "true" %]bool createQObject[% END %])
+[%- SET found = "false" -%]
+[%- FOREACH superclass IN generalization -%]
+[%- SET superclassName = superclass.findvalue('@general') -%]
+[%- IF xmi.findvalue("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${superclassName}\"]/@isAbstract") != "true" -%]
+ [%- IF found == "false" %] :
+[% SET found = "true" -%]
+ [%- ELSE %],
+[% END -%]
+ Q${namespace}${superclassName}(false)
+[%- END -%]
+[%- END -%]
+[%- FOREACH attribute = class.findnodes("ownedAttribute[(@isDerived=\"false\" or not(@isDerived)) or (@isDerivedUnion and @isDerivedUnion=\"true\")]") -%]
+ [%- SET defaultType = attribute.findvalue("defaultValue/@xmi:type") -%]
+ [%- SET type = QT_TYPE(namespace, attribute) -%]
+ [%- IF defaultType == "uml:LiteralBoolean" || defaultType == "uml:InstanceValue" || defaultType == "uml:LiteralInteger" || defaultType == "uml:LiteralUnlimitedNatural" || type.match('\*$') -%]
+ [%- IF found == "false" %] :
+[% SET found = "true" -%]
+ [%- ELSE %],
+[% END -%]
+ [%- IF defaultType == "uml:LiteralBoolean" -%]
+ [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%]
+ [%- IF defaultValue != "" -%]
+ _[% QT_ATTRIBUTE(attribute) %](${defaultValue})
+ [%- ELSE -%]
+ _[% QT_ATTRIBUTE(attribute) %](false)
+ [%- END -%]
+ [%- ELSIF defaultType == "uml:InstanceValue" -%]
+ [%- SET defaultInstance = attribute.findvalue("defaultValue/@instance") -%]
+ _[% QT_ATTRIBUTE(attribute) %](Qt${namespace}::${defaultInstance.split("-").0}${defaultInstance.split("-").1.ucfirst})
+ [%- ELSIF defaultType == "uml:LiteralInteger" -%]
+ [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%]
+ [%- IF defaultValue != "" -%]
+ _[% QT_ATTRIBUTE(attribute) %](${defaultValue})
+ [%- ELSE -%]
+ _[% QT_ATTRIBUTE(attribute) %](0)
+ [%- END -%]
+ [%- ELSIF defaultType == "uml:LiteralUnlimitedNatural" -%]
+ [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%]
+ [%- IF defaultValue != "" -%]
+ _[% QT_ATTRIBUTE(attribute) %](${defaultValue})
+ [%- ELSE -%]
+ _[% QT_ATTRIBUTE(attribute) %](0)
+ [%- END -%]
+ [%- ELSIF type.match('\*$') -%]
+ _[% QT_ATTRIBUTE(attribute) %](0)
+ [%- END -%]
+ [%- END -%]
+[%- END %]
+{
+[%- IF class.findvalue("@isAbstract") != "true" %]
+ if (createQObject)
+ _qObject = new Q${namespace}${className}Object(this);
+[%- END %]
+}
+
+Q${namespace}${className}::~Q${namespace}${className}()
+{
+[%- IF class.findvalue("@isAbstract") != "true" %]
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
+[%- END %]
+}
+[%- FOREACH attribute = class.findnodes("ownedAttribute") %]
+[%- IF loop.first %]
+
+// OWNED ATTRIBUTES
+[%- END %]
+
+[%- SET qtAttribute = QT_ATTRIBUTE(attribute) -%]
+[%- SET qtType = QT_TYPE(namespace, attribute) -%]
+[%- SET readOnly = attribute.findvalue("@isReadOnly") -%]
+[%- SET derived = attribute.findvalue("@isDerived") -%]
+[%- SET derivedUnion = attribute.findvalue("@isDerivedUnion") -%]
+[%- SET association = attribute.findvalue("@association") -%]
+[%- SET documentation = attribute.findvalue("ownedComment/body/text()") -%]
+[%- IF documentation != "" %]
+/*!
+ ${documentation}
+ */
+[%- END %]
+[% IF qtType.match("QList|QSet") %]const [% END %]${qtType}
+Q${namespace}${className}::${qtAttribute}() const
+{
+ // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
+
+ [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
+ qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
+
+ [%- IF qtType.match('\*$') %]
+ return 0;
+ [%- ELSE %]
+ return ${qtType.trim}();
+ [%- END %]
+ [%- ELSE %]
+ return _${qtAttribute};
+ [%- END %]
+}
+ [%- SET attributeName = attribute.findvalue("@name").ucfirst %]
+ [%- IF attribute.findnodes("upperValue").findvalue("@value") == "*" %]
-Q${namespace}${className}::Q${namespace}${className}(QObject *parent) :
- QObject(parent)
+void Q${namespace}${className}::add${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*')}${qtAttribute})
{
+ // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
+
+ [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
+ qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
+ Q_UNUSED(${qtAttribute});
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ [%- ELSE %]
+ if (!_${qtAttribute}.contains(${qtAttribute})) {
+ _${qtAttribute}.[% IF qtType.match("QList") %]append[% ELSE %]insert[% END %](${qtAttribute});
+ [%- IF qtType.match('\*') %]
+ if (${qtAttribute}->asQObject() && this->asQObject())
+ QObject::connect(${qtAttribute}->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(remove${attributeName}(QObject *)));
+ [%- IF attribute.findvalue("@aggregation") == "composite" %]
+ ${qtAttribute}->asQObject()->setParent(this->asQObject());
+ [%- END -%]
+ [%- END %]
+ [%- END %]
+ [%- found = "false" -%]
+ [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
+ [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
+ [%- IF subsettedProperty.findvalue("@name") != "" -%]
+ [%- IF found == "false" %]
+
+ // Adjust subsetted properties
+ [%- found = "true" -%]
+ [%- END -%]
+ [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
+ add${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
+ [%- ELSE %]
+ set${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
+ [%- END -%]
+ [%- END %]
+ [%- END %]
+ [%- IF association != "" -%]
+ [%- found = "false" -%]
+ [%- FOREACH memberEnd = xmi.findvalue("//packagedElement[@xmi:type=\"uml:Association\" and @name=\"${association}\"]/@memberEnd").split(' ') -%]
+ [%- NEXT IF memberEnd.split('-').0 == className -%]
+ [%- SET oppositeProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${memberEnd.split('-').0}\"]/ownedAttribute[@name=\"${memberEnd.split('-').1}\"]") -%]
+ [%- IF oppositeProperty.findvalue("@name") != "" -%]
+ [%- IF found == "false" %]
+
+ // Adjust opposite properties
+ [%- found = "true" -%]
+ [%- END %]
+ if (${qtAttribute}) {
+ [%- IF oppositeProperty.findvalue("upperValue/@value") == "*" %]
+ ${qtAttribute}->add${memberEnd.split('-').1.ucfirst}(this);
+ [%- ELSE %]
+ ${qtAttribute}->set${memberEnd.split('-').1.ucfirst}(this);
+ [%- END %]
+ }
+ [%- END %]
+ [%- END %]
+ [%- END %]
+ }
+}
+
+void Q${namespace}${className}::remove${attributeName}(${qtType.remove("QSet<").remove("QList<").replace(">", "").replace('\* $', '*')}${qtAttribute})
+{
+ // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
+
+ [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
+ qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
+ Q_UNUSED(${qtAttribute});
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ [%- ELSE %]
+ if (_${qtAttribute}.contains(${qtAttribute})) {
+ _${qtAttribute}.[% IF qtType.match("QList") %]removeAll[% ELSE %]remove[% END %](${qtAttribute});
+ [%- IF attribute.findvalue("@aggregation") == "composite" %]
+ if (${qtAttribute}->asQObject())
+ ${qtAttribute}->asQObject()->setParent(0);
+ [%- END -%]
+ [%- END %]
+ [%- found = "false" -%]
+ [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
+ [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
+ [%- IF subsettedProperty.findvalue("@name") != "" -%]
+ [%- IF found == "false" %]
+
+ // Adjust subsetted properties
+ [%- found = "true" -%]
+ [%- END -%]
+ [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
+ remove${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
+ [%- ELSE %]
+ set${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
+ [%- END -%]
+ [%- END %]
+ [%- END %]
+ [%- IF association != "" -%]
+ [%- found = "false" -%]
+ [%- FOREACH memberEnd = xmi.findvalue("//packagedElement[@xmi:type=\"uml:Association\" and @name=\"${association}\"]/@memberEnd").split(' ') -%]
+ [%- NEXT IF memberEnd.split('-').0 == className -%]
+ [%- SET oppositeProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${memberEnd.split('-').0}\"]/ownedAttribute[@name=\"${memberEnd.split('-').1}\"]") -%]
+ [%- IF oppositeProperty.findvalue("@name") != "" -%]
+ [%- IF found == "false" %]
+
+ // Adjust opposite properties
+ [%- found = "true" -%]
+ [%- END %]
+ if (${qtAttribute}) {
+ [%- IF oppositeProperty.findvalue("upperValue/@value") == "*" %]
+ ${qtAttribute}->remove${memberEnd.split('-').1.ucfirst}(this);
+ [%- ELSE %]
+ ${qtAttribute}->set${memberEnd.split('-').1.ucfirst}(0);
+ [%- END %]
+ }
+ [%- END %]
+ [%- END %]
+ [%- END %]
+ }
+}
+ [%- ELSE %]
+
+void Q${namespace}${className}::set${attributeName.remove("^Is")}([% IF !qtType.match('\*$') %]${qtType.trim} [% ELSE %]${qtType}[% END %]${qtAttribute})
+{
+ // This is a [% IF readOnly == "" || readOnly == "false" %]read-write[% ELSE %]read-only[% END %][% IF derived == "true" %] derived[% END %][% IF derivedUnion == "true" %] union[% END %] [% IF association != "" %]association end[% ELSE %]property[% END %]
+
+ [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
+ qWarning("${namespace}${className}::${qtAttribute}(): to be implemented (this is a derived [% IF association != "" %]association end[% ELSE %]property[% END %])");
+ Q_UNUSED(${qtAttribute});
+
+ if (false /* <derivedexclusion-criteria> */) {
+ [%- ELSE %]
+ if (_${qtAttribute} != ${qtAttribute}) {
+ [%- END %]
+ [%- found = "false" -%]
+ [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
+ [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
+ [%- IF subsettedProperty.findvalue("@name") != "" -%]
+ [%- IF found == "false" %]
+ // Adjust subsetted properties
+ [%- found = "true" -%]
+ [%- END -%]
+ [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
+ [% IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]// [% END %]remove${subsettedPropertyName.split('-').1.ucfirst}([%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]/* <derived-code> */[% ELSE %]_${qtAttribute}[% END %]);
+ [%- END -%]
+ [%- END %]
+ [%- END %]
+[%- IF found == "true" %]
+[% END %]
+ [%- IF derived == "true" && (derivedUnion == "false" || derivedUnion == "") %]
+ // <derived-code>
+ [%- ELSE %]
+ _${qtAttribute} = ${qtAttribute};
+ [%- IF qtType.match('\*') %]
+ if (${qtAttribute}->asQObject() && this->asQObject())
+ QObject::connect(${qtAttribute}->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(set${attributeName}()));
+ [%- IF attribute.findvalue("@aggregation") == "composite" %]
+ ${qtAttribute}->asQObject()->setParent(this->asQObject());
+ [%- END -%]
+ [%- END %]
+ [%- END %]
+ [%- found = "false" -%]
+ [%- FOREACH subsettedPropertyName = attribute.findvalue("@subsettedProperty").split(" ") -%]
+ [%- SET subsettedProperty = xmi.findnodes("//packagedElement[@xmi:type=\"uml:Class\" and @name=\"${subsettedPropertyName.split('-').0}\"]/ownedAttribute[@name=\"${subsettedPropertyName.split('-').1}\"]") -%]
+ [%- IF subsettedProperty.findvalue("@name") != "" -%]
+ [%- IF found == "false" %]
+
+ // Adjust subsetted properties
+ [%- found = "true" -%]
+ [%- END -%]
+ [%- IF subsettedProperty.findvalue("upperValue/@value") == "*" %]
+ if (${qtAttribute}) {
+ add${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
+ }
+ [%- ELSE %]
+ set${subsettedPropertyName.split('-').1.ucfirst}(${qtAttribute});
+ [%- END -%]
+ [%- END %]
+ [%- END %]
+ }
}
+ [%- END %]
+[%- END %]
+[%- FOREACH operation = class.findnodes("ownedOperation[@name != ../ownedAttribute[@isDerived='true']/@name]") -%]
+[%- IF loop.first %]
+
+// OPERATIONS
+[%- END %]
+[%- SET operationName = operation.findvalue("@name") -%]
-[%- SET originalClassName = class.findvalue("@name") -%]
-[%- visitedClasses = [] -%]
-[%- redefinedProperties = [] -%]
-[%- POPULATE_REDEFINED_PROPERTIES(class, visitedClasses, redefinedProperties) -%]
-[%- visitedClasses = [] %]
-[% GENERATE_CPP_ATTRIBUTES(originalClassName, class, visitedClasses, redefinedProperties) -%]
-[%- visitedClasses = [] -%]
-[%- redefinedOperations = [] -%]
-[%- POPULATE_REDEFINED_OPERATIONS(class, visitedClasses, redefinedOperations) -%]
-[%- visitedClasses = [] %]
-[%- GENERATE_CPP_OPERATIONS(originalClassName, class, visitedClasses, redefinedOperations) -%]
-[%- visitedClasses = [] %]
-[%- GENERATE_CPP_SLOTS(originalClassName, class, visitedClasses, redefinedProperties) -%]
-QT_END_NAMESPACE
+[%- SET returnType = QT_TYPE(namespace, operation.findnodes("ownedParameter[@direction='return']")) %]
+
+[%- SET documentation = operation.findvalue("ownedComment/body/text()") -%]
+[%- IF documentation != "" %]
+/*!
+ ${documentation}
+ */
+[%- END %]
+${returnType}Q${namespace}${className}::${operationName}(
+ [%- SET parameters = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ [%- FOREACH parameter = parameters -%]
+ [%- QT_TYPE(namespace, parameter) -%]
+${parameter.findvalue("@name")}
+ [%- IF !loop.last %], [% END -%]
+ [%- END -%]
+)[% IF operation.findvalue("@isQuery") == "true" %] const[% END %]
+{
+ qWarning("${namespace}${className}::${operationName}(): to be implemented (operation)");
+
+ [%- FOREACH parameter = parameters %]
+ Q_UNUSED(${parameter.findvalue("@name")});
+ [%- END %]
+ [%- IF returnType.match('\*$') %]
+ return 0;
+ [%- ELSE %]
+ return ${returnType}();
+ [%- END %]
+}
+[%- END %]
diff --git a/scripts/templates/qclass.h b/scripts/templates/qclass.h
index b40f6ceb..4e736811 100644
--- a/scripts/templates/qclass.h
+++ b/scripts/templates/qclass.h
@@ -44,55 +44,105 @@
#include <Qt${namespace}/Qt${namespace}Global>
-#include <QtCore/QObject>
-#include "private/${namespace.lower}${className.lower}_p.h"
+[% superclasses = [] -%]
+[%- SET generalization = class.findnodes("generalization") -%]
+[%- FOREACH superclass IN generalization -%]
+[%- SET superclassName = superclass.findvalue("@general") -%]
+#include <Qt${namespace}/Q${namespace}${superclassName}>
+[% superclasses.push("${namespace}${superclassName}") -%]
+[%- IF loop.last %]
+[% END -%]
+[%- END -%]
+[%- IF superclasses.size == 0 -%]
+#include <QtModeling/QModelingObject>
-[%- useNamespace = [] -%]
+[% END -%]
+[%- SET useNamespace = 'false' -%]
[%- forwards = [] -%]
-[%- visitedClasses = [] -%]
-[%- GENERATE_FWD_DECLARATIONS(class, visitedClasses, forwards, useNamespace) -%]
-[%- IF useNamespace.size > 0 %]
+[%- FOREACH forward = class.findnodes("ownedAttribute[@type] | ownedOperation/ownedParameter[@type]") -%]
+[%- SET forwardName = forward.findvalue('@type') -%]
+[%- IF xmi.findnodes("//packagedElement[@xmi:type='uml:Enumeration' and @name='$forwardName']").findvalue("@name") != "" -%]
+ [%- SET useNamespace = 'true' -%]
+[%- ELSE -%]
+[%- IF forwardName != className && superclasses.grep("^${namespace}${forwardName}\$").size == 0 -%][%- forwards.push("${namespace}${forwardName}") -%][%- END -%]
+[%- END -%]
+[%- END -%]
+[%- IF useNamespace == 'true' %]
#include <Qt${namespace}/Qt${namespace}Namespace>
-[% END %]
+[% END -%]
+
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Qt${namespace})
-[% FOREACH forward = forwards.unique.sort %]
-class ${forward};
+
+[%- FOREACH forward = forwards.unique.sort %]
+class Q${forward};
[%- IF loop.last %]
[% END %]
[%- END -%]
-class Q_${namespace.upper}_EXPORT Q${namespace}${className} : public QObject, public ${namespace}${className}
+class Q_${namespace.upper}_EXPORT Q${namespace}${className} :
+[%- FOREACH superclass IN generalization -%]
+public Q${namespace}${superclass.findvalue("@general")}
+[%- IF !loop.last %], [% END -%]
+[%- END -%]
+[%- IF superclasses.size == 0 -%]
+public QModelingObject
+[%- END %]
{
- Q_OBJECT
- [%- visitedClasses = [] -%]
- [%- redefinedProperties = [] -%]
- [%- POPULATE_REDEFINED_PROPERTIES(class, visitedClasses, redefinedProperties) -%]
- [%- visitedClasses = [] -%]
- [%- GENERATE_QPROPERTIES(class, visitedClasses, redefinedProperties) %]
-
public:
- [% IF class.findvalue("@isAbstract") == "true" %]Q_DECL_HIDDEN [% ELSE %]Q_INVOKABLE [% END %]explicit Q${namespace}${className}(QObject *parent = 0);
-[%- visitedClasses = [] -%]
-[%- GENERATE_ATTRIBUTES(class, visitedClasses, redefinedProperties) -%]
-[%- visitedClasses = [] -%]
-[%- redefinedOperations = [] -%]
-[%- POPULATE_REDEFINED_OPERATIONS(class, visitedClasses, redefinedOperations) -%]
-[%- visitedClasses = [] -%]
-[%- GENERATE_OPERATIONS(class, visitedClasses, redefinedOperations) -%]
-[%- visitedClasses = [] %]
+[%- IF class.findvalue("@isAbstract") != "true" %]
+ explicit Q${namespace}${className}(bool createQObject = true);
+[%- END %]
+ virtual ~Q${namespace}${className}();
+[% FOREACH attribute = class.findnodes("ownedAttribute") -%]
+ [%- IF loop.first %]
+ // Owned attributes
+ [%- END -%]
+ [%- SET qtAttribute = QT_ATTRIBUTE(attribute) -%]
+ [%- SET readOnly = attribute.findvalue("@isReadOnly") -%]
+ [%- SET qtType = QT_TYPE(namespace, attribute) %]
+ [% IF qtType.match("QList|QSet") %]const [% END %]${qtType}${qtAttribute}() const;
+ [%- SET attributeName = attribute.findvalue("@name").ucfirst -%]
+ [%- IF attribute.findnodes("upperValue").findvalue("@value") == "*" %]
+ [% IF readOnly == "true" %]Q_DECL_HIDDEN [% END %]void add${attributeName}([% qtType.remove("QSet<").remove("QList<").replace("> ", " ").replace('\* $', '*') %]${qtAttribute});
+ [% IF readOnly == "true" %]Q_DECL_HIDDEN [% END %]void remove${attributeName}([% qtType.remove("QSet<").remove("QList<").replace("> ", " ").replace('\* $', '*') %]${qtAttribute});
+ [%- ELSE %]
+ [% IF readOnly == "true" %]Q_DECL_HIDDEN [% END %]void set${attributeName.remove("^Is")}(${qtType}${qtAttribute});
+ [%- END %]
+ [%- IF loop.last %]
+ [%- END %]
+[%- END -%]
+[%- FOREACH operation = class.findnodes("ownedOperation[@name != ../ownedAttribute[@isDerived='true']/@name]") -%]
+[%- IF loop.first %]
+
+ // Operations
+[%- END %]
+[% SET operationName = operation.findvalue("@name") -%]
+ [% QT_TYPE(namespace, operation.findnodes("ownedParameter[@direction='return']")) -%]
+${operationName}(
+ [%- FOREACH parameter = operation.findnodes("ownedParameter[@direction!='return']") -%]
+ [%- QT_TYPE(namespace, parameter) -%]
+${parameter.findvalue("@name")}
+ [%- IF !loop.last %], [% END -%]
+ [%- END -%]
+)[% IF operation.findvalue("@isQuery") == "true" %] const[% END %];
+[%- END %]
-public Q_SLOTS:[%- GENERATE_SLOTS(class, visitedClasses, redefinedProperties) %]
+protected:
+[%- IF class.findvalue("@isAbstract") == "true" %]
+ explicit Q${namespace}${className}();
+[% END -%]
+[%- FOREACH attribute = class.findnodes("ownedAttribute[(@isDerived=\"false\" or not(@isDerived)) or (@isDerivedUnion and @isDerivedUnion=\"true\")]") %]
+ [% QT_TYPE(namespace, attribute) -%]_[%- QT_ATTRIBUTE(attribute) %];
+[%- END %]
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(Q${namespace}${className} *)
-Q_DECLARE_METATYPE(QList<Q${namespace}${className} *> *)
-Q_DECLARE_METATYPE(QSet<Q${namespace}${className} *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(Q${namespace}${className}) *)
QT_END_HEADER
diff --git a/scripts/templates/qobjectclass.cpp b/scripts/templates/qobjectclass.cpp
new file mode 100644
index 00000000..a18284c6
--- /dev/null
+++ b/scripts/templates/qobjectclass.cpp
@@ -0,0 +1,85 @@
+[%- PROCESS common.tmpl -%]
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt${namespace} module of the Qt Toolkit.
+**
+** \$QT_BEGIN_LICENSE:LGPL\$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** \$QT_END_LICENSE\$
+**
+****************************************************************************/
+#include "q${namespace.lower}${className.lower}object_p.h"
+
+#include <Qt${namespace}/Q${namespace}${className}>
+[% SET useNamespace = 'false' -%]
+[%- forwards = [] -%]
+[%- visitedClasses = [] -%]
+[%- GENERATE_FWD_DECLARATIONS(class, visitedClasses, forwards, useNamespace) -%]
+[%- FOREACH forward = forwards.unique.sort -%]
+#include <Qt${namespace}/${forward}>
+[% IF loop.last %]
+[% END -%]
+[%- END -%]
+QT_BEGIN_NAMESPACE
+
+Q${namespace}${className}Object::Q${namespace}${className}Object(Q${namespace}${className} *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+[%- IF class.findvalue("@isAbstract") != "true" %]
+Q${namespace}${className}Object::~Q${namespace}${className}Object()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<Q${namespace}${className} *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+[%- END %]
+[%- SET originalClassName = class.findvalue("@name") -%]
+[%- visitedClasses = [] -%]
+[%- redefinedProperties = [] -%]
+[%- POPULATE_REDEFINED_PROPERTIES(class, visitedClasses, redefinedProperties) -%]
+[%- visitedClasses = [] %]
+[% GENERATE_CPP_ATTRIBUTES(originalClassName, class, visitedClasses, redefinedProperties) -%]
+[%- visitedClasses = [] -%]
+[%- redefinedOperations = [] -%]
+[%- POPULATE_REDEFINED_OPERATIONS(class, visitedClasses, redefinedOperations) -%]
+[%- visitedClasses = [] %]
+[%- GENERATE_CPP_OPERATIONS(originalClassName, class, visitedClasses, redefinedOperations) -%]
+[%- visitedClasses = [] %]
+[%- GENERATE_CPP_SLOTS(originalClassName, class, visitedClasses, redefinedProperties) -%]
+QT_END_NAMESPACE
+
diff --git a/scripts/templates/qobjectclass_p.h b/scripts/templates/qobjectclass_p.h
new file mode 100644
index 00000000..e41ac90f
--- /dev/null
+++ b/scripts/templates/qobjectclass_p.h
@@ -0,0 +1,94 @@
+[%- PROCESS common.tmpl -%]
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt${namespace} module of the Qt Toolkit.
+**
+** \$QT_BEGIN_LICENSE:LGPL\$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** \$QT_END_LICENSE\$
+**
+****************************************************************************/
+#ifndef Q${namespace.upper}${className.upper}OBJECT_H
+#define Q${namespace.upper}${className.upper}OBJECT_H
+
+#include <Qt${namespace}/Qt${namespace}Global>
+
+#include <QtCore/QObject>
+[% useNamespace = [] -%]
+[%- forwards = [] -%]
+[%- visitedClasses = [] -%]
+[%- GENERATE_FWD_DECLARATIONS(class, visitedClasses, forwards, useNamespace) -%]
+[%- IF useNamespace.size > 0 %]
+#include <Qt${namespace}/Qt${namespace}Namespace>
+[% END -%]
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Qt${namespace})
+
+class Q${namespace}${className};
+class Q_${namespace.upper}_EXPORT Q${namespace}${className}Object : public QObject
+{
+ Q_OBJECT
+ [%- visitedClasses = [] -%]
+ [%- redefinedProperties = [] -%]
+ [%- POPULATE_REDEFINED_PROPERTIES(class, visitedClasses, redefinedProperties) -%]
+ [%- visitedClasses = [] -%]
+ [%- GENERATE_QPROPERTIES(class, visitedClasses, redefinedProperties) %]
+
+public:
+ [% IF class.findvalue("@isAbstract") == "true" %]Q_DECL_HIDDEN [% ELSE %]Q_INVOKABLE [% END %]explicit Q${namespace}${className}Object(Q${namespace}${className} *qModelingObject);
+ [%- IF class.findvalue("@isAbstract") != "true" %]
+ virtual ~Q${namespace}${className}Object();
+ [%- END %]
+[%- visitedClasses = [] -%]
+[%- GENERATE_ATTRIBUTES(class, visitedClasses, redefinedProperties) -%]
+[%- visitedClasses = [] -%]
+[%- redefinedOperations = [] -%]
+[%- POPULATE_REDEFINED_OPERATIONS(class, visitedClasses, redefinedOperations) -%]
+[%- visitedClasses = [] -%]
+[%- GENERATE_OPERATIONS(class, visitedClasses, redefinedOperations) -%]
+[%- visitedClasses = [] %]
+
+public Q_SLOTS:[%- GENERATE_SLOTS(class, visitedClasses, redefinedProperties) %]
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // Q${namespace.upper}${className.upper}OBJECT_H
+
diff --git a/scripts/xmi2qt.pl b/scripts/xmi2qt.pl
index 921e0d1b..3be79c35 100755
--- a/scripts/xmi2qt.pl
+++ b/scripts/xmi2qt.pl
@@ -56,7 +56,7 @@ my $tt = Template->new(INTERPOLATE => 1, INCLUDE_PATH => 'templates/');
my $xmi = XML::XPath->new(filename => $options{i});
my $namespace = $xmi->findvalue('//uml:Package/@name');
-make_path($options{o}."/".$namespace."/"."internal");
+make_path($options{o}."/".$namespace."/"."qobjects");
{
local *STDOUT;
diff --git a/src/modeling/modeling.pro b/src/modeling/modeling.pro
index 9bde0899..b10c9aa1 100644
--- a/src/modeling/modeling.pro
+++ b/src/modeling/modeling.pro
@@ -7,19 +7,6 @@ QMAKE_DOCS = $$PWD/doc/qtmodeling.qdocconf
load(qt_module)
-PUBLIC_HEADERS += \
+HEADERS += \
qtmodelingglobal.h \
- qwrappedobject.h \
- qguardedlist.h \
- qguardedset.h \
- qsignaledpointer.h \
qmodelingobject.h
-
-PRIVATE_HEADERS += \
- qmodelingobject_p.h
-
-SOURCES += \
- qwrappedobject.cpp \
- qmodelingobject.cpp
-
-HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
diff --git a/src/modeling/qguardedlist.h b/src/modeling/qguardedlist.h
deleted file mode 100644
index fc6ba563..00000000
--- a/src/modeling/qguardedlist.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtModeling module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QGUARDEDLIST_H
-#define QGUARDEDLIST_H
-
-#include <QtModeling/QtModelingGlobal>
-
-#include <QtModeling/QWrappedObject>
-
-#include <QtCore/QObject>
-#include "private/qobject_p.h"
-
-#include <QtCore/QList>
-
-// QGuardedList does not work with foreach constructor because it requires the container
-// type be copiable. Since QGuardedList inherits from QObject that isn't possible
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(QtModeling)
-
-class Q_MODELING_EXPORT QAbstractGuardedListPrivate : public QObjectPrivate
-{
-public:
- QList<QWrappedObject *> list;
-};
-
-class Q_MODELING_EXPORT QAbstractGuardedList : public QObject
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QAbstractGuardedList)
-
-public:
- Q_INVOKABLE virtual inline QWrappedObject *at(int index) const { Q_D(const QAbstractGuardedList); return d->list.at(index); }
- Q_INVOKABLE virtual inline bool contains(QWrappedObject *wobject) const { Q_D(const QAbstractGuardedList); return d->list.contains(wobject); }
- Q_INVOKABLE inline int size() const { Q_D(const QAbstractGuardedList); return d->list.size(); }
-
-public Q_SLOTS:
- virtual inline void insert(QWrappedObject *wobject)
- {
- Q_D(QAbstractGuardedList);
- if (!d->list.contains(wobject)) {
- d->list.append(wobject);
- connect(wobject, SIGNAL(destroyed(QObject*)), this, SLOT(remove(QWrappedObject*)));
- emit objectInserted(wobject);
- }
- }
-
- virtual inline int remove(QObject *object)
- {
- Q_D(QAbstractGuardedList);
- disconnect(object, SIGNAL(destroyed(QObject*)), this, SLOT(remove(QObject*)));
- QWrappedObject *wobject = qobject_cast<QWrappedObject *>(object);
- int r = d->list.removeAll(wobject);
- if (r > 0)
- emit objectRemoved(wobject);
- return r;
- }
-
-Q_SIGNALS:
- void objectRemoved(QWrappedObject *wobject);
- void objectInserted(QWrappedObject *wobject);
-
-protected:
- QAbstractGuardedList(QObject *parent = 0) : QObject(*new QAbstractGuardedListPrivate, parent) { }
-
- template <class T>
- inline const QList<T *> *toQList() const { Q_D(const QAbstractGuardedList); return reinterpret_cast<const QList<T *> *>(&d->list); }
-
- template <class T>
- inline QList<T *> *toQList() { Q_D(QAbstractGuardedList); return reinterpret_cast<QList<T *> *>(&d->list); }
-};
-
-template <typename T>
-class Q_MODELING_EXPORT QGuardedList : public QAbstractGuardedList
-{
-public:
- typedef typename QList<T *>::const_iterator const_iterator;
-
- QGuardedList(QObject *parent = 0) : QAbstractGuardedList(parent) { }
- inline const_iterator cbegin() const { return toQList<T>()->cbegin(); }
- inline const_iterator cend() const { return toQList<T>()->cend(); }
- inline T *at(int index) const { return qobject_cast<T *>(QAbstractGuardedList::at(index)); }
- inline bool contains(T *wobject) const { return QAbstractGuardedList::contains(wobject); }
- inline void insert(T *wobject) { QAbstractGuardedList::insert(wobject); }
- inline int remove(T *wobject) { return QAbstractGuardedList::remove(wobject); }
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QGUARDEDLIST_H
diff --git a/src/modeling/qguardedset.h b/src/modeling/qguardedset.h
deleted file mode 100644
index 7f0e0bdc..00000000
--- a/src/modeling/qguardedset.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtModeling module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QGUARDEDSET_H
-#define QGUARDEDSET_H
-
-#include <QtModeling/QtModelingGlobal>
-
-#include <QtModeling/QWrappedObject>
-
-#include <QtCore/QObject>
-#include "private/qobject_p.h"
-
-#include <QtCore/QSet>
-
-// QGuardedSet does not work with foreach constructor because it requires the container
-// type be copiable. Since QGuardedList inherits from QObject that isn't possible
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(QtModeling)
-
-class Q_MODELING_EXPORT QAbstractGuardedSetPrivate : public QObjectPrivate
-{
-public:
- QSet<QWrappedObject *> set;
-};
-
-class Q_MODELING_EXPORT QAbstractGuardedSet : public QObject
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QAbstractGuardedSet)
-
-public:
- Q_INVOKABLE virtual inline bool contains(QWrappedObject *wobject) const { Q_D(const QAbstractGuardedSet); return d->set.contains(wobject); }
- Q_INVOKABLE inline int size() const { Q_D(const QAbstractGuardedSet); return d->set.size(); }
-
-public Q_SLOTS:
- virtual inline void insert(QWrappedObject *wobject)
- {
- Q_D(QAbstractGuardedSet);
- if (!d->set.contains(wobject)) {
- d->set.insert(wobject);
- connect(wobject, SIGNAL(destroyed(QObject*)), this, SLOT(remove(QObject*)));
- emit objectInserted(wobject);
- }
- }
-
- virtual inline int remove(QObject *object)
- {
- Q_D(QAbstractGuardedSet);
- disconnect(object, SIGNAL(destroyed(QObject*)), this, SLOT(remove(QObject*)));
- QWrappedObject *wobject = qobject_cast<QWrappedObject *>(object);
- int r = d->set.remove(wobject);
- if (r > 0)
- emit objectRemoved(wobject);
- return r;
- }
-
-Q_SIGNALS:
- void objectRemoved(QWrappedObject *wobject);
- void objectInserted(QWrappedObject *wobject);
-
-protected:
- QAbstractGuardedSet(QObject *parent = 0) : QObject(*new QAbstractGuardedSetPrivate, parent) { }
-
- template <class T>
- inline const QSet<T *> *toQSet() const { Q_D(const QAbstractGuardedSet); return reinterpret_cast<const QSet<T *> *>(&d->set); }
-
- template <class T>
- inline QSet<T *> *toQSet() { Q_D(QAbstractGuardedSet); return reinterpret_cast<QSet<T *> *>(&d->set); }
-};
-
-template <typename T>
-class Q_MODELING_EXPORT QGuardedSet : public QAbstractGuardedSet
-{
-public:
- typedef typename QSet<T *>::const_iterator const_iterator;
-
- QGuardedSet(QObject *parent = 0) : QAbstractGuardedSet(parent) {}
- inline const_iterator cbegin() const { return toQSet<T>()->cbegin(); }
- inline const_iterator cend() const { return toQSet<T>()->cend(); }
- inline bool contains(T *wobject) const { return QAbstractGuardedSet::contains(wobject); }
- virtual inline void insert(T *wobject) { QAbstractGuardedSet::insert(wobject); }
- virtual inline int remove(T *wobject) { return QAbstractGuardedSet::remove(wobject); }
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QGUARDEDSET_H
diff --git a/src/modeling/qmodelingobject.cpp b/src/modeling/qmodelingobject.cpp
deleted file mode 100644
index fcfec954..00000000
--- a/src/modeling/qmodelingobject.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtModeling module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "qmodelingobject.h"
-#include "qmodelingobject_p.h"
-
-QModelingObjectPrivate::~QModelingObjectPrivate()
-{
-}
-
-QModelingObject::QModelingObject() :
- d_ptr(new QModelingObjectPrivate)
-{
-}
-
-QModelingObject::~QModelingObject()
-{
- delete d_ptr;
-}
-
-QObject *QModelingObject::asQObject() const
-{
- return &d_ptr->object;
-}
-
-QModelingObject::QModelingObject(QModelingObjectPrivate *dd) :
- d_ptr(dd)
-{
-}
diff --git a/src/modeling/qmodelingobject.h b/src/modeling/qmodelingobject.h
index fca7d302..fba397e1 100644
--- a/src/modeling/qmodelingobject.h
+++ b/src/modeling/qmodelingobject.h
@@ -38,12 +38,16 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef QMODELINGOBJECT_H
-#define QMODELINGOBJECT_H
+#ifndef QMODELINGBASE_H
+#define QMODELINGBASE_H
#include <QtModeling/QtModelingGlobal>
-#include <QtCore/QVariant>
+#include <QtCore/QSet>
+#include <QtCore/QList>
+#include <QtCore/QString>
+#include <QtCore/QPointer>
+#include <QtCore/QMetaType>
QT_BEGIN_HEADER
@@ -51,27 +55,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtModeling)
-#define QM_D(Class) Class##Private *d = dynamic_cast<Class##Private *>(d_ptr);
-#define QM_Q(Class) Class *q = dynamic_cast<Class *>(q_ptr);
-
class QObject;
-class QModelingObjectPrivate;
class Q_MODELING_EXPORT QModelingObject
{
public:
- QModelingObject();
- virtual ~QModelingObject();
-
- QObject *asQObject() const;
+ virtual ~QModelingObject() {}
+ inline QObject *asQObject() { return _qObject; }
+ bool deletingFromQObject;
protected:
- QModelingObject(QModelingObjectPrivate *dd);
- QModelingObjectPrivate *d_ptr;
+ QModelingObject() : deletingFromQObject(false), _qObject(0) {}
+ QPointer<QObject> _qObject;
};
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QModelingObject) *)
+
QT_END_HEADER
-#endif // QMODELINGOBJECT_H
+#endif // QMODELINGBASE_H
diff --git a/src/modeling/qsignaledpointer.h b/src/modeling/qsignaledpointer.h
deleted file mode 100644
index 2c193b9d..00000000
--- a/src/modeling/qsignaledpointer.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtModeling module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QSIGNALEDPOINTER_H
-#define QSIGNALEDPOINTER_H
-
-#include <QtModeling/QtModelingGlobal>
-
-#include <QtCore/QObject>
-#include "private/qobject_p.h"
-
-#include <QtModeling/QWrappedObject>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(QtModeling)
-
-class Q_MODELING_EXPORT QAbstractSignaledPointerPrivate : public QObjectPrivate
-{
-public:
- QPointer<QWrappedObject> pointer;
-};
-
-class Q_MODELING_EXPORT QAbstractSignaledPointer : public QObject
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QAbstractSignaledPointer)
-
-public:
- QWrappedObject *data() const { Q_D(const QAbstractSignaledPointer); return d->pointer.data(); }
-
-public Q_SLOTS:
- void set(QWrappedObject *p) {
- Q_D(QAbstractSignaledPointer);
- if (d->pointer != p) {
- if (d->pointer)
- emit pointerAboutToChange(d->pointer);
- d->pointer = p;
- emit pointerChanged(p);
- }
- }
-
-Q_SIGNALS:
- void pointerAboutToChange(QWrappedObject *oldWobject);
- void pointerChanged(QWrappedObject *newWobject);
-
-protected:
- QAbstractSignaledPointer(QObject *parent = 0) : QObject(*new QAbstractSignaledPointerPrivate, parent) { }
-};
-
-template <class T>
-class Q_MODELING_EXPORT QSignaledPointer : public QAbstractSignaledPointer
-{
-public:
-
- QSignaledPointer(QObject *parent = 0) : QAbstractSignaledPointer(parent) { }
- T *data() const { return qobject_cast<T *>(QAbstractSignaledPointer::data()); }
- void set(T *p) { QAbstractSignaledPointer::set(p); }
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QSIGNALEDPOINTER_H
diff --git a/src/modeling/qtmodelingglobal.h b/src/modeling/qtmodelingglobal.h
index c2407323..c1f40d20 100644
--- a/src/modeling/qtmodelingglobal.h
+++ b/src/modeling/qtmodelingglobal.h
@@ -42,6 +42,7 @@
#define QTMODELINGGLOBAL_H
#include <QtCore/QtGlobal>
+#include <QtCore/QVariant>
QT_BEGIN_NAMESPACE
@@ -57,5 +58,13 @@ QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
+class QModelingObject;
+
+template<class T>
+T qmodelingobjectproperty_cast(const QObject *object)
+{
+ return object->property("modelingObject").value<T>();
+}
+
#endif // QTMODELINGGLOBAL_H
diff --git a/src/src.pro b/src/src.pro
index bff30b56..1ae13047 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -2,7 +2,7 @@ TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS = modeling wrappedobjects
-qtHaveModule(widgets): SUBDIRS += wrappedobjectswidgets
+#qtHaveModule(widgets): SUBDIRS += wrappedobjectswidgets
#qtHaveModule(qml): SUBDIRS += mof uml duse saduseprofile plugins
qtHaveModule(qml): SUBDIRS += mof uml duse saduseprofile
-qtHaveModule(quick): SUBDIRS += imports
+#qtHaveModule(quick): SUBDIRS += imports
diff --git a/src/uml/internal/umlabstraction.cpp b/src/uml/internal/umlabstraction.cpp
deleted file mode 100644
index d39ee282..00000000
--- a/src/uml/internal/umlabstraction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlabstraction_p.h"
-
-#include "private/umlopaqueexpression_p.h"
-
-UmlAbstraction::UmlAbstraction() :
- _mapping(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOpaqueExpression *UmlAbstraction::mapping() const
-{
- // This is a read-write association end
-
- return _mapping;
-}
-
-void UmlAbstraction::setMapping(UmlOpaqueExpression *mapping)
-{
- // This is a read-write association end
-
- if (_mapping != mapping) {
- // Adjust subsetted properties
- removeOwnedElement(_mapping);
-
- _mapping = mapping;
-
- // Adjust subsetted properties
- if (mapping) {
- addOwnedElement(mapping);
- }
- }
-}
-
diff --git a/src/uml/internal/umlabstraction_p.h b/src/uml/internal/umlabstraction_p.h
deleted file mode 100644
index 4eb9f5f9..00000000
--- a/src/uml/internal/umlabstraction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLABSTRACTION_H
-#define UMLABSTRACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldependency_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOpaqueExpression;
-
-class Q_UML_EXPORT UmlAbstraction : public UmlDependency
-{
-public:
- Q_DECL_HIDDEN explicit UmlAbstraction();
-
- // Owned attributes
- UmlOpaqueExpression *mapping() const;
- void setMapping(UmlOpaqueExpression *mapping);
-
-protected:
- UmlOpaqueExpression *_mapping;
-};
-
-#endif // UMLABSTRACTION_H
-
diff --git a/src/uml/internal/umlacceptcallaction.cpp b/src/uml/internal/umlacceptcallaction.cpp
deleted file mode 100644
index a820b9cb..00000000
--- a/src/uml/internal/umlacceptcallaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlacceptcallaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlAcceptCallAction::UmlAcceptCallAction() :
- _returnInformation(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlAcceptCallAction::returnInformation() const
-{
- // This is a read-write association end
-
- return _returnInformation;
-}
-
-void UmlAcceptCallAction::setReturnInformation(UmlOutputPin *returnInformation)
-{
- // This is a read-write association end
-
- if (_returnInformation != returnInformation) {
- // Adjust subsetted properties
- removeOutput(_returnInformation);
-
- _returnInformation = returnInformation;
-
- // Adjust subsetted properties
- if (returnInformation) {
- addOutput(returnInformation);
- }
- }
-}
-
diff --git a/src/uml/internal/umlacceptcallaction_p.h b/src/uml/internal/umlacceptcallaction_p.h
deleted file mode 100644
index fd20f30f..00000000
--- a/src/uml/internal/umlacceptcallaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACCEPTCALLACTION_H
-#define UMLACCEPTCALLACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaccepteventaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlAcceptCallAction : public UmlAcceptEventAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlAcceptCallAction();
-
- // Owned attributes
- UmlOutputPin *returnInformation() const;
- void setReturnInformation(UmlOutputPin *returnInformation);
-
-protected:
- UmlOutputPin *_returnInformation;
-};
-
-#endif // UMLACCEPTCALLACTION_H
-
diff --git a/src/uml/internal/umlaccepteventaction.cpp b/src/uml/internal/umlaccepteventaction.cpp
deleted file mode 100644
index 34d55ee2..00000000
--- a/src/uml/internal/umlaccepteventaction.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlaccepteventaction_p.h"
-
-#include "private/umloutputpin_p.h"
-#include "private/umltrigger_p.h"
-
-UmlAcceptEventAction::UmlAcceptEventAction() :
- _isUnmarshall(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlAcceptEventAction::isUnmarshall() const
-{
- // This is a read-write property
-
- return _isUnmarshall;
-}
-
-void UmlAcceptEventAction::setUnmarshall(bool isUnmarshall)
-{
- // This is a read-write property
-
- if (_isUnmarshall != isUnmarshall) {
- _isUnmarshall = isUnmarshall;
- }
-}
-
-const QSet<UmlOutputPin *> UmlAcceptEventAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlAcceptEventAction::addResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (!_result.contains(result)) {
- _result.insert(result);
-
- // Adjust subsetted properties
- addOutput(result);
- }
-}
-
-void UmlAcceptEventAction::removeResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result.contains(result)) {
- _result.remove(result);
-
- // Adjust subsetted properties
- removeOutput(result);
- }
-}
-
-const QSet<UmlTrigger *> UmlAcceptEventAction::trigger() const
-{
- // This is a read-write association end
-
- return _trigger;
-}
-
-void UmlAcceptEventAction::addTrigger(UmlTrigger *trigger)
-{
- // This is a read-write association end
-
- if (!_trigger.contains(trigger)) {
- _trigger.insert(trigger);
-
- // Adjust subsetted properties
- addOwnedElement(trigger);
- }
-}
-
-void UmlAcceptEventAction::removeTrigger(UmlTrigger *trigger)
-{
- // This is a read-write association end
-
- if (_trigger.contains(trigger)) {
- _trigger.remove(trigger);
-
- // Adjust subsetted properties
- removeOwnedElement(trigger);
- }
-}
-
diff --git a/src/uml/internal/umlaccepteventaction_p.h b/src/uml/internal/umlaccepteventaction_p.h
deleted file mode 100644
index c1126c5e..00000000
--- a/src/uml/internal/umlaccepteventaction_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACCEPTEVENTACTION_H
-#define UMLACCEPTEVENTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-class UmlTrigger;
-
-class Q_UML_EXPORT UmlAcceptEventAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlAcceptEventAction();
-
- // Owned attributes
- bool isUnmarshall() const;
- void setUnmarshall(bool isUnmarshall);
- const QSet<UmlOutputPin *> result() const;
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
- const QSet<UmlTrigger *> trigger() const;
- void addTrigger(UmlTrigger *trigger);
- void removeTrigger(UmlTrigger *trigger);
-
-protected:
- bool _isUnmarshall;
- QSet<UmlOutputPin *> _result;
- QSet<UmlTrigger *> _trigger;
-};
-
-#endif // UMLACCEPTEVENTACTION_H
-
diff --git a/src/uml/internal/umlaction.cpp b/src/uml/internal/umlaction.cpp
deleted file mode 100644
index 228e5123..00000000
--- a/src/uml/internal/umlaction.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlaction_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlconstraint_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlAction::UmlAction() :
- _isLocallyReentrant(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlAction::context() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlAction::context(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlAction::setContext(UmlClassifier *context)
-{
- // This is a read-only derived association end
-
- qWarning("UmlAction::context(): to be implemented (this is a derived association end)");
- Q_UNUSED(context);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QList<UmlInputPin *> UmlAction::input() const
-{
- // This is a read-only derived union association end
-
- return _input;
-}
-
-void UmlAction::addInput(UmlInputPin *input)
-{
- // This is a read-only derived union association end
-
- if (!_input.contains(input)) {
- _input.append(input);
-
- // Adjust subsetted properties
- addOwnedElement(input);
- }
-}
-
-void UmlAction::removeInput(UmlInputPin *input)
-{
- // This is a read-only derived union association end
-
- if (_input.contains(input)) {
- _input.removeAll(input);
-
- // Adjust subsetted properties
- removeOwnedElement(input);
- }
-}
-
-bool UmlAction::isLocallyReentrant() const
-{
- // This is a read-write property
-
- return _isLocallyReentrant;
-}
-
-void UmlAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- // This is a read-write property
-
- if (_isLocallyReentrant != isLocallyReentrant) {
- _isLocallyReentrant = isLocallyReentrant;
- }
-}
-
-const QSet<UmlConstraint *> UmlAction::localPostcondition() const
-{
- // This is a read-write association end
-
- return _localPostcondition;
-}
-
-void UmlAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- // This is a read-write association end
-
- if (!_localPostcondition.contains(localPostcondition)) {
- _localPostcondition.insert(localPostcondition);
-
- // Adjust subsetted properties
- addOwnedElement(localPostcondition);
- }
-}
-
-void UmlAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- // This is a read-write association end
-
- if (_localPostcondition.contains(localPostcondition)) {
- _localPostcondition.remove(localPostcondition);
-
- // Adjust subsetted properties
- removeOwnedElement(localPostcondition);
- }
-}
-
-const QSet<UmlConstraint *> UmlAction::localPrecondition() const
-{
- // This is a read-write association end
-
- return _localPrecondition;
-}
-
-void UmlAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- // This is a read-write association end
-
- if (!_localPrecondition.contains(localPrecondition)) {
- _localPrecondition.insert(localPrecondition);
-
- // Adjust subsetted properties
- addOwnedElement(localPrecondition);
- }
-}
-
-void UmlAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- // This is a read-write association end
-
- if (_localPrecondition.contains(localPrecondition)) {
- _localPrecondition.remove(localPrecondition);
-
- // Adjust subsetted properties
- removeOwnedElement(localPrecondition);
- }
-}
-
-const QList<UmlOutputPin *> UmlAction::output() const
-{
- // This is a read-only derived union association end
-
- return _output;
-}
-
-void UmlAction::addOutput(UmlOutputPin *output)
-{
- // This is a read-only derived union association end
-
- if (!_output.contains(output)) {
- _output.append(output);
-
- // Adjust subsetted properties
- addOwnedElement(output);
- }
-}
-
-void UmlAction::removeOutput(UmlOutputPin *output)
-{
- // This is a read-only derived union association end
-
- if (_output.contains(output)) {
- _output.removeAll(output);
-
- // Adjust subsetted properties
- removeOwnedElement(output);
- }
-}
-
diff --git a/src/uml/internal/umlaction_p.h b/src/uml/internal/umlaction_p.h
deleted file mode 100644
index 46fefb98..00000000
--- a/src/uml/internal/umlaction_p.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTION_H
-#define UMLACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlexecutablenode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlConstraint;
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlAction : public UmlExecutableNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlAction();
-
- // Owned attributes
- UmlClassifier *context() const;
- Q_DECL_HIDDEN void setContext(UmlClassifier *context);
- const QList<UmlInputPin *> input() const;
- Q_DECL_HIDDEN void addInput(UmlInputPin *input);
- Q_DECL_HIDDEN void removeInput(UmlInputPin *input);
- bool isLocallyReentrant() const;
- void setLocallyReentrant(bool isLocallyReentrant);
- const QSet<UmlConstraint *> localPostcondition() const;
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- const QSet<UmlConstraint *> localPrecondition() const;
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
- const QList<UmlOutputPin *> output() const;
- Q_DECL_HIDDEN void addOutput(UmlOutputPin *output);
- Q_DECL_HIDDEN void removeOutput(UmlOutputPin *output);
-
-protected:
- QList<UmlInputPin *> _input;
- bool _isLocallyReentrant;
- QSet<UmlConstraint *> _localPostcondition;
- QSet<UmlConstraint *> _localPrecondition;
- QList<UmlOutputPin *> _output;
-};
-
-#endif // UMLACTION_H
-
diff --git a/src/uml/internal/umlactionexecutionspecification.cpp b/src/uml/internal/umlactionexecutionspecification.cpp
deleted file mode 100644
index 375fabf6..00000000
--- a/src/uml/internal/umlactionexecutionspecification.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactionexecutionspecification_p.h"
-
-#include "private/umlaction_p.h"
-
-UmlActionExecutionSpecification::UmlActionExecutionSpecification() :
- _action(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlAction *UmlActionExecutionSpecification::action() const
-{
- // This is a read-write association end
-
- return _action;
-}
-
-void UmlActionExecutionSpecification::setAction(UmlAction *action)
-{
- // This is a read-write association end
-
- if (_action != action) {
- _action = action;
- }
-}
-
diff --git a/src/uml/internal/umlactionexecutionspecification_p.h b/src/uml/internal/umlactionexecutionspecification_p.h
deleted file mode 100644
index 4716a101..00000000
--- a/src/uml/internal/umlactionexecutionspecification_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIONEXECUTIONSPECIFICATION_H
-#define UMLACTIONEXECUTIONSPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlexecutionspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlAction;
-
-class Q_UML_EXPORT UmlActionExecutionSpecification : public UmlExecutionSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlActionExecutionSpecification();
-
- // Owned attributes
- UmlAction *action() const;
- void setAction(UmlAction *action);
-
-protected:
- UmlAction *_action;
-};
-
-#endif // UMLACTIONEXECUTIONSPECIFICATION_H
-
diff --git a/src/uml/internal/umlactioninputpin.cpp b/src/uml/internal/umlactioninputpin.cpp
deleted file mode 100644
index 552d098a..00000000
--- a/src/uml/internal/umlactioninputpin.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactioninputpin_p.h"
-
-#include "private/umlaction_p.h"
-
-UmlActionInputPin::UmlActionInputPin() :
- _fromAction(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlAction *UmlActionInputPin::fromAction() const
-{
- // This is a read-write association end
-
- return _fromAction;
-}
-
-void UmlActionInputPin::setFromAction(UmlAction *fromAction)
-{
- // This is a read-write association end
-
- if (_fromAction != fromAction) {
- // Adjust subsetted properties
- removeOwnedElement(_fromAction);
-
- _fromAction = fromAction;
-
- // Adjust subsetted properties
- if (fromAction) {
- addOwnedElement(fromAction);
- }
- }
-}
-
diff --git a/src/uml/internal/umlactioninputpin_p.h b/src/uml/internal/umlactioninputpin_p.h
deleted file mode 100644
index 17bf7c73..00000000
--- a/src/uml/internal/umlactioninputpin_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIONINPUTPIN_H
-#define UMLACTIONINPUTPIN_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinputpin_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlAction;
-
-class Q_UML_EXPORT UmlActionInputPin : public UmlInputPin
-{
-public:
- Q_DECL_HIDDEN explicit UmlActionInputPin();
-
- // Owned attributes
- UmlAction *fromAction() const;
- void setFromAction(UmlAction *fromAction);
-
-protected:
- UmlAction *_fromAction;
-};
-
-#endif // UMLACTIONINPUTPIN_H
-
diff --git a/src/uml/internal/umlactivity.cpp b/src/uml/internal/umlactivity.cpp
deleted file mode 100644
index ef393ba3..00000000
--- a/src/uml/internal/umlactivity.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivity_p.h"
-
-#include "private/umlactivityedge_p.h"
-#include "private/umlactivitygroup_p.h"
-#include "private/umlactivitynode_p.h"
-#include "private/umlactivitypartition_p.h"
-#include "private/umlstructuredactivitynode_p.h"
-#include "private/umlvariable_p.h"
-
-UmlActivity::UmlActivity() :
- _isReadOnly(false),
- _isSingleExecution(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlActivityEdge *> UmlActivity::edge() const
-{
- // This is a read-write association end
-
- return _edge;
-}
-
-void UmlActivity::addEdge(UmlActivityEdge *edge)
-{
- // This is a read-write association end
-
- if (!_edge.contains(edge)) {
- _edge.insert(edge);
-
- // Adjust subsetted properties
- addOwnedElement(edge);
-
- // Adjust opposite properties
- if (edge) {
- edge->setActivity(this);
- }
- }
-}
-
-void UmlActivity::removeEdge(UmlActivityEdge *edge)
-{
- // This is a read-write association end
-
- if (_edge.contains(edge)) {
- _edge.remove(edge);
-
- // Adjust subsetted properties
- removeOwnedElement(edge);
-
- // Adjust opposite properties
- if (edge) {
- edge->setActivity(0);
- }
- }
-}
-
-const QSet<UmlActivityGroup *> UmlActivity::group() const
-{
- // This is a read-write association end
-
- return _group;
-}
-
-void UmlActivity::addGroup(UmlActivityGroup *group)
-{
- // This is a read-write association end
-
- if (!_group.contains(group)) {
- _group.insert(group);
-
- // Adjust subsetted properties
- addOwnedElement(group);
-
- // Adjust opposite properties
- if (group) {
- group->setInActivity(this);
- }
- }
-}
-
-void UmlActivity::removeGroup(UmlActivityGroup *group)
-{
- // This is a read-write association end
-
- if (_group.contains(group)) {
- _group.remove(group);
-
- // Adjust subsetted properties
- removeOwnedElement(group);
-
- // Adjust opposite properties
- if (group) {
- group->setInActivity(0);
- }
- }
-}
-
-bool UmlActivity::isReadOnly() const
-{
- // This is a read-write property
-
- return _isReadOnly;
-}
-
-void UmlActivity::setReadOnly(bool isReadOnly)
-{
- // This is a read-write property
-
- if (_isReadOnly != isReadOnly) {
- _isReadOnly = isReadOnly;
- }
-}
-
-bool UmlActivity::isSingleExecution() const
-{
- // This is a read-write property
-
- return _isSingleExecution;
-}
-
-void UmlActivity::setSingleExecution(bool isSingleExecution)
-{
- // This is a read-write property
-
- if (_isSingleExecution != isSingleExecution) {
- _isSingleExecution = isSingleExecution;
- }
-}
-
-const QSet<UmlActivityNode *> UmlActivity::node() const
-{
- // This is a read-write association end
-
- return _node;
-}
-
-void UmlActivity::addNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (!_node.contains(node)) {
- _node.insert(node);
-
- // Adjust subsetted properties
- addOwnedElement(node);
-
- // Adjust opposite properties
- if (node) {
- node->setActivity(this);
- }
- }
-}
-
-void UmlActivity::removeNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (_node.contains(node)) {
- _node.remove(node);
-
- // Adjust subsetted properties
- removeOwnedElement(node);
-
- // Adjust opposite properties
- if (node) {
- node->setActivity(0);
- }
- }
-}
-
-const QSet<UmlActivityPartition *> UmlActivity::partition() const
-{
- // This is a read-write association end
-
- return _partition;
-}
-
-void UmlActivity::addPartition(UmlActivityPartition *partition)
-{
- // This is a read-write association end
-
- if (!_partition.contains(partition)) {
- _partition.insert(partition);
-
- // Adjust subsetted properties
- addGroup(partition);
- }
-}
-
-void UmlActivity::removePartition(UmlActivityPartition *partition)
-{
- // This is a read-write association end
-
- if (_partition.contains(partition)) {
- _partition.remove(partition);
-
- // Adjust subsetted properties
- removeGroup(partition);
- }
-}
-
-const QSet<UmlStructuredActivityNode *> UmlActivity::structuredNode() const
-{
- // This is a read-write association end
-
- return _structuredNode;
-}
-
-void UmlActivity::addStructuredNode(UmlStructuredActivityNode *structuredNode)
-{
- // This is a read-write association end
-
- if (!_structuredNode.contains(structuredNode)) {
- _structuredNode.insert(structuredNode);
-
- // Adjust subsetted properties
- addGroup(structuredNode);
- addNode(structuredNode);
-
- // Adjust opposite properties
- if (structuredNode) {
- structuredNode->setActivity(this);
- }
- }
-}
-
-void UmlActivity::removeStructuredNode(UmlStructuredActivityNode *structuredNode)
-{
- // This is a read-write association end
-
- if (_structuredNode.contains(structuredNode)) {
- _structuredNode.remove(structuredNode);
-
- // Adjust subsetted properties
- removeGroup(structuredNode);
- removeNode(structuredNode);
-
- // Adjust opposite properties
- if (structuredNode) {
- structuredNode->setActivity(0);
- }
- }
-}
-
-const QSet<UmlVariable *> UmlActivity::variable() const
-{
- // This is a read-write association end
-
- return _variable;
-}
-
-void UmlActivity::addVariable(UmlVariable *variable)
-{
- // This is a read-write association end
-
- if (!_variable.contains(variable)) {
- _variable.insert(variable);
-
- // Adjust subsetted properties
- addOwnedMember(variable);
-
- // Adjust opposite properties
- if (variable) {
- variable->setActivityScope(this);
- }
- }
-}
-
-void UmlActivity::removeVariable(UmlVariable *variable)
-{
- // This is a read-write association end
-
- if (_variable.contains(variable)) {
- _variable.remove(variable);
-
- // Adjust subsetted properties
- removeOwnedMember(variable);
-
- // Adjust opposite properties
- if (variable) {
- variable->setActivityScope(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlactivity_p.h b/src/uml/internal/umlactivity_p.h
deleted file mode 100644
index 81a0abd3..00000000
--- a/src/uml/internal/umlactivity_p.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITY_H
-#define UMLACTIVITY_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavior_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivityEdge;
-class UmlActivityGroup;
-class UmlActivityNode;
-class UmlActivityPartition;
-class UmlStructuredActivityNode;
-class UmlVariable;
-
-class Q_UML_EXPORT UmlActivity : public UmlBehavior
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivity();
-
- // Owned attributes
- const QSet<UmlActivityEdge *> edge() const;
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- const QSet<UmlActivityGroup *> group() const;
- void addGroup(UmlActivityGroup *group);
- void removeGroup(UmlActivityGroup *group);
- bool isReadOnly() const;
- void setReadOnly(bool isReadOnly);
- bool isSingleExecution() const;
- void setSingleExecution(bool isSingleExecution);
- const QSet<UmlActivityNode *> node() const;
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- const QSet<UmlActivityPartition *> partition() const;
- void addPartition(UmlActivityPartition *partition);
- void removePartition(UmlActivityPartition *partition);
- const QSet<UmlStructuredActivityNode *> structuredNode() const;
- void addStructuredNode(UmlStructuredActivityNode *structuredNode);
- void removeStructuredNode(UmlStructuredActivityNode *structuredNode);
- const QSet<UmlVariable *> variable() const;
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
-
-protected:
- QSet<UmlActivityEdge *> _edge;
- QSet<UmlActivityGroup *> _group;
- bool _isReadOnly;
- bool _isSingleExecution;
- QSet<UmlActivityNode *> _node;
- QSet<UmlActivityPartition *> _partition;
- QSet<UmlStructuredActivityNode *> _structuredNode;
- QSet<UmlVariable *> _variable;
-};
-
-#endif // UMLACTIVITY_H
-
diff --git a/src/uml/internal/umlactivityedge.cpp b/src/uml/internal/umlactivityedge.cpp
deleted file mode 100644
index f87c5488..00000000
--- a/src/uml/internal/umlactivityedge.cpp
+++ /dev/null
@@ -1,312 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivityedge_p.h"
-
-#include "private/umlactivity_p.h"
-#include "private/umlactivitygroup_p.h"
-#include "private/umlactivitynode_p.h"
-#include "private/umlactivitypartition_p.h"
-#include "private/umlinterruptibleactivityregion_p.h"
-#include "private/umlstructuredactivitynode_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlActivityEdge::UmlActivityEdge() :
- _activity(0),
- _guard(0),
- _inStructuredNode(0),
- _interrupts(0),
- _source(0),
- _target(0),
- _weight(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlActivity *UmlActivityEdge::activity() const
-{
- // This is a read-write association end
-
- return _activity;
-}
-
-void UmlActivityEdge::setActivity(UmlActivity *activity)
-{
- // This is a read-write association end
-
- if (_activity != activity) {
- // Adjust subsetted properties
-
- _activity = activity;
-
- // Adjust subsetted properties
- setOwner(activity);
- }
-}
-
-UmlValueSpecification *UmlActivityEdge::guard() const
-{
- // This is a read-write association end
-
- return _guard;
-}
-
-void UmlActivityEdge::setGuard(UmlValueSpecification *guard)
-{
- // This is a read-write association end
-
- if (_guard != guard) {
- // Adjust subsetted properties
- removeOwnedElement(_guard);
-
- _guard = guard;
-
- // Adjust subsetted properties
- if (guard) {
- addOwnedElement(guard);
- }
- }
-}
-
-const QSet<UmlActivityGroup *> UmlActivityEdge::inGroup() const
-{
- // This is a read-only derived union association end
-
- return _inGroup;
-}
-
-void UmlActivityEdge::addInGroup(UmlActivityGroup *inGroup)
-{
- // This is a read-only derived union association end
-
- if (!_inGroup.contains(inGroup)) {
- _inGroup.insert(inGroup);
-
- // Adjust opposite properties
- if (inGroup) {
- inGroup->addContainedEdge(this);
- }
- }
-}
-
-void UmlActivityEdge::removeInGroup(UmlActivityGroup *inGroup)
-{
- // This is a read-only derived union association end
-
- if (_inGroup.contains(inGroup)) {
- _inGroup.remove(inGroup);
-
- // Adjust opposite properties
- if (inGroup) {
- inGroup->removeContainedEdge(this);
- }
- }
-}
-
-const QSet<UmlActivityPartition *> UmlActivityEdge::inPartition() const
-{
- // This is a read-write association end
-
- return _inPartition;
-}
-
-void UmlActivityEdge::addInPartition(UmlActivityPartition *inPartition)
-{
- // This is a read-write association end
-
- if (!_inPartition.contains(inPartition)) {
- _inPartition.insert(inPartition);
-
- // Adjust subsetted properties
- addInGroup(inPartition);
-
- // Adjust opposite properties
- if (inPartition) {
- inPartition->addEdge(this);
- }
- }
-}
-
-void UmlActivityEdge::removeInPartition(UmlActivityPartition *inPartition)
-{
- // This is a read-write association end
-
- if (_inPartition.contains(inPartition)) {
- _inPartition.remove(inPartition);
-
- // Adjust subsetted properties
- removeInGroup(inPartition);
-
- // Adjust opposite properties
- if (inPartition) {
- inPartition->removeEdge(this);
- }
- }
-}
-
-UmlStructuredActivityNode *UmlActivityEdge::inStructuredNode() const
-{
- // This is a read-write association end
-
- return _inStructuredNode;
-}
-
-void UmlActivityEdge::setInStructuredNode(UmlStructuredActivityNode *inStructuredNode)
-{
- // This is a read-write association end
-
- if (_inStructuredNode != inStructuredNode) {
- // Adjust subsetted properties
- removeInGroup(_inStructuredNode);
-
- _inStructuredNode = inStructuredNode;
-
- // Adjust subsetted properties
- if (inStructuredNode) {
- addInGroup(inStructuredNode);
- }
- setOwner(inStructuredNode);
- }
-}
-
-UmlInterruptibleActivityRegion *UmlActivityEdge::interrupts() const
-{
- // This is a read-write association end
-
- return _interrupts;
-}
-
-void UmlActivityEdge::setInterrupts(UmlInterruptibleActivityRegion *interrupts)
-{
- // This is a read-write association end
-
- if (_interrupts != interrupts) {
- _interrupts = interrupts;
- }
-}
-
-const QSet<UmlActivityEdge *> UmlActivityEdge::redefinedEdge() const
-{
- // This is a read-write association end
-
- return _redefinedEdge;
-}
-
-void UmlActivityEdge::addRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- // This is a read-write association end
-
- if (!_redefinedEdge.contains(redefinedEdge)) {
- _redefinedEdge.insert(redefinedEdge);
-
- // Adjust subsetted properties
- addRedefinedElement(redefinedEdge);
- }
-}
-
-void UmlActivityEdge::removeRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- // This is a read-write association end
-
- if (_redefinedEdge.contains(redefinedEdge)) {
- _redefinedEdge.remove(redefinedEdge);
-
- // Adjust subsetted properties
- removeRedefinedElement(redefinedEdge);
- }
-}
-
-UmlActivityNode *UmlActivityEdge::source() const
-{
- // This is a read-write association end
-
- return _source;
-}
-
-void UmlActivityEdge::setSource(UmlActivityNode *source)
-{
- // This is a read-write association end
-
- if (_source != source) {
- _source = source;
- }
-}
-
-UmlActivityNode *UmlActivityEdge::target() const
-{
- // This is a read-write association end
-
- return _target;
-}
-
-void UmlActivityEdge::setTarget(UmlActivityNode *target)
-{
- // This is a read-write association end
-
- if (_target != target) {
- _target = target;
- }
-}
-
-UmlValueSpecification *UmlActivityEdge::weight() const
-{
- // This is a read-write association end
-
- return _weight;
-}
-
-void UmlActivityEdge::setWeight(UmlValueSpecification *weight)
-{
- // This is a read-write association end
-
- if (_weight != weight) {
- // Adjust subsetted properties
- removeOwnedElement(_weight);
-
- _weight = weight;
-
- // Adjust subsetted properties
- if (weight) {
- addOwnedElement(weight);
- }
- }
-}
-
diff --git a/src/uml/internal/umlactivityedge_p.h b/src/uml/internal/umlactivityedge_p.h
deleted file mode 100644
index 1f14995b..00000000
--- a/src/uml/internal/umlactivityedge_p.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITYEDGE_H
-#define UMLACTIVITYEDGE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlredefinableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivity;
-class UmlActivityGroup;
-class UmlActivityNode;
-class UmlActivityPartition;
-class UmlInterruptibleActivityRegion;
-class UmlStructuredActivityNode;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlActivityEdge : public UmlRedefinableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivityEdge();
-
- // Owned attributes
- UmlActivity *activity() const;
- void setActivity(UmlActivity *activity);
- UmlValueSpecification *guard() const;
- void setGuard(UmlValueSpecification *guard);
- const QSet<UmlActivityGroup *> inGroup() const;
- Q_DECL_HIDDEN void addInGroup(UmlActivityGroup *inGroup);
- Q_DECL_HIDDEN void removeInGroup(UmlActivityGroup *inGroup);
- const QSet<UmlActivityPartition *> inPartition() const;
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- UmlStructuredActivityNode *inStructuredNode() const;
- void setInStructuredNode(UmlStructuredActivityNode *inStructuredNode);
- UmlInterruptibleActivityRegion *interrupts() const;
- void setInterrupts(UmlInterruptibleActivityRegion *interrupts);
- const QSet<UmlActivityEdge *> redefinedEdge() const;
- void addRedefinedEdge(UmlActivityEdge *redefinedEdge);
- void removeRedefinedEdge(UmlActivityEdge *redefinedEdge);
- UmlActivityNode *source() const;
- void setSource(UmlActivityNode *source);
- UmlActivityNode *target() const;
- void setTarget(UmlActivityNode *target);
- UmlValueSpecification *weight() const;
- void setWeight(UmlValueSpecification *weight);
-
-protected:
- UmlActivity *_activity;
- UmlValueSpecification *_guard;
- QSet<UmlActivityGroup *> _inGroup;
- QSet<UmlActivityPartition *> _inPartition;
- UmlStructuredActivityNode *_inStructuredNode;
- UmlInterruptibleActivityRegion *_interrupts;
- QSet<UmlActivityEdge *> _redefinedEdge;
- UmlActivityNode *_source;
- UmlActivityNode *_target;
- UmlValueSpecification *_weight;
-};
-
-#endif // UMLACTIVITYEDGE_H
-
diff --git a/src/uml/internal/umlactivityfinalnode.cpp b/src/uml/internal/umlactivityfinalnode.cpp
deleted file mode 100644
index 9e03bf27..00000000
--- a/src/uml/internal/umlactivityfinalnode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivityfinalnode_p.h"
-
-UmlActivityFinalNode::UmlActivityFinalNode()
-{
-}
-
diff --git a/src/uml/internal/umlactivityfinalnode_p.h b/src/uml/internal/umlactivityfinalnode_p.h
deleted file mode 100644
index 56c8d646..00000000
--- a/src/uml/internal/umlactivityfinalnode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITYFINALNODE_H
-#define UMLACTIVITYFINALNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlfinalnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlActivityFinalNode : public UmlFinalNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivityFinalNode();
-
-protected:
-};
-
-#endif // UMLACTIVITYFINALNODE_H
-
diff --git a/src/uml/internal/umlactivitygroup.cpp b/src/uml/internal/umlactivitygroup.cpp
deleted file mode 100644
index 3106ce67..00000000
--- a/src/uml/internal/umlactivitygroup.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivitygroup_p.h"
-
-#include "private/umlactivity_p.h"
-#include "private/umlactivityedge_p.h"
-#include "private/umlactivitynode_p.h"
-
-UmlActivityGroup::UmlActivityGroup() :
- _inActivity(0),
- _superGroup(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlActivityEdge *> UmlActivityGroup::containedEdge() const
-{
- // This is a read-only derived union association end
-
- return _containedEdge;
-}
-
-void UmlActivityGroup::addContainedEdge(UmlActivityEdge *containedEdge)
-{
- // This is a read-only derived union association end
-
- if (!_containedEdge.contains(containedEdge)) {
- _containedEdge.insert(containedEdge);
-
- // Adjust opposite properties
- if (containedEdge) {
- containedEdge->addInGroup(this);
- }
- }
-}
-
-void UmlActivityGroup::removeContainedEdge(UmlActivityEdge *containedEdge)
-{
- // This is a read-only derived union association end
-
- if (_containedEdge.contains(containedEdge)) {
- _containedEdge.remove(containedEdge);
-
- // Adjust opposite properties
- if (containedEdge) {
- containedEdge->removeInGroup(this);
- }
- }
-}
-
-const QSet<UmlActivityNode *> UmlActivityGroup::containedNode() const
-{
- // This is a read-only derived union association end
-
- return _containedNode;
-}
-
-void UmlActivityGroup::addContainedNode(UmlActivityNode *containedNode)
-{
- // This is a read-only derived union association end
-
- if (!_containedNode.contains(containedNode)) {
- _containedNode.insert(containedNode);
-
- // Adjust opposite properties
- if (containedNode) {
- containedNode->addInGroup(this);
- }
- }
-}
-
-void UmlActivityGroup::removeContainedNode(UmlActivityNode *containedNode)
-{
- // This is a read-only derived union association end
-
- if (_containedNode.contains(containedNode)) {
- _containedNode.remove(containedNode);
-
- // Adjust opposite properties
- if (containedNode) {
- containedNode->removeInGroup(this);
- }
- }
-}
-
-UmlActivity *UmlActivityGroup::inActivity() const
-{
- // This is a read-write association end
-
- return _inActivity;
-}
-
-void UmlActivityGroup::setInActivity(UmlActivity *inActivity)
-{
- // This is a read-write association end
-
- if (_inActivity != inActivity) {
- // Adjust subsetted properties
-
- _inActivity = inActivity;
-
- // Adjust subsetted properties
- setOwner(inActivity);
- }
-}
-
-const QSet<UmlActivityGroup *> UmlActivityGroup::subgroup() const
-{
- // This is a read-only derived union association end
-
- return _subgroup;
-}
-
-void UmlActivityGroup::addSubgroup(UmlActivityGroup *subgroup)
-{
- // This is a read-only derived union association end
-
- if (!_subgroup.contains(subgroup)) {
- _subgroup.insert(subgroup);
-
- // Adjust subsetted properties
- addOwnedElement(subgroup);
- }
-}
-
-void UmlActivityGroup::removeSubgroup(UmlActivityGroup *subgroup)
-{
- // This is a read-only derived union association end
-
- if (_subgroup.contains(subgroup)) {
- _subgroup.remove(subgroup);
-
- // Adjust subsetted properties
- removeOwnedElement(subgroup);
- }
-}
-
-UmlActivityGroup *UmlActivityGroup::superGroup() const
-{
- // This is a read-only derived union association end
-
- return _superGroup;
-}
-
-void UmlActivityGroup::setSuperGroup(UmlActivityGroup *superGroup)
-{
- // This is a read-only derived union association end
-
- if (_superGroup != superGroup) {
- // Adjust subsetted properties
-
- _superGroup = superGroup;
-
- // Adjust subsetted properties
- setOwner(superGroup);
- }
-}
-
diff --git a/src/uml/internal/umlactivitygroup_p.h b/src/uml/internal/umlactivitygroup_p.h
deleted file mode 100644
index 08d96fd3..00000000
--- a/src/uml/internal/umlactivitygroup_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITYGROUP_H
-#define UMLACTIVITYGROUP_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivity;
-class UmlActivityEdge;
-class UmlActivityNode;
-
-class Q_UML_EXPORT UmlActivityGroup : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivityGroup();
-
- // Owned attributes
- const QSet<UmlActivityEdge *> containedEdge() const;
- Q_DECL_HIDDEN void addContainedEdge(UmlActivityEdge *containedEdge);
- Q_DECL_HIDDEN void removeContainedEdge(UmlActivityEdge *containedEdge);
- const QSet<UmlActivityNode *> containedNode() const;
- Q_DECL_HIDDEN void addContainedNode(UmlActivityNode *containedNode);
- Q_DECL_HIDDEN void removeContainedNode(UmlActivityNode *containedNode);
- UmlActivity *inActivity() const;
- void setInActivity(UmlActivity *inActivity);
- const QSet<UmlActivityGroup *> subgroup() const;
- Q_DECL_HIDDEN void addSubgroup(UmlActivityGroup *subgroup);
- Q_DECL_HIDDEN void removeSubgroup(UmlActivityGroup *subgroup);
- UmlActivityGroup *superGroup() const;
- Q_DECL_HIDDEN void setSuperGroup(UmlActivityGroup *superGroup);
-
-protected:
- QSet<UmlActivityEdge *> _containedEdge;
- QSet<UmlActivityNode *> _containedNode;
- UmlActivity *_inActivity;
- QSet<UmlActivityGroup *> _subgroup;
- UmlActivityGroup *_superGroup;
-};
-
-#endif // UMLACTIVITYGROUP_H
-
diff --git a/src/uml/internal/umlactivitynode.cpp b/src/uml/internal/umlactivitynode.cpp
deleted file mode 100644
index 7ecd64a4..00000000
--- a/src/uml/internal/umlactivitynode.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivitynode_p.h"
-
-#include "private/umlactivity_p.h"
-#include "private/umlactivityedge_p.h"
-#include "private/umlactivitygroup_p.h"
-#include "private/umlactivitypartition_p.h"
-#include "private/umlinterruptibleactivityregion_p.h"
-#include "private/umlstructuredactivitynode_p.h"
-
-UmlActivityNode::UmlActivityNode() :
- _activity(0),
- _inStructuredNode(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlActivity *UmlActivityNode::activity() const
-{
- // This is a read-write association end
-
- return _activity;
-}
-
-void UmlActivityNode::setActivity(UmlActivity *activity)
-{
- // This is a read-write association end
-
- if (_activity != activity) {
- // Adjust subsetted properties
-
- _activity = activity;
-
- // Adjust subsetted properties
- setOwner(activity);
- }
-}
-
-const QSet<UmlActivityGroup *> UmlActivityNode::inGroup() const
-{
- // This is a read-only derived union association end
-
- return _inGroup;
-}
-
-void UmlActivityNode::addInGroup(UmlActivityGroup *inGroup)
-{
- // This is a read-only derived union association end
-
- if (!_inGroup.contains(inGroup)) {
- _inGroup.insert(inGroup);
-
- // Adjust opposite properties
- if (inGroup) {
- inGroup->addContainedNode(this);
- }
- }
-}
-
-void UmlActivityNode::removeInGroup(UmlActivityGroup *inGroup)
-{
- // This is a read-only derived union association end
-
- if (_inGroup.contains(inGroup)) {
- _inGroup.remove(inGroup);
-
- // Adjust opposite properties
- if (inGroup) {
- inGroup->removeContainedNode(this);
- }
- }
-}
-
-const QSet<UmlInterruptibleActivityRegion *> UmlActivityNode::inInterruptibleRegion() const
-{
- // This is a read-write association end
-
- return _inInterruptibleRegion;
-}
-
-void UmlActivityNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- // This is a read-write association end
-
- if (!_inInterruptibleRegion.contains(inInterruptibleRegion)) {
- _inInterruptibleRegion.insert(inInterruptibleRegion);
-
- // Adjust subsetted properties
- addInGroup(inInterruptibleRegion);
-
- // Adjust opposite properties
- if (inInterruptibleRegion) {
- inInterruptibleRegion->addNode(this);
- }
- }
-}
-
-void UmlActivityNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- // This is a read-write association end
-
- if (_inInterruptibleRegion.contains(inInterruptibleRegion)) {
- _inInterruptibleRegion.remove(inInterruptibleRegion);
-
- // Adjust subsetted properties
- removeInGroup(inInterruptibleRegion);
-
- // Adjust opposite properties
- if (inInterruptibleRegion) {
- inInterruptibleRegion->removeNode(this);
- }
- }
-}
-
-const QSet<UmlActivityPartition *> UmlActivityNode::inPartition() const
-{
- // This is a read-write association end
-
- return _inPartition;
-}
-
-void UmlActivityNode::addInPartition(UmlActivityPartition *inPartition)
-{
- // This is a read-write association end
-
- if (!_inPartition.contains(inPartition)) {
- _inPartition.insert(inPartition);
-
- // Adjust subsetted properties
- addInGroup(inPartition);
-
- // Adjust opposite properties
- if (inPartition) {
- inPartition->addNode(this);
- }
- }
-}
-
-void UmlActivityNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- // This is a read-write association end
-
- if (_inPartition.contains(inPartition)) {
- _inPartition.remove(inPartition);
-
- // Adjust subsetted properties
- removeInGroup(inPartition);
-
- // Adjust opposite properties
- if (inPartition) {
- inPartition->removeNode(this);
- }
- }
-}
-
-UmlStructuredActivityNode *UmlActivityNode::inStructuredNode() const
-{
- // This is a read-write association end
-
- return _inStructuredNode;
-}
-
-void UmlActivityNode::setInStructuredNode(UmlStructuredActivityNode *inStructuredNode)
-{
- // This is a read-write association end
-
- if (_inStructuredNode != inStructuredNode) {
- // Adjust subsetted properties
- removeInGroup(_inStructuredNode);
-
- _inStructuredNode = inStructuredNode;
-
- // Adjust subsetted properties
- if (inStructuredNode) {
- addInGroup(inStructuredNode);
- }
- setOwner(inStructuredNode);
- }
-}
-
-const QSet<UmlActivityEdge *> UmlActivityNode::incoming() const
-{
- // This is a read-write association end
-
- return _incoming;
-}
-
-void UmlActivityNode::addIncoming(UmlActivityEdge *incoming)
-{
- // This is a read-write association end
-
- if (!_incoming.contains(incoming)) {
- _incoming.insert(incoming);
-
- // Adjust opposite properties
- if (incoming) {
- incoming->setTarget(this);
- }
- }
-}
-
-void UmlActivityNode::removeIncoming(UmlActivityEdge *incoming)
-{
- // This is a read-write association end
-
- if (_incoming.contains(incoming)) {
- _incoming.remove(incoming);
-
- // Adjust opposite properties
- if (incoming) {
- incoming->setTarget(0);
- }
- }
-}
-
-const QSet<UmlActivityEdge *> UmlActivityNode::outgoing() const
-{
- // This is a read-write association end
-
- return _outgoing;
-}
-
-void UmlActivityNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- // This is a read-write association end
-
- if (!_outgoing.contains(outgoing)) {
- _outgoing.insert(outgoing);
-
- // Adjust opposite properties
- if (outgoing) {
- outgoing->setSource(this);
- }
- }
-}
-
-void UmlActivityNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- // This is a read-write association end
-
- if (_outgoing.contains(outgoing)) {
- _outgoing.remove(outgoing);
-
- // Adjust opposite properties
- if (outgoing) {
- outgoing->setSource(0);
- }
- }
-}
-
-const QSet<UmlActivityNode *> UmlActivityNode::redefinedNode() const
-{
- // This is a read-write association end
-
- return _redefinedNode;
-}
-
-void UmlActivityNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- // This is a read-write association end
-
- if (!_redefinedNode.contains(redefinedNode)) {
- _redefinedNode.insert(redefinedNode);
-
- // Adjust subsetted properties
- addRedefinedElement(redefinedNode);
- }
-}
-
-void UmlActivityNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- // This is a read-write association end
-
- if (_redefinedNode.contains(redefinedNode)) {
- _redefinedNode.remove(redefinedNode);
-
- // Adjust subsetted properties
- removeRedefinedElement(redefinedNode);
- }
-}
-
diff --git a/src/uml/internal/umlactivitynode_p.h b/src/uml/internal/umlactivitynode_p.h
deleted file mode 100644
index 8ce227a6..00000000
--- a/src/uml/internal/umlactivitynode_p.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITYNODE_H
-#define UMLACTIVITYNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlredefinableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivity;
-class UmlActivityEdge;
-class UmlActivityGroup;
-class UmlActivityPartition;
-class UmlInterruptibleActivityRegion;
-class UmlStructuredActivityNode;
-
-class Q_UML_EXPORT UmlActivityNode : public UmlRedefinableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivityNode();
-
- // Owned attributes
- UmlActivity *activity() const;
- void setActivity(UmlActivity *activity);
- const QSet<UmlActivityGroup *> inGroup() const;
- Q_DECL_HIDDEN void addInGroup(UmlActivityGroup *inGroup);
- Q_DECL_HIDDEN void removeInGroup(UmlActivityGroup *inGroup);
- const QSet<UmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- const QSet<UmlActivityPartition *> inPartition() const;
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- UmlStructuredActivityNode *inStructuredNode() const;
- void setInStructuredNode(UmlStructuredActivityNode *inStructuredNode);
- const QSet<UmlActivityEdge *> incoming() const;
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- const QSet<UmlActivityEdge *> outgoing() const;
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- const QSet<UmlActivityNode *> redefinedNode() const;
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
-protected:
- UmlActivity *_activity;
- QSet<UmlActivityGroup *> _inGroup;
- QSet<UmlInterruptibleActivityRegion *> _inInterruptibleRegion;
- QSet<UmlActivityPartition *> _inPartition;
- UmlStructuredActivityNode *_inStructuredNode;
- QSet<UmlActivityEdge *> _incoming;
- QSet<UmlActivityEdge *> _outgoing;
- QSet<UmlActivityNode *> _redefinedNode;
-};
-
-#endif // UMLACTIVITYNODE_H
-
diff --git a/src/uml/internal/umlactivityparameternode.cpp b/src/uml/internal/umlactivityparameternode.cpp
deleted file mode 100644
index decee90f..00000000
--- a/src/uml/internal/umlactivityparameternode.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivityparameternode_p.h"
-
-#include "private/umlparameter_p.h"
-
-UmlActivityParameterNode::UmlActivityParameterNode() :
- _parameter(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlParameter *UmlActivityParameterNode::parameter() const
-{
- // This is a read-write association end
-
- return _parameter;
-}
-
-void UmlActivityParameterNode::setParameter(UmlParameter *parameter)
-{
- // This is a read-write association end
-
- if (_parameter != parameter) {
- _parameter = parameter;
- }
-}
-
diff --git a/src/uml/internal/umlactivityparameternode_p.h b/src/uml/internal/umlactivityparameternode_p.h
deleted file mode 100644
index 9b0301fb..00000000
--- a/src/uml/internal/umlactivityparameternode_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITYPARAMETERNODE_H
-#define UMLACTIVITYPARAMETERNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlobjectnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlParameter;
-
-class Q_UML_EXPORT UmlActivityParameterNode : public UmlObjectNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivityParameterNode();
-
- // Owned attributes
- UmlParameter *parameter() const;
- void setParameter(UmlParameter *parameter);
-
-protected:
- UmlParameter *_parameter;
-};
-
-#endif // UMLACTIVITYPARAMETERNODE_H
-
diff --git a/src/uml/internal/umlactivitypartition.cpp b/src/uml/internal/umlactivitypartition.cpp
deleted file mode 100644
index 2837e7ba..00000000
--- a/src/uml/internal/umlactivitypartition.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactivitypartition_p.h"
-
-#include "private/umlactivityedge_p.h"
-#include "private/umlactivitynode_p.h"
-#include "private/umlelement_p.h"
-
-UmlActivityPartition::UmlActivityPartition() :
- _isDimension(false),
- _isExternal(false),
- _represents(0),
- _superPartition(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlActivityEdge *> UmlActivityPartition::edge() const
-{
- // This is a read-write association end
-
- return _edge;
-}
-
-void UmlActivityPartition::addEdge(UmlActivityEdge *edge)
-{
- // This is a read-write association end
-
- if (!_edge.contains(edge)) {
- _edge.insert(edge);
-
- // Adjust subsetted properties
- addContainedEdge(edge);
-
- // Adjust opposite properties
- if (edge) {
- edge->addInPartition(this);
- }
- }
-}
-
-void UmlActivityPartition::removeEdge(UmlActivityEdge *edge)
-{
- // This is a read-write association end
-
- if (_edge.contains(edge)) {
- _edge.remove(edge);
-
- // Adjust subsetted properties
- removeContainedEdge(edge);
-
- // Adjust opposite properties
- if (edge) {
- edge->removeInPartition(this);
- }
- }
-}
-
-bool UmlActivityPartition::isDimension() const
-{
- // This is a read-write property
-
- return _isDimension;
-}
-
-void UmlActivityPartition::setDimension(bool isDimension)
-{
- // This is a read-write property
-
- if (_isDimension != isDimension) {
- _isDimension = isDimension;
- }
-}
-
-bool UmlActivityPartition::isExternal() const
-{
- // This is a read-write property
-
- return _isExternal;
-}
-
-void UmlActivityPartition::setExternal(bool isExternal)
-{
- // This is a read-write property
-
- if (_isExternal != isExternal) {
- _isExternal = isExternal;
- }
-}
-
-const QSet<UmlActivityNode *> UmlActivityPartition::node() const
-{
- // This is a read-write association end
-
- return _node;
-}
-
-void UmlActivityPartition::addNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (!_node.contains(node)) {
- _node.insert(node);
-
- // Adjust subsetted properties
- addContainedNode(node);
-
- // Adjust opposite properties
- if (node) {
- node->addInPartition(this);
- }
- }
-}
-
-void UmlActivityPartition::removeNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (_node.contains(node)) {
- _node.remove(node);
-
- // Adjust subsetted properties
- removeContainedNode(node);
-
- // Adjust opposite properties
- if (node) {
- node->removeInPartition(this);
- }
- }
-}
-
-UmlElement *UmlActivityPartition::represents() const
-{
- // This is a read-write association end
-
- return _represents;
-}
-
-void UmlActivityPartition::setRepresents(UmlElement *represents)
-{
- // This is a read-write association end
-
- if (_represents != represents) {
- _represents = represents;
- }
-}
-
-const QSet<UmlActivityPartition *> UmlActivityPartition::subpartition() const
-{
- // This is a read-write association end
-
- return _subpartition;
-}
-
-void UmlActivityPartition::addSubpartition(UmlActivityPartition *subpartition)
-{
- // This is a read-write association end
-
- if (!_subpartition.contains(subpartition)) {
- _subpartition.insert(subpartition);
-
- // Adjust subsetted properties
- addSubgroup(subpartition);
- }
-}
-
-void UmlActivityPartition::removeSubpartition(UmlActivityPartition *subpartition)
-{
- // This is a read-write association end
-
- if (_subpartition.contains(subpartition)) {
- _subpartition.remove(subpartition);
-
- // Adjust subsetted properties
- removeSubgroup(subpartition);
- }
-}
-
-UmlActivityPartition *UmlActivityPartition::superPartition() const
-{
- // This is a read-write association end
-
- return _superPartition;
-}
-
-void UmlActivityPartition::setSuperPartition(UmlActivityPartition *superPartition)
-{
- // This is a read-write association end
-
- if (_superPartition != superPartition) {
- // Adjust subsetted properties
-
- _superPartition = superPartition;
-
- // Adjust subsetted properties
- setSuperGroup(superPartition);
- }
-}
-
diff --git a/src/uml/internal/umlactivitypartition_p.h b/src/uml/internal/umlactivitypartition_p.h
deleted file mode 100644
index 2b98c6c7..00000000
--- a/src/uml/internal/umlactivitypartition_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTIVITYPARTITION_H
-#define UMLACTIVITYPARTITION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivitygroup_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivityEdge;
-class UmlActivityNode;
-class UmlElement;
-
-class Q_UML_EXPORT UmlActivityPartition : public UmlActivityGroup
-{
-public:
- Q_DECL_HIDDEN explicit UmlActivityPartition();
-
- // Owned attributes
- const QSet<UmlActivityEdge *> edge() const;
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- bool isDimension() const;
- void setDimension(bool isDimension);
- bool isExternal() const;
- void setExternal(bool isExternal);
- const QSet<UmlActivityNode *> node() const;
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- UmlElement *represents() const;
- void setRepresents(UmlElement *represents);
- const QSet<UmlActivityPartition *> subpartition() const;
- void addSubpartition(UmlActivityPartition *subpartition);
- void removeSubpartition(UmlActivityPartition *subpartition);
- UmlActivityPartition *superPartition() const;
- void setSuperPartition(UmlActivityPartition *superPartition);
-
-protected:
- QSet<UmlActivityEdge *> _edge;
- bool _isDimension;
- bool _isExternal;
- QSet<UmlActivityNode *> _node;
- UmlElement *_represents;
- QSet<UmlActivityPartition *> _subpartition;
- UmlActivityPartition *_superPartition;
-};
-
-#endif // UMLACTIVITYPARTITION_H
-
diff --git a/src/uml/internal/umlactor.cpp b/src/uml/internal/umlactor.cpp
deleted file mode 100644
index 611801d3..00000000
--- a/src/uml/internal/umlactor.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlactor_p.h"
-
-UmlActor::UmlActor()
-{
-}
-
diff --git a/src/uml/internal/umlactor_p.h b/src/uml/internal/umlactor_p.h
deleted file mode 100644
index d60f5438..00000000
--- a/src/uml/internal/umlactor_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLACTOR_H
-#define UMLACTOR_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavioredclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlActor : public UmlBehavioredClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlActor();
-
-protected:
-};
-
-#endif // UMLACTOR_H
-
diff --git a/src/uml/internal/umladdstructuralfeaturevalueaction.cpp b/src/uml/internal/umladdstructuralfeaturevalueaction.cpp
deleted file mode 100644
index 55e18722..00000000
--- a/src/uml/internal/umladdstructuralfeaturevalueaction.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umladdstructuralfeaturevalueaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlAddStructuralFeatureValueAction::UmlAddStructuralFeatureValueAction() :
- _insertAt(0),
- _isReplaceAll(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlAddStructuralFeatureValueAction::insertAt() const
-{
- // This is a read-write association end
-
- return _insertAt;
-}
-
-void UmlAddStructuralFeatureValueAction::setInsertAt(UmlInputPin *insertAt)
-{
- // This is a read-write association end
-
- if (_insertAt != insertAt) {
- // Adjust subsetted properties
- removeInput(_insertAt);
-
- _insertAt = insertAt;
-
- // Adjust subsetted properties
- if (insertAt) {
- addInput(insertAt);
- }
- }
-}
-
-bool UmlAddStructuralFeatureValueAction::isReplaceAll() const
-{
- // This is a read-write property
-
- return _isReplaceAll;
-}
-
-void UmlAddStructuralFeatureValueAction::setReplaceAll(bool isReplaceAll)
-{
- // This is a read-write property
-
- if (_isReplaceAll != isReplaceAll) {
- _isReplaceAll = isReplaceAll;
- }
-}
-
diff --git a/src/uml/internal/umladdstructuralfeaturevalueaction_p.h b/src/uml/internal/umladdstructuralfeaturevalueaction_p.h
deleted file mode 100644
index 0f1611eb..00000000
--- a/src/uml/internal/umladdstructuralfeaturevalueaction_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLADDSTRUCTURALFEATUREVALUEACTION_H
-#define UMLADDSTRUCTURALFEATUREVALUEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlwritestructuralfeatureaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlAddStructuralFeatureValueAction : public UmlWriteStructuralFeatureAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlAddStructuralFeatureValueAction();
-
- // Owned attributes
- UmlInputPin *insertAt() const;
- void setInsertAt(UmlInputPin *insertAt);
- bool isReplaceAll() const;
- void setReplaceAll(bool isReplaceAll);
-
-protected:
- UmlInputPin *_insertAt;
- bool _isReplaceAll;
-};
-
-#endif // UMLADDSTRUCTURALFEATUREVALUEACTION_H
-
diff --git a/src/uml/internal/umladdvariablevalueaction.cpp b/src/uml/internal/umladdvariablevalueaction.cpp
deleted file mode 100644
index dcba15ea..00000000
--- a/src/uml/internal/umladdvariablevalueaction.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umladdvariablevalueaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlAddVariableValueAction::UmlAddVariableValueAction() :
- _insertAt(0),
- _isReplaceAll(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlAddVariableValueAction::insertAt() const
-{
- // This is a read-write association end
-
- return _insertAt;
-}
-
-void UmlAddVariableValueAction::setInsertAt(UmlInputPin *insertAt)
-{
- // This is a read-write association end
-
- if (_insertAt != insertAt) {
- // Adjust subsetted properties
- removeInput(_insertAt);
-
- _insertAt = insertAt;
-
- // Adjust subsetted properties
- if (insertAt) {
- addInput(insertAt);
- }
- }
-}
-
-bool UmlAddVariableValueAction::isReplaceAll() const
-{
- // This is a read-write property
-
- return _isReplaceAll;
-}
-
-void UmlAddVariableValueAction::setReplaceAll(bool isReplaceAll)
-{
- // This is a read-write property
-
- if (_isReplaceAll != isReplaceAll) {
- _isReplaceAll = isReplaceAll;
- }
-}
-
diff --git a/src/uml/internal/umladdvariablevalueaction_p.h b/src/uml/internal/umladdvariablevalueaction_p.h
deleted file mode 100644
index 9d3a22aa..00000000
--- a/src/uml/internal/umladdvariablevalueaction_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLADDVARIABLEVALUEACTION_H
-#define UMLADDVARIABLEVALUEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlwritevariableaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlAddVariableValueAction : public UmlWriteVariableAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlAddVariableValueAction();
-
- // Owned attributes
- UmlInputPin *insertAt() const;
- void setInsertAt(UmlInputPin *insertAt);
- bool isReplaceAll() const;
- void setReplaceAll(bool isReplaceAll);
-
-protected:
- UmlInputPin *_insertAt;
- bool _isReplaceAll;
-};
-
-#endif // UMLADDVARIABLEVALUEACTION_H
-
diff --git a/src/uml/internal/umlanyreceiveevent.cpp b/src/uml/internal/umlanyreceiveevent.cpp
deleted file mode 100644
index 49e8512f..00000000
--- a/src/uml/internal/umlanyreceiveevent.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlanyreceiveevent_p.h"
-
-UmlAnyReceiveEvent::UmlAnyReceiveEvent()
-{
-}
-
diff --git a/src/uml/internal/umlanyreceiveevent_p.h b/src/uml/internal/umlanyreceiveevent_p.h
deleted file mode 100644
index 0340dca2..00000000
--- a/src/uml/internal/umlanyreceiveevent_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLANYRECEIVEEVENT_H
-#define UMLANYRECEIVEEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmessageevent_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlAnyReceiveEvent : public UmlMessageEvent
-{
-public:
- Q_DECL_HIDDEN explicit UmlAnyReceiveEvent();
-
-protected:
-};
-
-#endif // UMLANYRECEIVEEVENT_H
-
diff --git a/src/uml/internal/umlartifact.cpp b/src/uml/internal/umlartifact.cpp
deleted file mode 100644
index 9286b9b8..00000000
--- a/src/uml/internal/umlartifact.cpp
+++ /dev/null
@@ -1,198 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlartifact_p.h"
-
-#include "private/umlmanifestation_p.h"
-#include "private/umloperation_p.h"
-#include "private/umlproperty_p.h"
-
-UmlArtifact::UmlArtifact()
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlArtifact::fileName() const
-{
- // This is a read-write property
-
- return _fileName;
-}
-
-void UmlArtifact::setFileName(QString fileName)
-{
- // This is a read-write property
-
- if (_fileName != fileName) {
- _fileName = fileName;
- }
-}
-
-const QSet<UmlManifestation *> UmlArtifact::manifestation() const
-{
- // This is a read-write association end
-
- return _manifestation;
-}
-
-void UmlArtifact::addManifestation(UmlManifestation *manifestation)
-{
- // This is a read-write association end
-
- if (!_manifestation.contains(manifestation)) {
- _manifestation.insert(manifestation);
-
- // Adjust subsetted properties
- addOwnedElement(manifestation);
- addClientDependency(manifestation);
- }
-}
-
-void UmlArtifact::removeManifestation(UmlManifestation *manifestation)
-{
- // This is a read-write association end
-
- if (_manifestation.contains(manifestation)) {
- _manifestation.remove(manifestation);
-
- // Adjust subsetted properties
- removeOwnedElement(manifestation);
- removeClientDependency(manifestation);
- }
-}
-
-const QSet<UmlArtifact *> UmlArtifact::nestedArtifact() const
-{
- // This is a read-write association end
-
- return _nestedArtifact;
-}
-
-void UmlArtifact::addNestedArtifact(UmlArtifact *nestedArtifact)
-{
- // This is a read-write association end
-
- if (!_nestedArtifact.contains(nestedArtifact)) {
- _nestedArtifact.insert(nestedArtifact);
-
- // Adjust subsetted properties
- addOwnedMember(nestedArtifact);
- }
-}
-
-void UmlArtifact::removeNestedArtifact(UmlArtifact *nestedArtifact)
-{
- // This is a read-write association end
-
- if (_nestedArtifact.contains(nestedArtifact)) {
- _nestedArtifact.remove(nestedArtifact);
-
- // Adjust subsetted properties
- removeOwnedMember(nestedArtifact);
- }
-}
-
-const QList<UmlProperty *> UmlArtifact::ownedAttribute() const
-{
- // This is a read-write association end
-
- return _ownedAttribute;
-}
-
-void UmlArtifact::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (!_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.append(ownedAttribute);
-
- // Adjust subsetted properties
- addOwnedMember(ownedAttribute);
- addAttribute(ownedAttribute);
- }
-}
-
-void UmlArtifact::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.removeAll(ownedAttribute);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedAttribute);
- removeAttribute(ownedAttribute);
- }
-}
-
-const QList<UmlOperation *> UmlArtifact::ownedOperation() const
-{
- // This is a read-write association end
-
- return _ownedOperation;
-}
-
-void UmlArtifact::addOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (!_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.append(ownedOperation);
-
- // Adjust subsetted properties
- addFeature(ownedOperation);
- addOwnedMember(ownedOperation);
- }
-}
-
-void UmlArtifact::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.removeAll(ownedOperation);
-
- // Adjust subsetted properties
- removeFeature(ownedOperation);
- removeOwnedMember(ownedOperation);
- }
-}
-
diff --git a/src/uml/internal/umlartifact_p.h b/src/uml/internal/umlartifact_p.h
deleted file mode 100644
index 9870aa5c..00000000
--- a/src/uml/internal/umlartifact_p.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLARTIFACT_H
-#define UMLARTIFACT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldeployedartifact_p.h"
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlManifestation;
-class UmlOperation;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlArtifact : public UmlDeployedArtifact, public UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlArtifact();
-
- // Owned attributes
- QString fileName() const;
- void setFileName(QString fileName);
- const QSet<UmlManifestation *> manifestation() const;
- void addManifestation(UmlManifestation *manifestation);
- void removeManifestation(UmlManifestation *manifestation);
- const QSet<UmlArtifact *> nestedArtifact() const;
- void addNestedArtifact(UmlArtifact *nestedArtifact);
- void removeNestedArtifact(UmlArtifact *nestedArtifact);
- const QList<UmlProperty *> ownedAttribute() const;
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- const QList<UmlOperation *> ownedOperation() const;
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
-
-protected:
- QString _fileName;
- QSet<UmlManifestation *> _manifestation;
- QSet<UmlArtifact *> _nestedArtifact;
- QList<UmlProperty *> _ownedAttribute;
- QList<UmlOperation *> _ownedOperation;
-};
-
-#endif // UMLARTIFACT_H
-
diff --git a/src/uml/internal/umlassociation.cpp b/src/uml/internal/umlassociation.cpp
deleted file mode 100644
index c23c262d..00000000
--- a/src/uml/internal/umlassociation.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlassociation_p.h"
-
-#include "private/umlproperty_p.h"
-#include "private/umltype_p.h"
-
-UmlAssociation::UmlAssociation() :
- _isDerived(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlType *> UmlAssociation::endType() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlAssociation::endType(): to be implemented (this is a derived association end)");
-
- return QList<UmlType *>();
-}
-
-void UmlAssociation::addEndType(UmlType *endType)
-{
- // This is a read-only derived association end
-
- qWarning("UmlAssociation::endType(): to be implemented (this is a derived association end)");
- Q_UNUSED(endType);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addRelatedElement(endType);
- }
-}
-
-void UmlAssociation::removeEndType(UmlType *endType)
-{
- // This is a read-only derived association end
-
- qWarning("UmlAssociation::endType(): to be implemented (this is a derived association end)");
- Q_UNUSED(endType);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removeRelatedElement(endType);
- }
-}
-
-bool UmlAssociation::isDerived() const
-{
- // This is a read-write property
-
- return _isDerived;
-}
-
-void UmlAssociation::setDerived(bool isDerived)
-{
- // This is a read-write property
-
- if (_isDerived != isDerived) {
- _isDerived = isDerived;
- }
-}
-
-const QList<UmlProperty *> UmlAssociation::memberEnd() const
-{
- // This is a read-write association end
-
- return _memberEnd;
-}
-
-void UmlAssociation::addMemberEnd(UmlProperty *memberEnd)
-{
- // This is a read-write association end
-
- if (!_memberEnd.contains(memberEnd)) {
- _memberEnd.append(memberEnd);
-
- // Adjust subsetted properties
- addMember(memberEnd);
-
- // Adjust opposite properties
- if (memberEnd) {
- memberEnd->setAssociation(this);
- }
- }
-}
-
-void UmlAssociation::removeMemberEnd(UmlProperty *memberEnd)
-{
- // This is a read-write association end
-
- if (_memberEnd.contains(memberEnd)) {
- _memberEnd.removeAll(memberEnd);
-
- // Adjust subsetted properties
- removeMember(memberEnd);
-
- // Adjust opposite properties
- if (memberEnd) {
- memberEnd->setAssociation(0);
- }
- }
-}
-
-const QSet<UmlProperty *> UmlAssociation::navigableOwnedEnd() const
-{
- // This is a read-write association end
-
- return _navigableOwnedEnd;
-}
-
-void UmlAssociation::addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- // This is a read-write association end
-
- if (!_navigableOwnedEnd.contains(navigableOwnedEnd)) {
- _navigableOwnedEnd.insert(navigableOwnedEnd);
-
- // Adjust subsetted properties
- addOwnedEnd(navigableOwnedEnd);
- }
-}
-
-void UmlAssociation::removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- // This is a read-write association end
-
- if (_navigableOwnedEnd.contains(navigableOwnedEnd)) {
- _navigableOwnedEnd.remove(navigableOwnedEnd);
-
- // Adjust subsetted properties
- removeOwnedEnd(navigableOwnedEnd);
- }
-}
-
-const QList<UmlProperty *> UmlAssociation::ownedEnd() const
-{
- // This is a read-write association end
-
- return _ownedEnd;
-}
-
-void UmlAssociation::addOwnedEnd(UmlProperty *ownedEnd)
-{
- // This is a read-write association end
-
- if (!_ownedEnd.contains(ownedEnd)) {
- _ownedEnd.append(ownedEnd);
-
- // Adjust subsetted properties
- addMemberEnd(ownedEnd);
- addFeature(ownedEnd);
- addOwnedMember(ownedEnd);
-
- // Adjust opposite properties
- if (ownedEnd) {
- ownedEnd->setOwningAssociation(this);
- }
- }
-}
-
-void UmlAssociation::removeOwnedEnd(UmlProperty *ownedEnd)
-{
- // This is a read-write association end
-
- if (_ownedEnd.contains(ownedEnd)) {
- _ownedEnd.removeAll(ownedEnd);
-
- // Adjust subsetted properties
- removeMemberEnd(ownedEnd);
- removeFeature(ownedEnd);
- removeOwnedMember(ownedEnd);
-
- // Adjust opposite properties
- if (ownedEnd) {
- ownedEnd->setOwningAssociation(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlassociation_p.h b/src/uml/internal/umlassociation_p.h
deleted file mode 100644
index c4fa05f3..00000000
--- a/src/uml/internal/umlassociation_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLASSOCIATION_H
-#define UMLASSOCIATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-#include "private/umlrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlProperty;
-class UmlType;
-
-class Q_UML_EXPORT UmlAssociation : public virtual UmlClassifier, public UmlRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlAssociation();
-
- // Owned attributes
- const QList<UmlType *> endType() const;
- Q_DECL_HIDDEN void addEndType(UmlType *endType);
- Q_DECL_HIDDEN void removeEndType(UmlType *endType);
- bool isDerived() const;
- void setDerived(bool isDerived);
- const QList<UmlProperty *> memberEnd() const;
- void addMemberEnd(UmlProperty *memberEnd);
- void removeMemberEnd(UmlProperty *memberEnd);
- const QSet<UmlProperty *> navigableOwnedEnd() const;
- void addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- const QList<UmlProperty *> ownedEnd() const;
- void addOwnedEnd(UmlProperty *ownedEnd);
- void removeOwnedEnd(UmlProperty *ownedEnd);
-
-protected:
- bool _isDerived;
- QList<UmlProperty *> _memberEnd;
- QSet<UmlProperty *> _navigableOwnedEnd;
- QList<UmlProperty *> _ownedEnd;
-};
-
-#endif // UMLASSOCIATION_H
-
diff --git a/src/uml/internal/umlassociationclass.cpp b/src/uml/internal/umlassociationclass.cpp
deleted file mode 100644
index 0d7689da..00000000
--- a/src/uml/internal/umlassociationclass.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlassociationclass_p.h"
-
-UmlAssociationClass::UmlAssociationClass()
-{
-}
-
diff --git a/src/uml/internal/umlassociationclass_p.h b/src/uml/internal/umlassociationclass_p.h
deleted file mode 100644
index 77fd90e4..00000000
--- a/src/uml/internal/umlassociationclass_p.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLASSOCIATIONCLASS_H
-#define UMLASSOCIATIONCLASS_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclass_p.h"
-#include "private/umlassociation_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlAssociationClass : public UmlClass, public UmlAssociation
-{
-public:
- Q_DECL_HIDDEN explicit UmlAssociationClass();
-
-protected:
-};
-
-#endif // UMLASSOCIATIONCLASS_H
-
diff --git a/src/uml/internal/umlbehavior.cpp b/src/uml/internal/umlbehavior.cpp
deleted file mode 100644
index 33e0713d..00000000
--- a/src/uml/internal/umlbehavior.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlbehavior_p.h"
-
-#include "private/umlbehavioralfeature_p.h"
-#include "private/umlbehavioredclassifier_p.h"
-#include "private/umlconstraint_p.h"
-#include "private/umlparameter_p.h"
-#include "private/umlparameterset_p.h"
-
-UmlBehavior::UmlBehavior() :
- _isReentrant(true),
- _specification(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlBehavioredClassifier *UmlBehavior::context() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlBehavior::context(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlBehavior::setContext(UmlBehavioredClassifier *context)
-{
- // This is a read-only derived association end
-
- qWarning("UmlBehavior::context(): to be implemented (this is a derived association end)");
- Q_UNUSED(context);
-
- if (false /* <derivedexclusion-criteria> */) {
- // Adjust subsetted properties
- // removeRedefinitionContext(/* <derived-code> */);
-
- // <derived-code>
-
- // Adjust subsetted properties
- if (context) {
- addRedefinitionContext(context);
- }
- }
-}
-
-bool UmlBehavior::isReentrant() const
-{
- // This is a read-write property
-
- return _isReentrant;
-}
-
-void UmlBehavior::setReentrant(bool isReentrant)
-{
- // This is a read-write property
-
- if (_isReentrant != isReentrant) {
- _isReentrant = isReentrant;
- }
-}
-
-const QList<UmlParameter *> UmlBehavior::ownedParameter() const
-{
- // This is a read-write association end
-
- return _ownedParameter;
-}
-
-void UmlBehavior::addOwnedParameter(UmlParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (!_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.append(ownedParameter);
-
- // Adjust subsetted properties
- addOwnedMember(ownedParameter);
- }
-}
-
-void UmlBehavior::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.removeAll(ownedParameter);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedParameter);
- }
-}
-
-const QSet<UmlParameterSet *> UmlBehavior::ownedParameterSet() const
-{
- // This is a read-write association end
-
- return _ownedParameterSet;
-}
-
-void UmlBehavior::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- // This is a read-write association end
-
- if (!_ownedParameterSet.contains(ownedParameterSet)) {
- _ownedParameterSet.insert(ownedParameterSet);
-
- // Adjust subsetted properties
- addOwnedMember(ownedParameterSet);
- }
-}
-
-void UmlBehavior::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- // This is a read-write association end
-
- if (_ownedParameterSet.contains(ownedParameterSet)) {
- _ownedParameterSet.remove(ownedParameterSet);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedParameterSet);
- }
-}
-
-const QSet<UmlConstraint *> UmlBehavior::postcondition() const
-{
- // This is a read-write association end
-
- return _postcondition;
-}
-
-void UmlBehavior::addPostcondition(UmlConstraint *postcondition)
-{
- // This is a read-write association end
-
- if (!_postcondition.contains(postcondition)) {
- _postcondition.insert(postcondition);
-
- // Adjust subsetted properties
- addOwnedRule(postcondition);
- }
-}
-
-void UmlBehavior::removePostcondition(UmlConstraint *postcondition)
-{
- // This is a read-write association end
-
- if (_postcondition.contains(postcondition)) {
- _postcondition.remove(postcondition);
-
- // Adjust subsetted properties
- removeOwnedRule(postcondition);
- }
-}
-
-const QSet<UmlConstraint *> UmlBehavior::precondition() const
-{
- // This is a read-write association end
-
- return _precondition;
-}
-
-void UmlBehavior::addPrecondition(UmlConstraint *precondition)
-{
- // This is a read-write association end
-
- if (!_precondition.contains(precondition)) {
- _precondition.insert(precondition);
-
- // Adjust subsetted properties
- addOwnedRule(precondition);
- }
-}
-
-void UmlBehavior::removePrecondition(UmlConstraint *precondition)
-{
- // This is a read-write association end
-
- if (_precondition.contains(precondition)) {
- _precondition.remove(precondition);
-
- // Adjust subsetted properties
- removeOwnedRule(precondition);
- }
-}
-
-const QSet<UmlBehavior *> UmlBehavior::redefinedBehavior() const
-{
- // This is a read-write association end
-
- return _redefinedBehavior;
-}
-
-void UmlBehavior::addRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- // This is a read-write association end
-
- if (!_redefinedBehavior.contains(redefinedBehavior)) {
- _redefinedBehavior.insert(redefinedBehavior);
-
- // Adjust subsetted properties
- addRedefinedClassifier(redefinedBehavior);
- }
-}
-
-void UmlBehavior::removeRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- // This is a read-write association end
-
- if (_redefinedBehavior.contains(redefinedBehavior)) {
- _redefinedBehavior.remove(redefinedBehavior);
-
- // Adjust subsetted properties
- removeRedefinedClassifier(redefinedBehavior);
- }
-}
-
-UmlBehavioralFeature *UmlBehavior::specification() const
-{
- // This is a read-write association end
-
- return _specification;
-}
-
-void UmlBehavior::setSpecification(UmlBehavioralFeature *specification)
-{
- // This is a read-write association end
-
- if (_specification != specification) {
- _specification = specification;
- }
-}
-
diff --git a/src/uml/internal/umlbehavior_p.h b/src/uml/internal/umlbehavior_p.h
deleted file mode 100644
index b59977b2..00000000
--- a/src/uml/internal/umlbehavior_p.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLBEHAVIOR_H
-#define UMLBEHAVIOR_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclass_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavioralFeature;
-class UmlBehavioredClassifier;
-class UmlConstraint;
-class UmlParameter;
-class UmlParameterSet;
-
-class Q_UML_EXPORT UmlBehavior : public UmlClass
-{
-public:
- Q_DECL_HIDDEN explicit UmlBehavior();
-
- // Owned attributes
- UmlBehavioredClassifier *context() const;
- Q_DECL_HIDDEN void setContext(UmlBehavioredClassifier *context);
- bool isReentrant() const;
- void setReentrant(bool isReentrant);
- const QList<UmlParameter *> ownedParameter() const;
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- const QSet<UmlParameterSet *> ownedParameterSet() const;
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- const QSet<UmlConstraint *> postcondition() const;
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- const QSet<UmlConstraint *> precondition() const;
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- const QSet<UmlBehavior *> redefinedBehavior() const;
- void addRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void removeRedefinedBehavior(UmlBehavior *redefinedBehavior);
- UmlBehavioralFeature *specification() const;
- void setSpecification(UmlBehavioralFeature *specification);
-
-protected:
- bool _isReentrant;
- QList<UmlParameter *> _ownedParameter;
- QSet<UmlParameterSet *> _ownedParameterSet;
- QSet<UmlConstraint *> _postcondition;
- QSet<UmlConstraint *> _precondition;
- QSet<UmlBehavior *> _redefinedBehavior;
- UmlBehavioralFeature *_specification;
-};
-
-#endif // UMLBEHAVIOR_H
-
diff --git a/src/uml/internal/umlbehavioralfeature.cpp b/src/uml/internal/umlbehavioralfeature.cpp
deleted file mode 100644
index 5453c1de..00000000
--- a/src/uml/internal/umlbehavioralfeature.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlbehavioralfeature_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlnamedelement_p.h"
-#include "private/umlparameter_p.h"
-#include "private/umlparameterset_p.h"
-#include "private/umltype_p.h"
-
-UmlBehavioralFeature::UmlBehavioralFeature() :
- _concurrency(QtUml::CallConcurrencyKindSequential),
- _isAbstract(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QtUml::CallConcurrencyKind UmlBehavioralFeature::concurrency() const
-{
- // This is a read-write property
-
- return _concurrency;
-}
-
-void UmlBehavioralFeature::setConcurrency(QtUml::CallConcurrencyKind concurrency)
-{
- // This is a read-write property
-
- if (_concurrency != concurrency) {
- _concurrency = concurrency;
- }
-}
-
-bool UmlBehavioralFeature::isAbstract() const
-{
- // This is a read-write property
-
- return _isAbstract;
-}
-
-void UmlBehavioralFeature::setAbstract(bool isAbstract)
-{
- // This is a read-write property
-
- if (_isAbstract != isAbstract) {
- _isAbstract = isAbstract;
- }
-}
-
-const QSet<UmlBehavior *> UmlBehavioralFeature::method() const
-{
- // This is a read-write association end
-
- return _method;
-}
-
-void UmlBehavioralFeature::addMethod(UmlBehavior *method)
-{
- // This is a read-write association end
-
- if (!_method.contains(method)) {
- _method.insert(method);
-
- // Adjust opposite properties
- if (method) {
- method->setSpecification(this);
- }
- }
-}
-
-void UmlBehavioralFeature::removeMethod(UmlBehavior *method)
-{
- // This is a read-write association end
-
- if (_method.contains(method)) {
- _method.remove(method);
-
- // Adjust opposite properties
- if (method) {
- method->setSpecification(0);
- }
- }
-}
-
-const QList<UmlParameter *> UmlBehavioralFeature::ownedParameter() const
-{
- // This is a read-write association end
-
- return _ownedParameter;
-}
-
-void UmlBehavioralFeature::addOwnedParameter(UmlParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (!_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.append(ownedParameter);
-
- // Adjust subsetted properties
- addOwnedMember(ownedParameter);
- }
-}
-
-void UmlBehavioralFeature::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.removeAll(ownedParameter);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedParameter);
- }
-}
-
-const QSet<UmlParameterSet *> UmlBehavioralFeature::ownedParameterSet() const
-{
- // This is a read-write association end
-
- return _ownedParameterSet;
-}
-
-void UmlBehavioralFeature::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- // This is a read-write association end
-
- if (!_ownedParameterSet.contains(ownedParameterSet)) {
- _ownedParameterSet.insert(ownedParameterSet);
-
- // Adjust subsetted properties
- addOwnedMember(ownedParameterSet);
- }
-}
-
-void UmlBehavioralFeature::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- // This is a read-write association end
-
- if (_ownedParameterSet.contains(ownedParameterSet)) {
- _ownedParameterSet.remove(ownedParameterSet);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedParameterSet);
- }
-}
-
-const QSet<UmlType *> UmlBehavioralFeature::raisedException() const
-{
- // This is a read-write association end
-
- return _raisedException;
-}
-
-void UmlBehavioralFeature::addRaisedException(UmlType *raisedException)
-{
- // This is a read-write association end
-
- if (!_raisedException.contains(raisedException)) {
- _raisedException.insert(raisedException);
- }
-}
-
-void UmlBehavioralFeature::removeRaisedException(UmlType *raisedException)
-{
- // This is a read-write association end
-
- if (_raisedException.contains(raisedException)) {
- _raisedException.remove(raisedException);
- }
-}
-
-// OPERATIONS
-
-bool UmlBehavioralFeature::isDistinguishableFrom(
- UmlNamedElement *n, UmlNamespace *ns) const
-{
- qWarning("UmlBehavioralFeature::isDistinguishableFrom(): to be implemented (operation)");
-
- Q_UNUSED(n);
- Q_UNUSED(ns);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlbehavioralfeature_p.h b/src/uml/internal/umlbehavioralfeature_p.h
deleted file mode 100644
index ab3f0568..00000000
--- a/src/uml/internal/umlbehavioralfeature_p.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLBEHAVIORALFEATURE_H
-#define UMLBEHAVIORALFEATURE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamespace_p.h"
-#include "private/umlfeature_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlBehavior;
-class UmlNamedElement;
-class UmlParameter;
-class UmlParameterSet;
-class UmlType;
-
-class Q_UML_EXPORT UmlBehavioralFeature : public UmlNamespace, public UmlFeature
-{
-public:
- Q_DECL_HIDDEN explicit UmlBehavioralFeature();
-
- // Owned attributes
- QtUml::CallConcurrencyKind concurrency() const;
- void setConcurrency(QtUml::CallConcurrencyKind concurrency);
- bool isAbstract() const;
- void setAbstract(bool isAbstract);
- const QSet<UmlBehavior *> method() const;
- void addMethod(UmlBehavior *method);
- void removeMethod(UmlBehavior *method);
- const QList<UmlParameter *> ownedParameter() const;
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- const QSet<UmlParameterSet *> ownedParameterSet() const;
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- const QSet<UmlType *> raisedException() const;
- void addRaisedException(UmlType *raisedException);
- void removeRaisedException(UmlType *raisedException);
-
- // Operations
- bool isDistinguishableFrom(UmlNamedElement *n, UmlNamespace *ns) const;
-
-protected:
- QtUml::CallConcurrencyKind _concurrency;
- bool _isAbstract;
- QSet<UmlBehavior *> _method;
- QList<UmlParameter *> _ownedParameter;
- QSet<UmlParameterSet *> _ownedParameterSet;
- QSet<UmlType *> _raisedException;
-};
-
-#endif // UMLBEHAVIORALFEATURE_H
-
diff --git a/src/uml/internal/umlbehavioredclassifier.cpp b/src/uml/internal/umlbehavioredclassifier.cpp
deleted file mode 100644
index c0a7a83c..00000000
--- a/src/uml/internal/umlbehavioredclassifier.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlbehavioredclassifier_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlinterfacerealization_p.h"
-
-UmlBehavioredClassifier::UmlBehavioredClassifier() :
- _classifierBehavior(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlBehavior *UmlBehavioredClassifier::classifierBehavior() const
-{
- // This is a read-write association end
-
- return _classifierBehavior;
-}
-
-void UmlBehavioredClassifier::setClassifierBehavior(UmlBehavior *classifierBehavior)
-{
- // This is a read-write association end
-
- if (_classifierBehavior != classifierBehavior) {
- // Adjust subsetted properties
- removeOwnedBehavior(_classifierBehavior);
-
- _classifierBehavior = classifierBehavior;
-
- // Adjust subsetted properties
- if (classifierBehavior) {
- addOwnedBehavior(classifierBehavior);
- }
- }
-}
-
-const QSet<UmlInterfaceRealization *> UmlBehavioredClassifier::interfaceRealization() const
-{
- // This is a read-write association end
-
- return _interfaceRealization;
-}
-
-void UmlBehavioredClassifier::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- // This is a read-write association end
-
- if (!_interfaceRealization.contains(interfaceRealization)) {
- _interfaceRealization.insert(interfaceRealization);
-
- // Adjust subsetted properties
- addOwnedElement(interfaceRealization);
- addClientDependency(interfaceRealization);
-
- // Adjust opposite properties
- if (interfaceRealization) {
- interfaceRealization->setImplementingClassifier(this);
- }
- }
-}
-
-void UmlBehavioredClassifier::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- // This is a read-write association end
-
- if (_interfaceRealization.contains(interfaceRealization)) {
- _interfaceRealization.remove(interfaceRealization);
-
- // Adjust subsetted properties
- removeOwnedElement(interfaceRealization);
- removeClientDependency(interfaceRealization);
-
- // Adjust opposite properties
- if (interfaceRealization) {
- interfaceRealization->setImplementingClassifier(0);
- }
- }
-}
-
-const QSet<UmlBehavior *> UmlBehavioredClassifier::ownedBehavior() const
-{
- // This is a read-write association end
-
- return _ownedBehavior;
-}
-
-void UmlBehavioredClassifier::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- // This is a read-write association end
-
- if (!_ownedBehavior.contains(ownedBehavior)) {
- _ownedBehavior.insert(ownedBehavior);
-
- // Adjust subsetted properties
- addOwnedMember(ownedBehavior);
- }
-}
-
-void UmlBehavioredClassifier::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- // This is a read-write association end
-
- if (_ownedBehavior.contains(ownedBehavior)) {
- _ownedBehavior.remove(ownedBehavior);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedBehavior);
- }
-}
-
diff --git a/src/uml/internal/umlbehavioredclassifier_p.h b/src/uml/internal/umlbehavioredclassifier_p.h
deleted file mode 100644
index 87d57984..00000000
--- a/src/uml/internal/umlbehavioredclassifier_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLBEHAVIOREDCLASSIFIER_H
-#define UMLBEHAVIOREDCLASSIFIER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-class UmlInterfaceRealization;
-
-class Q_UML_EXPORT UmlBehavioredClassifier : public virtual UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlBehavioredClassifier();
-
- // Owned attributes
- UmlBehavior *classifierBehavior() const;
- void setClassifierBehavior(UmlBehavior *classifierBehavior);
- const QSet<UmlInterfaceRealization *> interfaceRealization() const;
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- const QSet<UmlBehavior *> ownedBehavior() const;
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
-protected:
- UmlBehavior *_classifierBehavior;
- QSet<UmlInterfaceRealization *> _interfaceRealization;
- QSet<UmlBehavior *> _ownedBehavior;
-};
-
-#endif // UMLBEHAVIOREDCLASSIFIER_H
-
diff --git a/src/uml/internal/umlbehaviorexecutionspecification.cpp b/src/uml/internal/umlbehaviorexecutionspecification.cpp
deleted file mode 100644
index 675f6aa4..00000000
--- a/src/uml/internal/umlbehaviorexecutionspecification.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlbehaviorexecutionspecification_p.h"
-
-#include "private/umlbehavior_p.h"
-
-UmlBehaviorExecutionSpecification::UmlBehaviorExecutionSpecification() :
- _behavior(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlBehavior *UmlBehaviorExecutionSpecification::behavior() const
-{
- // This is a read-write association end
-
- return _behavior;
-}
-
-void UmlBehaviorExecutionSpecification::setBehavior(UmlBehavior *behavior)
-{
- // This is a read-write association end
-
- if (_behavior != behavior) {
- _behavior = behavior;
- }
-}
-
diff --git a/src/uml/internal/umlbehaviorexecutionspecification_p.h b/src/uml/internal/umlbehaviorexecutionspecification_p.h
deleted file mode 100644
index fa4618ee..00000000
--- a/src/uml/internal/umlbehaviorexecutionspecification_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLBEHAVIOREXECUTIONSPECIFICATION_H
-#define UMLBEHAVIOREXECUTIONSPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlexecutionspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-
-class Q_UML_EXPORT UmlBehaviorExecutionSpecification : public UmlExecutionSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlBehaviorExecutionSpecification();
-
- // Owned attributes
- UmlBehavior *behavior() const;
- void setBehavior(UmlBehavior *behavior);
-
-protected:
- UmlBehavior *_behavior;
-};
-
-#endif // UMLBEHAVIOREXECUTIONSPECIFICATION_H
-
diff --git a/src/uml/internal/umlbroadcastsignalaction.cpp b/src/uml/internal/umlbroadcastsignalaction.cpp
deleted file mode 100644
index 7d02df1e..00000000
--- a/src/uml/internal/umlbroadcastsignalaction.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlbroadcastsignalaction_p.h"
-
-#include "private/umlsignal_p.h"
-
-UmlBroadcastSignalAction::UmlBroadcastSignalAction() :
- _signal(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlSignal *UmlBroadcastSignalAction::signal() const
-{
- // This is a read-write association end
-
- return _signal;
-}
-
-void UmlBroadcastSignalAction::setSignal(UmlSignal *signal)
-{
- // This is a read-write association end
-
- if (_signal != signal) {
- _signal = signal;
- }
-}
-
diff --git a/src/uml/internal/umlbroadcastsignalaction_p.h b/src/uml/internal/umlbroadcastsignalaction_p.h
deleted file mode 100644
index f97f31f3..00000000
--- a/src/uml/internal/umlbroadcastsignalaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLBROADCASTSIGNALACTION_H
-#define UMLBROADCASTSIGNALACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinvocationaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlSignal;
-
-class Q_UML_EXPORT UmlBroadcastSignalAction : public UmlInvocationAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlBroadcastSignalAction();
-
- // Owned attributes
- UmlSignal *signal() const;
- void setSignal(UmlSignal *signal);
-
-protected:
- UmlSignal *_signal;
-};
-
-#endif // UMLBROADCASTSIGNALACTION_H
-
diff --git a/src/uml/internal/umlcallaction.cpp b/src/uml/internal/umlcallaction.cpp
deleted file mode 100644
index 6fa5ad16..00000000
--- a/src/uml/internal/umlcallaction.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcallaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlCallAction::UmlCallAction() :
- _isSynchronous(true)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlCallAction::isSynchronous() const
-{
- // This is a read-write property
-
- return _isSynchronous;
-}
-
-void UmlCallAction::setSynchronous(bool isSynchronous)
-{
- // This is a read-write property
-
- if (_isSynchronous != isSynchronous) {
- _isSynchronous = isSynchronous;
- }
-}
-
-const QList<UmlOutputPin *> UmlCallAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlCallAction::addResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (!_result.contains(result)) {
- _result.append(result);
-
- // Adjust subsetted properties
- addOutput(result);
- }
-}
-
-void UmlCallAction::removeResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result.contains(result)) {
- _result.removeAll(result);
-
- // Adjust subsetted properties
- removeOutput(result);
- }
-}
-
diff --git a/src/uml/internal/umlcallaction_p.h b/src/uml/internal/umlcallaction_p.h
deleted file mode 100644
index c1ef1c04..00000000
--- a/src/uml/internal/umlcallaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCALLACTION_H
-#define UMLCALLACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinvocationaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlCallAction : public UmlInvocationAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlCallAction();
-
- // Owned attributes
- bool isSynchronous() const;
- void setSynchronous(bool isSynchronous);
- const QList<UmlOutputPin *> result() const;
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
-
-protected:
- bool _isSynchronous;
- QList<UmlOutputPin *> _result;
-};
-
-#endif // UMLCALLACTION_H
-
diff --git a/src/uml/internal/umlcallbehavioraction.cpp b/src/uml/internal/umlcallbehavioraction.cpp
deleted file mode 100644
index 2d7a9fed..00000000
--- a/src/uml/internal/umlcallbehavioraction.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcallbehavioraction_p.h"
-
-#include "private/umlbehavior_p.h"
-
-UmlCallBehaviorAction::UmlCallBehaviorAction() :
- _behavior(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlBehavior *UmlCallBehaviorAction::behavior() const
-{
- // This is a read-write association end
-
- return _behavior;
-}
-
-void UmlCallBehaviorAction::setBehavior(UmlBehavior *behavior)
-{
- // This is a read-write association end
-
- if (_behavior != behavior) {
- _behavior = behavior;
- }
-}
-
diff --git a/src/uml/internal/umlcallbehavioraction_p.h b/src/uml/internal/umlcallbehavioraction_p.h
deleted file mode 100644
index 431bd1d4..00000000
--- a/src/uml/internal/umlcallbehavioraction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCALLBEHAVIORACTION_H
-#define UMLCALLBEHAVIORACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcallaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-
-class Q_UML_EXPORT UmlCallBehaviorAction : public UmlCallAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlCallBehaviorAction();
-
- // Owned attributes
- UmlBehavior *behavior() const;
- void setBehavior(UmlBehavior *behavior);
-
-protected:
- UmlBehavior *_behavior;
-};
-
-#endif // UMLCALLBEHAVIORACTION_H
-
diff --git a/src/uml/internal/umlcallevent.cpp b/src/uml/internal/umlcallevent.cpp
deleted file mode 100644
index c4c9fd7e..00000000
--- a/src/uml/internal/umlcallevent.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcallevent_p.h"
-
-#include "private/umloperation_p.h"
-
-UmlCallEvent::UmlCallEvent() :
- _operation(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOperation *UmlCallEvent::operation() const
-{
- // This is a read-write association end
-
- return _operation;
-}
-
-void UmlCallEvent::setOperation(UmlOperation *operation)
-{
- // This is a read-write association end
-
- if (_operation != operation) {
- _operation = operation;
- }
-}
-
diff --git a/src/uml/internal/umlcallevent_p.h b/src/uml/internal/umlcallevent_p.h
deleted file mode 100644
index 710e383b..00000000
--- a/src/uml/internal/umlcallevent_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCALLEVENT_H
-#define UMLCALLEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmessageevent_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOperation;
-
-class Q_UML_EXPORT UmlCallEvent : public UmlMessageEvent
-{
-public:
- Q_DECL_HIDDEN explicit UmlCallEvent();
-
- // Owned attributes
- UmlOperation *operation() const;
- void setOperation(UmlOperation *operation);
-
-protected:
- UmlOperation *_operation;
-};
-
-#endif // UMLCALLEVENT_H
-
diff --git a/src/uml/internal/umlcalloperationaction.cpp b/src/uml/internal/umlcalloperationaction.cpp
deleted file mode 100644
index 3a8018b4..00000000
--- a/src/uml/internal/umlcalloperationaction.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcalloperationaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umloperation_p.h"
-
-UmlCallOperationAction::UmlCallOperationAction() :
- _operation(0),
- _target(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOperation *UmlCallOperationAction::operation() const
-{
- // This is a read-write association end
-
- return _operation;
-}
-
-void UmlCallOperationAction::setOperation(UmlOperation *operation)
-{
- // This is a read-write association end
-
- if (_operation != operation) {
- _operation = operation;
- }
-}
-
-UmlInputPin *UmlCallOperationAction::target() const
-{
- // This is a read-write association end
-
- return _target;
-}
-
-void UmlCallOperationAction::setTarget(UmlInputPin *target)
-{
- // This is a read-write association end
-
- if (_target != target) {
- // Adjust subsetted properties
- removeInput(_target);
-
- _target = target;
-
- // Adjust subsetted properties
- if (target) {
- addInput(target);
- }
- }
-}
-
diff --git a/src/uml/internal/umlcalloperationaction_p.h b/src/uml/internal/umlcalloperationaction_p.h
deleted file mode 100644
index 3696ae1d..00000000
--- a/src/uml/internal/umlcalloperationaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCALLOPERATIONACTION_H
-#define UMLCALLOPERATIONACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcallaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlOperation;
-
-class Q_UML_EXPORT UmlCallOperationAction : public UmlCallAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlCallOperationAction();
-
- // Owned attributes
- UmlOperation *operation() const;
- void setOperation(UmlOperation *operation);
- UmlInputPin *target() const;
- void setTarget(UmlInputPin *target);
-
-protected:
- UmlOperation *_operation;
- UmlInputPin *_target;
-};
-
-#endif // UMLCALLOPERATIONACTION_H
-
diff --git a/src/uml/internal/umlcentralbuffernode.cpp b/src/uml/internal/umlcentralbuffernode.cpp
deleted file mode 100644
index 8127f392..00000000
--- a/src/uml/internal/umlcentralbuffernode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcentralbuffernode_p.h"
-
-UmlCentralBufferNode::UmlCentralBufferNode()
-{
-}
-
diff --git a/src/uml/internal/umlcentralbuffernode_p.h b/src/uml/internal/umlcentralbuffernode_p.h
deleted file mode 100644
index 054b1f09..00000000
--- a/src/uml/internal/umlcentralbuffernode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCENTRALBUFFERNODE_H
-#define UMLCENTRALBUFFERNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlobjectnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlCentralBufferNode : public UmlObjectNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlCentralBufferNode();
-
-protected:
-};
-
-#endif // UMLCENTRALBUFFERNODE_H
-
diff --git a/src/uml/internal/umlchangeevent.cpp b/src/uml/internal/umlchangeevent.cpp
deleted file mode 100644
index 7f4a4189..00000000
--- a/src/uml/internal/umlchangeevent.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlchangeevent_p.h"
-
-#include "private/umlvaluespecification_p.h"
-
-UmlChangeEvent::UmlChangeEvent() :
- _changeExpression(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlValueSpecification *UmlChangeEvent::changeExpression() const
-{
- // This is a read-write association end
-
- return _changeExpression;
-}
-
-void UmlChangeEvent::setChangeExpression(UmlValueSpecification *changeExpression)
-{
- // This is a read-write association end
-
- if (_changeExpression != changeExpression) {
- // Adjust subsetted properties
- removeOwnedElement(_changeExpression);
-
- _changeExpression = changeExpression;
-
- // Adjust subsetted properties
- if (changeExpression) {
- addOwnedElement(changeExpression);
- }
- }
-}
-
diff --git a/src/uml/internal/umlchangeevent_p.h b/src/uml/internal/umlchangeevent_p.h
deleted file mode 100644
index 7baacfdd..00000000
--- a/src/uml/internal/umlchangeevent_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCHANGEEVENT_H
-#define UMLCHANGEEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlevent_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlChangeEvent : public UmlEvent
-{
-public:
- Q_DECL_HIDDEN explicit UmlChangeEvent();
-
- // Owned attributes
- UmlValueSpecification *changeExpression() const;
- void setChangeExpression(UmlValueSpecification *changeExpression);
-
-protected:
- UmlValueSpecification *_changeExpression;
-};
-
-#endif // UMLCHANGEEVENT_H
-
diff --git a/src/uml/internal/umlclass.cpp b/src/uml/internal/umlclass.cpp
deleted file mode 100644
index cd8d60f3..00000000
--- a/src/uml/internal/umlclass.cpp
+++ /dev/null
@@ -1,326 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclass_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlextension_p.h"
-#include "private/umlnamedelement_p.h"
-#include "private/umloperation_p.h"
-#include "private/umlproperty_p.h"
-#include "private/umlreception_p.h"
-
-UmlClass::UmlClass() :
- _isAbstract(false),
- _isActive(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlExtension *> UmlClass::extension() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlClass::extension(): to be implemented (this is a derived association end)");
-
- return QSet<UmlExtension *>();
-}
-
-void UmlClass::addExtension(UmlExtension *extension)
-{
- // This is a read-only derived association end
-
- qWarning("UmlClass::extension(): to be implemented (this is a derived association end)");
- Q_UNUSED(extension);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (extension) {
- extension->setMetaclass(this);
- }
- }
-}
-
-void UmlClass::removeExtension(UmlExtension *extension)
-{
- // This is a read-only derived association end
-
- qWarning("UmlClass::extension(): to be implemented (this is a derived association end)");
- Q_UNUSED(extension);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (extension) {
- extension->setMetaclass(0);
- }
- }
-}
-
-bool UmlClass::isAbstract() const
-{
- // This is a read-write property
-
- return _isAbstract;
-}
-
-void UmlClass::setAbstract(bool isAbstract)
-{
- // This is a read-write property
-
- if (_isAbstract != isAbstract) {
- _isAbstract = isAbstract;
- }
-}
-
-bool UmlClass::isActive() const
-{
- // This is a read-write property
-
- return _isActive;
-}
-
-void UmlClass::setActive(bool isActive)
-{
- // This is a read-write property
-
- if (_isActive != isActive) {
- _isActive = isActive;
- }
-}
-
-const QList<UmlClassifier *> UmlClass::nestedClassifier() const
-{
- // This is a read-write association end
-
- return _nestedClassifier;
-}
-
-void UmlClass::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- // This is a read-write association end
-
- if (!_nestedClassifier.contains(nestedClassifier)) {
- _nestedClassifier.append(nestedClassifier);
-
- // Adjust subsetted properties
- addOwnedMember(nestedClassifier);
- }
-}
-
-void UmlClass::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- // This is a read-write association end
-
- if (_nestedClassifier.contains(nestedClassifier)) {
- _nestedClassifier.removeAll(nestedClassifier);
-
- // Adjust subsetted properties
- removeOwnedMember(nestedClassifier);
- }
-}
-
-const QList<UmlProperty *> UmlClass::ownedAttribute() const
-{
- // This is a read-write association end
-
- return _ownedAttribute;
-}
-
-void UmlClass::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (!_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.append(ownedAttribute);
-
- // Adjust subsetted properties
- addOwnedMember(ownedAttribute);
- addAttribute(ownedAttribute);
-
- // Adjust opposite properties
- if (ownedAttribute) {
- ownedAttribute->setClass(this);
- }
- }
-}
-
-void UmlClass::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.removeAll(ownedAttribute);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedAttribute);
- removeAttribute(ownedAttribute);
-
- // Adjust opposite properties
- if (ownedAttribute) {
- ownedAttribute->setClass(0);
- }
- }
-}
-
-const QList<UmlOperation *> UmlClass::ownedOperation() const
-{
- // This is a read-write association end
-
- return _ownedOperation;
-}
-
-void UmlClass::addOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (!_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.append(ownedOperation);
-
- // Adjust subsetted properties
- addFeature(ownedOperation);
- addOwnedMember(ownedOperation);
-
- // Adjust opposite properties
- if (ownedOperation) {
- ownedOperation->setClass(this);
- }
- }
-}
-
-void UmlClass::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.removeAll(ownedOperation);
-
- // Adjust subsetted properties
- removeFeature(ownedOperation);
- removeOwnedMember(ownedOperation);
-
- // Adjust opposite properties
- if (ownedOperation) {
- ownedOperation->setClass(0);
- }
- }
-}
-
-const QSet<UmlReception *> UmlClass::ownedReception() const
-{
- // This is a read-write association end
-
- return _ownedReception;
-}
-
-void UmlClass::addOwnedReception(UmlReception *ownedReception)
-{
- // This is a read-write association end
-
- if (!_ownedReception.contains(ownedReception)) {
- _ownedReception.insert(ownedReception);
-
- // Adjust subsetted properties
- addFeature(ownedReception);
- addOwnedMember(ownedReception);
- }
-}
-
-void UmlClass::removeOwnedReception(UmlReception *ownedReception)
-{
- // This is a read-write association end
-
- if (_ownedReception.contains(ownedReception)) {
- _ownedReception.remove(ownedReception);
-
- // Adjust subsetted properties
- removeFeature(ownedReception);
- removeOwnedMember(ownedReception);
- }
-}
-
-const QSet<UmlClass *> UmlClass::superClass() const
-{
- // This is a read-write derived association end
-
- qWarning("UmlClass::superClass(): to be implemented (this is a derived association end)");
-
- return QSet<UmlClass *>();
-}
-
-void UmlClass::addSuperClass(UmlClass *superClass)
-{
- // This is a read-write derived association end
-
- qWarning("UmlClass::superClass(): to be implemented (this is a derived association end)");
- Q_UNUSED(superClass);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlClass::removeSuperClass(UmlClass *superClass)
-{
- // This is a read-write derived association end
-
- qWarning("UmlClass::superClass(): to be implemented (this is a derived association end)");
- Q_UNUSED(superClass);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-// OPERATIONS
-
-QSet<UmlNamedElement *> UmlClass::inherit(
- QSet<UmlNamedElement *> inhs) const
-{
- qWarning("UmlClass::inherit(): to be implemented (operation)");
-
- Q_UNUSED(inhs);
- return QSet<UmlNamedElement *> ();
-}
-
diff --git a/src/uml/internal/umlclass_p.h b/src/uml/internal/umlclass_p.h
deleted file mode 100644
index f89dd09e..00000000
--- a/src/uml/internal/umlclass_p.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLASS_H
-#define UMLCLASS_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlencapsulatedclassifier_p.h"
-#include "private/umlbehavioredclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlExtension;
-class UmlNamedElement;
-class UmlOperation;
-class UmlProperty;
-class UmlReception;
-
-class Q_UML_EXPORT UmlClass : public UmlEncapsulatedClassifier, public UmlBehavioredClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlClass();
-
- // Owned attributes
- const QSet<UmlExtension *> extension() const;
- Q_DECL_HIDDEN void addExtension(UmlExtension *extension);
- Q_DECL_HIDDEN void removeExtension(UmlExtension *extension);
- bool isAbstract() const;
- void setAbstract(bool isAbstract);
- bool isActive() const;
- void setActive(bool isActive);
- const QList<UmlClassifier *> nestedClassifier() const;
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- const QList<UmlProperty *> ownedAttribute() const;
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- const QList<UmlOperation *> ownedOperation() const;
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- const QSet<UmlReception *> ownedReception() const;
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- const QSet<UmlClass *> superClass() const;
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Operations
- QSet<UmlNamedElement *> inherit(QSet<UmlNamedElement *> inhs) const;
-
-protected:
- bool _isAbstract;
- bool _isActive;
- QList<UmlClassifier *> _nestedClassifier;
- QList<UmlProperty *> _ownedAttribute;
- QList<UmlOperation *> _ownedOperation;
- QSet<UmlReception *> _ownedReception;
-};
-
-#endif // UMLCLASS_H
-
diff --git a/src/uml/internal/umlclassifier.cpp b/src/uml/internal/umlclassifier.cpp
deleted file mode 100644
index dcfc4f59..00000000
--- a/src/uml/internal/umlclassifier.cpp
+++ /dev/null
@@ -1,622 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclassifier_p.h"
-
-#include "private/umlclassifiertemplateparameter_p.h"
-#include "private/umlcollaborationuse_p.h"
-#include "private/umlfeature_p.h"
-#include "private/umlgeneralization_p.h"
-#include "private/umlgeneralizationset_p.h"
-#include "private/umlnamedelement_p.h"
-#include "private/umlproperty_p.h"
-#include "private/umlredefinabletemplatesignature_p.h"
-#include "private/umlsubstitution_p.h"
-#include "private/umlusecase_p.h"
-
-UmlClassifier::UmlClassifier() :
- _isAbstract(false),
- _isFinalSpecialization(false),
- _ownedTemplateSignature(0),
- _representation(0),
- _templateParameter(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlProperty *> UmlClassifier::attribute() const
-{
- // This is a read-only derived union association end
-
- return _attribute;
-}
-
-void UmlClassifier::addAttribute(UmlProperty *attribute)
-{
- // This is a read-only derived union association end
-
- if (!_attribute.contains(attribute)) {
- _attribute.insert(attribute);
-
- // Adjust subsetted properties
- addFeature(attribute);
- }
-}
-
-void UmlClassifier::removeAttribute(UmlProperty *attribute)
-{
- // This is a read-only derived union association end
-
- if (_attribute.contains(attribute)) {
- _attribute.remove(attribute);
-
- // Adjust subsetted properties
- removeFeature(attribute);
- }
-}
-
-const QSet<UmlCollaborationUse *> UmlClassifier::collaborationUse() const
-{
- // This is a read-write association end
-
- return _collaborationUse;
-}
-
-void UmlClassifier::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- // This is a read-write association end
-
- if (!_collaborationUse.contains(collaborationUse)) {
- _collaborationUse.insert(collaborationUse);
-
- // Adjust subsetted properties
- addOwnedElement(collaborationUse);
- }
-}
-
-void UmlClassifier::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- // This is a read-write association end
-
- if (_collaborationUse.contains(collaborationUse)) {
- _collaborationUse.remove(collaborationUse);
-
- // Adjust subsetted properties
- removeOwnedElement(collaborationUse);
- }
-}
-
-const QSet<UmlFeature *> UmlClassifier::feature() const
-{
- // This is a read-only derived union association end
-
- return _feature;
-}
-
-void UmlClassifier::addFeature(UmlFeature *feature)
-{
- // This is a read-only derived union association end
-
- if (!_feature.contains(feature)) {
- _feature.insert(feature);
-
- // Adjust subsetted properties
- addMember(feature);
-
- // Adjust opposite properties
- if (feature) {
- feature->addFeaturingClassifier(this);
- }
- }
-}
-
-void UmlClassifier::removeFeature(UmlFeature *feature)
-{
- // This is a read-only derived union association end
-
- if (_feature.contains(feature)) {
- _feature.remove(feature);
-
- // Adjust subsetted properties
- removeMember(feature);
-
- // Adjust opposite properties
- if (feature) {
- feature->removeFeaturingClassifier(this);
- }
- }
-}
-
-const QSet<UmlClassifier *> UmlClassifier::general() const
-{
- // This is a read-write derived association end
-
- qWarning("UmlClassifier::general(): to be implemented (this is a derived association end)");
-
- return QSet<UmlClassifier *>();
-}
-
-void UmlClassifier::addGeneral(UmlClassifier *general)
-{
- // This is a read-write derived association end
-
- qWarning("UmlClassifier::general(): to be implemented (this is a derived association end)");
- Q_UNUSED(general);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlClassifier::removeGeneral(UmlClassifier *general)
-{
- // This is a read-write derived association end
-
- qWarning("UmlClassifier::general(): to be implemented (this is a derived association end)");
- Q_UNUSED(general);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlGeneralization *> UmlClassifier::generalization() const
-{
- // This is a read-write association end
-
- return _generalization;
-}
-
-void UmlClassifier::addGeneralization(UmlGeneralization *generalization)
-{
- // This is a read-write association end
-
- if (!_generalization.contains(generalization)) {
- _generalization.insert(generalization);
-
- // Adjust subsetted properties
- addOwnedElement(generalization);
-
- // Adjust opposite properties
- if (generalization) {
- generalization->setSpecific(this);
- }
- }
-}
-
-void UmlClassifier::removeGeneralization(UmlGeneralization *generalization)
-{
- // This is a read-write association end
-
- if (_generalization.contains(generalization)) {
- _generalization.remove(generalization);
-
- // Adjust subsetted properties
- removeOwnedElement(generalization);
-
- // Adjust opposite properties
- if (generalization) {
- generalization->setSpecific(0);
- }
- }
-}
-
-const QSet<UmlNamedElement *> UmlClassifier::inheritedMember() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlClassifier::inheritedMember(): to be implemented (this is a derived association end)");
-
- return QSet<UmlNamedElement *>();
-}
-
-void UmlClassifier::addInheritedMember(UmlNamedElement *inheritedMember)
-{
- // This is a read-only derived association end
-
- qWarning("UmlClassifier::inheritedMember(): to be implemented (this is a derived association end)");
- Q_UNUSED(inheritedMember);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addMember(inheritedMember);
- }
-}
-
-void UmlClassifier::removeInheritedMember(UmlNamedElement *inheritedMember)
-{
- // This is a read-only derived association end
-
- qWarning("UmlClassifier::inheritedMember(): to be implemented (this is a derived association end)");
- Q_UNUSED(inheritedMember);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removeMember(inheritedMember);
- }
-}
-
-bool UmlClassifier::isAbstract() const
-{
- // This is a read-write property
-
- return _isAbstract;
-}
-
-void UmlClassifier::setAbstract(bool isAbstract)
-{
- // This is a read-write property
-
- if (_isAbstract != isAbstract) {
- _isAbstract = isAbstract;
- }
-}
-
-bool UmlClassifier::isFinalSpecialization() const
-{
- // This is a read-write property
-
- return _isFinalSpecialization;
-}
-
-void UmlClassifier::setFinalSpecialization(bool isFinalSpecialization)
-{
- // This is a read-write property
-
- if (_isFinalSpecialization != isFinalSpecialization) {
- _isFinalSpecialization = isFinalSpecialization;
- }
-}
-
-UmlRedefinableTemplateSignature *UmlClassifier::ownedTemplateSignature() const
-{
- // This is a read-write association end
-
- return _ownedTemplateSignature;
-}
-
-void UmlClassifier::setOwnedTemplateSignature(UmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- // This is a read-write association end
-
- if (_ownedTemplateSignature != ownedTemplateSignature) {
- _ownedTemplateSignature = ownedTemplateSignature;
- }
-}
-
-const QSet<UmlUseCase *> UmlClassifier::ownedUseCase() const
-{
- // This is a read-write association end
-
- return _ownedUseCase;
-}
-
-void UmlClassifier::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- // This is a read-write association end
-
- if (!_ownedUseCase.contains(ownedUseCase)) {
- _ownedUseCase.insert(ownedUseCase);
-
- // Adjust subsetted properties
- addOwnedMember(ownedUseCase);
- }
-}
-
-void UmlClassifier::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- // This is a read-write association end
-
- if (_ownedUseCase.contains(ownedUseCase)) {
- _ownedUseCase.remove(ownedUseCase);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedUseCase);
- }
-}
-
-const QSet<UmlGeneralizationSet *> UmlClassifier::powertypeExtent() const
-{
- // This is a read-write association end
-
- return _powertypeExtent;
-}
-
-void UmlClassifier::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- // This is a read-write association end
-
- if (!_powertypeExtent.contains(powertypeExtent)) {
- _powertypeExtent.insert(powertypeExtent);
-
- // Adjust opposite properties
- if (powertypeExtent) {
- powertypeExtent->setPowertype(this);
- }
- }
-}
-
-void UmlClassifier::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- // This is a read-write association end
-
- if (_powertypeExtent.contains(powertypeExtent)) {
- _powertypeExtent.remove(powertypeExtent);
-
- // Adjust opposite properties
- if (powertypeExtent) {
- powertypeExtent->setPowertype(0);
- }
- }
-}
-
-const QSet<UmlClassifier *> UmlClassifier::redefinedClassifier() const
-{
- // This is a read-write association end
-
- return _redefinedClassifier;
-}
-
-void UmlClassifier::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- // This is a read-write association end
-
- if (!_redefinedClassifier.contains(redefinedClassifier)) {
- _redefinedClassifier.insert(redefinedClassifier);
-
- // Adjust subsetted properties
- addRedefinedElement(redefinedClassifier);
- }
-}
-
-void UmlClassifier::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- // This is a read-write association end
-
- if (_redefinedClassifier.contains(redefinedClassifier)) {
- _redefinedClassifier.remove(redefinedClassifier);
-
- // Adjust subsetted properties
- removeRedefinedElement(redefinedClassifier);
- }
-}
-
-UmlCollaborationUse *UmlClassifier::representation() const
-{
- // This is a read-write association end
-
- return _representation;
-}
-
-void UmlClassifier::setRepresentation(UmlCollaborationUse *representation)
-{
- // This is a read-write association end
-
- if (_representation != representation) {
- // Adjust subsetted properties
- removeCollaborationUse(_representation);
-
- _representation = representation;
-
- // Adjust subsetted properties
- if (representation) {
- addCollaborationUse(representation);
- }
- }
-}
-
-const QSet<UmlSubstitution *> UmlClassifier::substitution() const
-{
- // This is a read-write association end
-
- return _substitution;
-}
-
-void UmlClassifier::addSubstitution(UmlSubstitution *substitution)
-{
- // This is a read-write association end
-
- if (!_substitution.contains(substitution)) {
- _substitution.insert(substitution);
-
- // Adjust subsetted properties
- addOwnedElement(substitution);
- addClientDependency(substitution);
-
- // Adjust opposite properties
- if (substitution) {
- substitution->setSubstitutingClassifier(this);
- }
- }
-}
-
-void UmlClassifier::removeSubstitution(UmlSubstitution *substitution)
-{
- // This is a read-write association end
-
- if (_substitution.contains(substitution)) {
- _substitution.remove(substitution);
-
- // Adjust subsetted properties
- removeOwnedElement(substitution);
- removeClientDependency(substitution);
-
- // Adjust opposite properties
- if (substitution) {
- substitution->setSubstitutingClassifier(0);
- }
- }
-}
-
-UmlClassifierTemplateParameter *UmlClassifier::templateParameter() const
-{
- // This is a read-write association end
-
- return _templateParameter;
-}
-
-void UmlClassifier::setTemplateParameter(UmlClassifierTemplateParameter *templateParameter)
-{
- // This is a read-write association end
-
- if (_templateParameter != templateParameter) {
- _templateParameter = templateParameter;
- }
-}
-
-const QSet<UmlUseCase *> UmlClassifier::useCase() const
-{
- // This is a read-write association end
-
- return _useCase;
-}
-
-void UmlClassifier::addUseCase(UmlUseCase *useCase)
-{
- // This is a read-write association end
-
- if (!_useCase.contains(useCase)) {
- _useCase.insert(useCase);
-
- // Adjust opposite properties
- if (useCase) {
- useCase->addSubject(this);
- }
- }
-}
-
-void UmlClassifier::removeUseCase(UmlUseCase *useCase)
-{
- // This is a read-write association end
-
- if (_useCase.contains(useCase)) {
- _useCase.remove(useCase);
-
- // Adjust opposite properties
- if (useCase) {
- useCase->removeSubject(this);
- }
- }
-}
-
-// OPERATIONS
-
-QSet<UmlFeature *> UmlClassifier::allFeatures(
- ) const
-{
- qWarning("UmlClassifier::allFeatures(): to be implemented (operation)");
-
- return QSet<UmlFeature *> ();
-}
-
-QSet<UmlClassifier *> UmlClassifier::allParents(
- ) const
-{
- qWarning("UmlClassifier::allParents(): to be implemented (operation)");
-
- return QSet<UmlClassifier *> ();
-}
-
-bool UmlClassifier::conformsTo(
- UmlClassifier *other) const
-{
- qWarning("UmlClassifier::conformsTo(): to be implemented (operation)");
-
- Q_UNUSED(other);
- return bool ();
-}
-
-bool UmlClassifier::hasVisibilityOf(
- UmlNamedElement *n) const
-{
- qWarning("UmlClassifier::hasVisibilityOf(): to be implemented (operation)");
-
- Q_UNUSED(n);
- return bool ();
-}
-
-QSet<UmlNamedElement *> UmlClassifier::inherit(
- QSet<UmlNamedElement *> inhs) const
-{
- qWarning("UmlClassifier::inherit(): to be implemented (operation)");
-
- Q_UNUSED(inhs);
- return QSet<UmlNamedElement *> ();
-}
-
-QSet<UmlNamedElement *> UmlClassifier::inheritableMembers(
- UmlClassifier *c) const
-{
- qWarning("UmlClassifier::inheritableMembers(): to be implemented (operation)");
-
- Q_UNUSED(c);
- return QSet<UmlNamedElement *> ();
-}
-
-bool UmlClassifier::isTemplate(
- ) const
-{
- qWarning("UmlClassifier::isTemplate(): to be implemented (operation)");
-
- return bool ();
-}
-
-bool UmlClassifier::maySpecializeType(
- UmlClassifier *c) const
-{
- qWarning("UmlClassifier::maySpecializeType(): to be implemented (operation)");
-
- Q_UNUSED(c);
- return bool ();
-}
-
-QSet<UmlClassifier *> UmlClassifier::parents(
- ) const
-{
- qWarning("UmlClassifier::parents(): to be implemented (operation)");
-
- return QSet<UmlClassifier *> ();
-}
-
diff --git a/src/uml/internal/umlclassifier_p.h b/src/uml/internal/umlclassifier_p.h
deleted file mode 100644
index 1b1aa305..00000000
--- a/src/uml/internal/umlclassifier_p.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLASSIFIER_H
-#define UMLCLASSIFIER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamespace_p.h"
-#include "private/umltype_p.h"
-#include "private/umlredefinableelement_p.h"
-#include "private/umltemplateableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifierTemplateParameter;
-class UmlCollaborationUse;
-class UmlFeature;
-class UmlGeneralization;
-class UmlGeneralizationSet;
-class UmlNamedElement;
-class UmlProperty;
-class UmlRedefinableTemplateSignature;
-class UmlSubstitution;
-class UmlUseCase;
-
-class Q_UML_EXPORT UmlClassifier : public UmlNamespace, public UmlType, public UmlRedefinableElement, public UmlTemplateableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlClassifier();
-
- // Owned attributes
- const QSet<UmlProperty *> attribute() const;
- Q_DECL_HIDDEN void addAttribute(UmlProperty *attribute);
- Q_DECL_HIDDEN void removeAttribute(UmlProperty *attribute);
- const QSet<UmlCollaborationUse *> collaborationUse() const;
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- const QSet<UmlFeature *> feature() const;
- Q_DECL_HIDDEN void addFeature(UmlFeature *feature);
- Q_DECL_HIDDEN void removeFeature(UmlFeature *feature);
- const QSet<UmlClassifier *> general() const;
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- const QSet<UmlGeneralization *> generalization() const;
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- const QSet<UmlNamedElement *> inheritedMember() const;
- Q_DECL_HIDDEN void addInheritedMember(UmlNamedElement *inheritedMember);
- Q_DECL_HIDDEN void removeInheritedMember(UmlNamedElement *inheritedMember);
- bool isAbstract() const;
- void setAbstract(bool isAbstract);
- bool isFinalSpecialization() const;
- void setFinalSpecialization(bool isFinalSpecialization);
- UmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- void setOwnedTemplateSignature(UmlRedefinableTemplateSignature *ownedTemplateSignature);
- const QSet<UmlUseCase *> ownedUseCase() const;
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- const QSet<UmlGeneralizationSet *> powertypeExtent() const;
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- const QSet<UmlClassifier *> redefinedClassifier() const;
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- UmlCollaborationUse *representation() const;
- void setRepresentation(UmlCollaborationUse *representation);
- const QSet<UmlSubstitution *> substitution() const;
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- UmlClassifierTemplateParameter *templateParameter() const;
- void setTemplateParameter(UmlClassifierTemplateParameter *templateParameter);
- const QSet<UmlUseCase *> useCase() const;
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Operations
- QSet<UmlFeature *> allFeatures() const;
- QSet<UmlClassifier *> allParents() const;
- bool conformsTo(UmlClassifier *other) const;
- bool hasVisibilityOf(UmlNamedElement *n) const;
- QSet<UmlNamedElement *> inherit(QSet<UmlNamedElement *> inhs) const;
- QSet<UmlNamedElement *> inheritableMembers(UmlClassifier *c) const;
- bool isTemplate() const;
- bool maySpecializeType(UmlClassifier *c) const;
- QSet<UmlClassifier *> parents() const;
-
-protected:
- QSet<UmlProperty *> _attribute;
- QSet<UmlCollaborationUse *> _collaborationUse;
- QSet<UmlFeature *> _feature;
- QSet<UmlGeneralization *> _generalization;
- bool _isAbstract;
- bool _isFinalSpecialization;
- UmlRedefinableTemplateSignature *_ownedTemplateSignature;
- QSet<UmlUseCase *> _ownedUseCase;
- QSet<UmlGeneralizationSet *> _powertypeExtent;
- QSet<UmlClassifier *> _redefinedClassifier;
- UmlCollaborationUse *_representation;
- QSet<UmlSubstitution *> _substitution;
- UmlClassifierTemplateParameter *_templateParameter;
- QSet<UmlUseCase *> _useCase;
-};
-
-#endif // UMLCLASSIFIER_H
-
diff --git a/src/uml/internal/umlclassifiertemplateparameter.cpp b/src/uml/internal/umlclassifiertemplateparameter.cpp
deleted file mode 100644
index a36e8013..00000000
--- a/src/uml/internal/umlclassifiertemplateparameter.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclassifiertemplateparameter_p.h"
-
-#include "private/umlclassifier_p.h"
-
-UmlClassifierTemplateParameter::UmlClassifierTemplateParameter() :
- _allowSubstitutable(true),
- _parameteredElement(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlClassifierTemplateParameter::allowSubstitutable() const
-{
- // This is a read-write property
-
- return _allowSubstitutable;
-}
-
-void UmlClassifierTemplateParameter::setAllowSubstitutable(bool allowSubstitutable)
-{
- // This is a read-write property
-
- if (_allowSubstitutable != allowSubstitutable) {
- _allowSubstitutable = allowSubstitutable;
- }
-}
-
-const QSet<UmlClassifier *> UmlClassifierTemplateParameter::constrainingClassifier() const
-{
- // This is a read-write association end
-
- return _constrainingClassifier;
-}
-
-void UmlClassifierTemplateParameter::addConstrainingClassifier(UmlClassifier *constrainingClassifier)
-{
- // This is a read-write association end
-
- if (!_constrainingClassifier.contains(constrainingClassifier)) {
- _constrainingClassifier.insert(constrainingClassifier);
- }
-}
-
-void UmlClassifierTemplateParameter::removeConstrainingClassifier(UmlClassifier *constrainingClassifier)
-{
- // This is a read-write association end
-
- if (_constrainingClassifier.contains(constrainingClassifier)) {
- _constrainingClassifier.remove(constrainingClassifier);
- }
-}
-
-UmlClassifier *UmlClassifierTemplateParameter::parameteredElement() const
-{
- // This is a read-write association end
-
- return _parameteredElement;
-}
-
-void UmlClassifierTemplateParameter::setParameteredElement(UmlClassifier *parameteredElement)
-{
- // This is a read-write association end
-
- if (_parameteredElement != parameteredElement) {
- _parameteredElement = parameteredElement;
- }
-}
-
diff --git a/src/uml/internal/umlclassifiertemplateparameter_p.h b/src/uml/internal/umlclassifiertemplateparameter_p.h
deleted file mode 100644
index 5e245bf7..00000000
--- a/src/uml/internal/umlclassifiertemplateparameter_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLASSIFIERTEMPLATEPARAMETER_H
-#define UMLCLASSIFIERTEMPLATEPARAMETER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltemplateparameter_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-
-class Q_UML_EXPORT UmlClassifierTemplateParameter : public UmlTemplateParameter
-{
-public:
- Q_DECL_HIDDEN explicit UmlClassifierTemplateParameter();
-
- // Owned attributes
- bool allowSubstitutable() const;
- void setAllowSubstitutable(bool allowSubstitutable);
- const QSet<UmlClassifier *> constrainingClassifier() const;
- void addConstrainingClassifier(UmlClassifier *constrainingClassifier);
- void removeConstrainingClassifier(UmlClassifier *constrainingClassifier);
- UmlClassifier *parameteredElement() const;
- void setParameteredElement(UmlClassifier *parameteredElement);
-
-protected:
- bool _allowSubstitutable;
- QSet<UmlClassifier *> _constrainingClassifier;
- UmlClassifier *_parameteredElement;
-};
-
-#endif // UMLCLASSIFIERTEMPLATEPARAMETER_H
-
diff --git a/src/uml/internal/umlclause.cpp b/src/uml/internal/umlclause.cpp
deleted file mode 100644
index 896c899a..00000000
--- a/src/uml/internal/umlclause.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclause_p.h"
-
-#include "private/umlexecutablenode_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlClause::UmlClause() :
- _decider(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlExecutableNode *> UmlClause::body() const
-{
- // This is a read-write association end
-
- return _body;
-}
-
-void UmlClause::addBody(UmlExecutableNode *body)
-{
- // This is a read-write association end
-
- if (!_body.contains(body)) {
- _body.insert(body);
- }
-}
-
-void UmlClause::removeBody(UmlExecutableNode *body)
-{
- // This is a read-write association end
-
- if (_body.contains(body)) {
- _body.remove(body);
- }
-}
-
-const QList<UmlOutputPin *> UmlClause::bodyOutput() const
-{
- // This is a read-write association end
-
- return _bodyOutput;
-}
-
-void UmlClause::addBodyOutput(UmlOutputPin *bodyOutput)
-{
- // This is a read-write association end
-
- if (!_bodyOutput.contains(bodyOutput)) {
- _bodyOutput.append(bodyOutput);
- }
-}
-
-void UmlClause::removeBodyOutput(UmlOutputPin *bodyOutput)
-{
- // This is a read-write association end
-
- if (_bodyOutput.contains(bodyOutput)) {
- _bodyOutput.removeAll(bodyOutput);
- }
-}
-
-UmlOutputPin *UmlClause::decider() const
-{
- // This is a read-write association end
-
- return _decider;
-}
-
-void UmlClause::setDecider(UmlOutputPin *decider)
-{
- // This is a read-write association end
-
- if (_decider != decider) {
- _decider = decider;
- }
-}
-
-const QSet<UmlClause *> UmlClause::predecessorClause() const
-{
- // This is a read-write association end
-
- return _predecessorClause;
-}
-
-void UmlClause::addPredecessorClause(UmlClause *predecessorClause)
-{
- // This is a read-write association end
-
- if (!_predecessorClause.contains(predecessorClause)) {
- _predecessorClause.insert(predecessorClause);
- }
-}
-
-void UmlClause::removePredecessorClause(UmlClause *predecessorClause)
-{
- // This is a read-write association end
-
- if (_predecessorClause.contains(predecessorClause)) {
- _predecessorClause.remove(predecessorClause);
- }
-}
-
-const QSet<UmlClause *> UmlClause::successorClause() const
-{
- // This is a read-write association end
-
- return _successorClause;
-}
-
-void UmlClause::addSuccessorClause(UmlClause *successorClause)
-{
- // This is a read-write association end
-
- if (!_successorClause.contains(successorClause)) {
- _successorClause.insert(successorClause);
- }
-}
-
-void UmlClause::removeSuccessorClause(UmlClause *successorClause)
-{
- // This is a read-write association end
-
- if (_successorClause.contains(successorClause)) {
- _successorClause.remove(successorClause);
- }
-}
-
-const QSet<UmlExecutableNode *> UmlClause::test() const
-{
- // This is a read-write association end
-
- return _test;
-}
-
-void UmlClause::addTest(UmlExecutableNode *test)
-{
- // This is a read-write association end
-
- if (!_test.contains(test)) {
- _test.insert(test);
- }
-}
-
-void UmlClause::removeTest(UmlExecutableNode *test)
-{
- // This is a read-write association end
-
- if (_test.contains(test)) {
- _test.remove(test);
- }
-}
-
diff --git a/src/uml/internal/umlclause_p.h b/src/uml/internal/umlclause_p.h
deleted file mode 100644
index 11063fb3..00000000
--- a/src/uml/internal/umlclause_p.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLAUSE_H
-#define UMLCLAUSE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlExecutableNode;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlClause : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlClause();
-
- // Owned attributes
- const QSet<UmlExecutableNode *> body() const;
- void addBody(UmlExecutableNode *body);
- void removeBody(UmlExecutableNode *body);
- const QList<UmlOutputPin *> bodyOutput() const;
- void addBodyOutput(UmlOutputPin *bodyOutput);
- void removeBodyOutput(UmlOutputPin *bodyOutput);
- UmlOutputPin *decider() const;
- void setDecider(UmlOutputPin *decider);
- const QSet<UmlClause *> predecessorClause() const;
- void addPredecessorClause(UmlClause *predecessorClause);
- void removePredecessorClause(UmlClause *predecessorClause);
- const QSet<UmlClause *> successorClause() const;
- void addSuccessorClause(UmlClause *successorClause);
- void removeSuccessorClause(UmlClause *successorClause);
- const QSet<UmlExecutableNode *> test() const;
- void addTest(UmlExecutableNode *test);
- void removeTest(UmlExecutableNode *test);
-
-protected:
- QSet<UmlExecutableNode *> _body;
- QList<UmlOutputPin *> _bodyOutput;
- UmlOutputPin *_decider;
- QSet<UmlClause *> _predecessorClause;
- QSet<UmlClause *> _successorClause;
- QSet<UmlExecutableNode *> _test;
-};
-
-#endif // UMLCLAUSE_H
-
diff --git a/src/uml/internal/umlclearassociationaction.cpp b/src/uml/internal/umlclearassociationaction.cpp
deleted file mode 100644
index 8619005d..00000000
--- a/src/uml/internal/umlclearassociationaction.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclearassociationaction_p.h"
-
-#include "private/umlassociation_p.h"
-#include "private/umlinputpin_p.h"
-
-UmlClearAssociationAction::UmlClearAssociationAction() :
- _association(0),
- _object(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlAssociation *UmlClearAssociationAction::association() const
-{
- // This is a read-write association end
-
- return _association;
-}
-
-void UmlClearAssociationAction::setAssociation(UmlAssociation *association)
-{
- // This is a read-write association end
-
- if (_association != association) {
- _association = association;
- }
-}
-
-UmlInputPin *UmlClearAssociationAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlClearAssociationAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
diff --git a/src/uml/internal/umlclearassociationaction_p.h b/src/uml/internal/umlclearassociationaction_p.h
deleted file mode 100644
index b8f4a13c..00000000
--- a/src/uml/internal/umlclearassociationaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLEARASSOCIATIONACTION_H
-#define UMLCLEARASSOCIATIONACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlAssociation;
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlClearAssociationAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlClearAssociationAction();
-
- // Owned attributes
- UmlAssociation *association() const;
- void setAssociation(UmlAssociation *association);
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
-
-protected:
- UmlAssociation *_association;
- UmlInputPin *_object;
-};
-
-#endif // UMLCLEARASSOCIATIONACTION_H
-
diff --git a/src/uml/internal/umlclearstructuralfeatureaction.cpp b/src/uml/internal/umlclearstructuralfeatureaction.cpp
deleted file mode 100644
index 1a1039bb..00000000
--- a/src/uml/internal/umlclearstructuralfeatureaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclearstructuralfeatureaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlClearStructuralFeatureAction::UmlClearStructuralFeatureAction() :
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlClearStructuralFeatureAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlClearStructuralFeatureAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlclearstructuralfeatureaction_p.h b/src/uml/internal/umlclearstructuralfeatureaction_p.h
deleted file mode 100644
index 376b7ef5..00000000
--- a/src/uml/internal/umlclearstructuralfeatureaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLEARSTRUCTURALFEATUREACTION_H
-#define UMLCLEARSTRUCTURALFEATUREACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuralfeatureaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlClearStructuralFeatureAction : public UmlStructuralFeatureAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlClearStructuralFeatureAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlOutputPin *_result;
-};
-
-#endif // UMLCLEARSTRUCTURALFEATUREACTION_H
-
diff --git a/src/uml/internal/umlclearvariableaction.cpp b/src/uml/internal/umlclearvariableaction.cpp
deleted file mode 100644
index 93b48377..00000000
--- a/src/uml/internal/umlclearvariableaction.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlclearvariableaction_p.h"
-
-UmlClearVariableAction::UmlClearVariableAction()
-{
-}
-
diff --git a/src/uml/internal/umlclearvariableaction_p.h b/src/uml/internal/umlclearvariableaction_p.h
deleted file mode 100644
index a28a9746..00000000
--- a/src/uml/internal/umlclearvariableaction_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCLEARVARIABLEACTION_H
-#define UMLCLEARVARIABLEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvariableaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlClearVariableAction : public UmlVariableAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlClearVariableAction();
-
-protected:
-};
-
-#endif // UMLCLEARVARIABLEACTION_H
-
diff --git a/src/uml/internal/umlcollaboration.cpp b/src/uml/internal/umlcollaboration.cpp
deleted file mode 100644
index 2f9db0bd..00000000
--- a/src/uml/internal/umlcollaboration.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcollaboration_p.h"
-
-#include "private/umlconnectableelement_p.h"
-
-UmlCollaboration::UmlCollaboration()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlConnectableElement *> UmlCollaboration::collaborationRole() const
-{
- // This is a read-write association end
-
- return _collaborationRole;
-}
-
-void UmlCollaboration::addCollaborationRole(UmlConnectableElement *collaborationRole)
-{
- // This is a read-write association end
-
- if (!_collaborationRole.contains(collaborationRole)) {
- _collaborationRole.insert(collaborationRole);
-
- // Adjust subsetted properties
- addRole(collaborationRole);
- }
-}
-
-void UmlCollaboration::removeCollaborationRole(UmlConnectableElement *collaborationRole)
-{
- // This is a read-write association end
-
- if (_collaborationRole.contains(collaborationRole)) {
- _collaborationRole.remove(collaborationRole);
-
- // Adjust subsetted properties
- removeRole(collaborationRole);
- }
-}
-
diff --git a/src/uml/internal/umlcollaboration_p.h b/src/uml/internal/umlcollaboration_p.h
deleted file mode 100644
index d2ecdc54..00000000
--- a/src/uml/internal/umlcollaboration_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOLLABORATION_H
-#define UMLCOLLABORATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuredclassifier_p.h"
-#include "private/umlbehavioredclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConnectableElement;
-
-class Q_UML_EXPORT UmlCollaboration : public UmlStructuredClassifier, public UmlBehavioredClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlCollaboration();
-
- // Owned attributes
- const QSet<UmlConnectableElement *> collaborationRole() const;
- void addCollaborationRole(UmlConnectableElement *collaborationRole);
- void removeCollaborationRole(UmlConnectableElement *collaborationRole);
-
-protected:
- QSet<UmlConnectableElement *> _collaborationRole;
-};
-
-#endif // UMLCOLLABORATION_H
-
diff --git a/src/uml/internal/umlcollaborationuse.cpp b/src/uml/internal/umlcollaborationuse.cpp
deleted file mode 100644
index bbac14b0..00000000
--- a/src/uml/internal/umlcollaborationuse.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcollaborationuse_p.h"
-
-#include "private/umlcollaboration_p.h"
-#include "private/umldependency_p.h"
-
-UmlCollaborationUse::UmlCollaborationUse() :
- _type(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlDependency *> UmlCollaborationUse::roleBinding() const
-{
- // This is a read-write association end
-
- return _roleBinding;
-}
-
-void UmlCollaborationUse::addRoleBinding(UmlDependency *roleBinding)
-{
- // This is a read-write association end
-
- if (!_roleBinding.contains(roleBinding)) {
- _roleBinding.insert(roleBinding);
-
- // Adjust subsetted properties
- addOwnedElement(roleBinding);
- }
-}
-
-void UmlCollaborationUse::removeRoleBinding(UmlDependency *roleBinding)
-{
- // This is a read-write association end
-
- if (_roleBinding.contains(roleBinding)) {
- _roleBinding.remove(roleBinding);
-
- // Adjust subsetted properties
- removeOwnedElement(roleBinding);
- }
-}
-
-UmlCollaboration *UmlCollaborationUse::type() const
-{
- // This is a read-write association end
-
- return _type;
-}
-
-void UmlCollaborationUse::setType(UmlCollaboration *type)
-{
- // This is a read-write association end
-
- if (_type != type) {
- _type = type;
- }
-}
-
diff --git a/src/uml/internal/umlcollaborationuse_p.h b/src/uml/internal/umlcollaborationuse_p.h
deleted file mode 100644
index a950383a..00000000
--- a/src/uml/internal/umlcollaborationuse_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOLLABORATIONUSE_H
-#define UMLCOLLABORATIONUSE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlCollaboration;
-class UmlDependency;
-
-class Q_UML_EXPORT UmlCollaborationUse : public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlCollaborationUse();
-
- // Owned attributes
- const QSet<UmlDependency *> roleBinding() const;
- void addRoleBinding(UmlDependency *roleBinding);
- void removeRoleBinding(UmlDependency *roleBinding);
- UmlCollaboration *type() const;
- void setType(UmlCollaboration *type);
-
-protected:
- QSet<UmlDependency *> _roleBinding;
- UmlCollaboration *_type;
-};
-
-#endif // UMLCOLLABORATIONUSE_H
-
diff --git a/src/uml/internal/umlcombinedfragment.cpp b/src/uml/internal/umlcombinedfragment.cpp
deleted file mode 100644
index 164a87c6..00000000
--- a/src/uml/internal/umlcombinedfragment.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcombinedfragment_p.h"
-
-#include "private/umlgate_p.h"
-#include "private/umlinteractionoperand_p.h"
-
-UmlCombinedFragment::UmlCombinedFragment() :
- _interactionOperator(QtUml::InteractionOperatorKindSeq)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlGate *> UmlCombinedFragment::cfragmentGate() const
-{
- // This is a read-write association end
-
- return _cfragmentGate;
-}
-
-void UmlCombinedFragment::addCfragmentGate(UmlGate *cfragmentGate)
-{
- // This is a read-write association end
-
- if (!_cfragmentGate.contains(cfragmentGate)) {
- _cfragmentGate.insert(cfragmentGate);
-
- // Adjust subsetted properties
- addOwnedElement(cfragmentGate);
- }
-}
-
-void UmlCombinedFragment::removeCfragmentGate(UmlGate *cfragmentGate)
-{
- // This is a read-write association end
-
- if (_cfragmentGate.contains(cfragmentGate)) {
- _cfragmentGate.remove(cfragmentGate);
-
- // Adjust subsetted properties
- removeOwnedElement(cfragmentGate);
- }
-}
-
-QtUml::InteractionOperatorKind UmlCombinedFragment::interactionOperator() const
-{
- // This is a read-write property
-
- return _interactionOperator;
-}
-
-void UmlCombinedFragment::setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator)
-{
- // This is a read-write property
-
- if (_interactionOperator != interactionOperator) {
- _interactionOperator = interactionOperator;
- }
-}
-
-const QList<UmlInteractionOperand *> UmlCombinedFragment::operand() const
-{
- // This is a read-write association end
-
- return _operand;
-}
-
-void UmlCombinedFragment::addOperand(UmlInteractionOperand *operand)
-{
- // This is a read-write association end
-
- if (!_operand.contains(operand)) {
- _operand.append(operand);
-
- // Adjust subsetted properties
- addOwnedElement(operand);
- }
-}
-
-void UmlCombinedFragment::removeOperand(UmlInteractionOperand *operand)
-{
- // This is a read-write association end
-
- if (_operand.contains(operand)) {
- _operand.removeAll(operand);
-
- // Adjust subsetted properties
- removeOwnedElement(operand);
- }
-}
-
diff --git a/src/uml/internal/umlcombinedfragment_p.h b/src/uml/internal/umlcombinedfragment_p.h
deleted file mode 100644
index 75ce48a9..00000000
--- a/src/uml/internal/umlcombinedfragment_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOMBINEDFRAGMENT_H
-#define UMLCOMBINEDFRAGMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlGate;
-class UmlInteractionOperand;
-
-class Q_UML_EXPORT UmlCombinedFragment : public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlCombinedFragment();
-
- // Owned attributes
- const QSet<UmlGate *> cfragmentGate() const;
- void addCfragmentGate(UmlGate *cfragmentGate);
- void removeCfragmentGate(UmlGate *cfragmentGate);
- QtUml::InteractionOperatorKind interactionOperator() const;
- void setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator);
- const QList<UmlInteractionOperand *> operand() const;
- void addOperand(UmlInteractionOperand *operand);
- void removeOperand(UmlInteractionOperand *operand);
-
-protected:
- QSet<UmlGate *> _cfragmentGate;
- QtUml::InteractionOperatorKind _interactionOperator;
- QList<UmlInteractionOperand *> _operand;
-};
-
-#endif // UMLCOMBINEDFRAGMENT_H
-
diff --git a/src/uml/internal/umlcomment.cpp b/src/uml/internal/umlcomment.cpp
deleted file mode 100644
index a0ec587b..00000000
--- a/src/uml/internal/umlcomment.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcomment_p.h"
-
-UmlComment::UmlComment()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlElement *> UmlComment::annotatedElement() const
-{
- // This is a read-write association end
-
- return _annotatedElement;
-}
-
-void UmlComment::addAnnotatedElement(UmlElement *annotatedElement)
-{
- // This is a read-write association end
-
- if (!_annotatedElement.contains(annotatedElement)) {
- _annotatedElement.insert(annotatedElement);
- }
-}
-
-void UmlComment::removeAnnotatedElement(UmlElement *annotatedElement)
-{
- // This is a read-write association end
-
- if (_annotatedElement.contains(annotatedElement)) {
- _annotatedElement.remove(annotatedElement);
- }
-}
-
-QString UmlComment::body() const
-{
- // This is a read-write property
-
- return _body;
-}
-
-void UmlComment::setBody(QString body)
-{
- // This is a read-write property
-
- if (_body != body) {
- _body = body;
- }
-}
-
diff --git a/src/uml/internal/umlcomment_p.h b/src/uml/internal/umlcomment_p.h
deleted file mode 100644
index 3d0e3457..00000000
--- a/src/uml/internal/umlcomment_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOMMENT_H
-#define UMLCOMMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlComment : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlComment();
-
- // Owned attributes
- const QSet<UmlElement *> annotatedElement() const;
- void addAnnotatedElement(UmlElement *annotatedElement);
- void removeAnnotatedElement(UmlElement *annotatedElement);
- QString body() const;
- void setBody(QString body);
-
-protected:
- QSet<UmlElement *> _annotatedElement;
- QString _body;
-};
-
-#endif // UMLCOMMENT_H
-
diff --git a/src/uml/internal/umlcommunicationpath.cpp b/src/uml/internal/umlcommunicationpath.cpp
deleted file mode 100644
index db550eb4..00000000
--- a/src/uml/internal/umlcommunicationpath.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcommunicationpath_p.h"
-
-UmlCommunicationPath::UmlCommunicationPath()
-{
-}
-
diff --git a/src/uml/internal/umlcommunicationpath_p.h b/src/uml/internal/umlcommunicationpath_p.h
deleted file mode 100644
index ad665dc3..00000000
--- a/src/uml/internal/umlcommunicationpath_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOMMUNICATIONPATH_H
-#define UMLCOMMUNICATIONPATH_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlassociation_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlCommunicationPath : public UmlAssociation
-{
-public:
- Q_DECL_HIDDEN explicit UmlCommunicationPath();
-
-protected:
-};
-
-#endif // UMLCOMMUNICATIONPATH_H
-
diff --git a/src/uml/internal/umlcomponent.cpp b/src/uml/internal/umlcomponent.cpp
deleted file mode 100644
index b82c1247..00000000
--- a/src/uml/internal/umlcomponent.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcomponent_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlcomponentrealization_p.h"
-#include "private/umlinterface_p.h"
-#include "private/umlpackageableelement_p.h"
-
-UmlComponent::UmlComponent() :
- _isIndirectlyInstantiated(true)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlComponent::isIndirectlyInstantiated() const
-{
- // This is a read-write property
-
- return _isIndirectlyInstantiated;
-}
-
-void UmlComponent::setIndirectlyInstantiated(bool isIndirectlyInstantiated)
-{
- // This is a read-write property
-
- if (_isIndirectlyInstantiated != isIndirectlyInstantiated) {
- _isIndirectlyInstantiated = isIndirectlyInstantiated;
- }
-}
-
-const QSet<UmlPackageableElement *> UmlComponent::packagedElement() const
-{
- // This is a read-write association end
-
- return _packagedElement;
-}
-
-void UmlComponent::addPackagedElement(UmlPackageableElement *packagedElement)
-{
- // This is a read-write association end
-
- if (!_packagedElement.contains(packagedElement)) {
- _packagedElement.insert(packagedElement);
-
- // Adjust subsetted properties
- addOwnedMember(packagedElement);
- }
-}
-
-void UmlComponent::removePackagedElement(UmlPackageableElement *packagedElement)
-{
- // This is a read-write association end
-
- if (_packagedElement.contains(packagedElement)) {
- _packagedElement.remove(packagedElement);
-
- // Adjust subsetted properties
- removeOwnedMember(packagedElement);
- }
-}
-
-const QSet<UmlInterface *> UmlComponent::provided() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlComponent::provided(): to be implemented (this is a derived association end)");
-
- return QSet<UmlInterface *>();
-}
-
-void UmlComponent::addProvided(UmlInterface *provided)
-{
- // This is a read-only derived association end
-
- qWarning("UmlComponent::provided(): to be implemented (this is a derived association end)");
- Q_UNUSED(provided);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlComponent::removeProvided(UmlInterface *provided)
-{
- // This is a read-only derived association end
-
- qWarning("UmlComponent::provided(): to be implemented (this is a derived association end)");
- Q_UNUSED(provided);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlComponentRealization *> UmlComponent::realization() const
-{
- // This is a read-write association end
-
- return _realization;
-}
-
-void UmlComponent::addRealization(UmlComponentRealization *realization)
-{
- // This is a read-write association end
-
- if (!_realization.contains(realization)) {
- _realization.insert(realization);
-
- // Adjust subsetted properties
- addOwnedElement(realization);
-
- // Adjust opposite properties
- if (realization) {
- realization->setAbstraction(this);
- }
- }
-}
-
-void UmlComponent::removeRealization(UmlComponentRealization *realization)
-{
- // This is a read-write association end
-
- if (_realization.contains(realization)) {
- _realization.remove(realization);
-
- // Adjust subsetted properties
- removeOwnedElement(realization);
-
- // Adjust opposite properties
- if (realization) {
- realization->setAbstraction(0);
- }
- }
-}
-
-const QSet<UmlInterface *> UmlComponent::required() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlComponent::required(): to be implemented (this is a derived association end)");
-
- return QSet<UmlInterface *>();
-}
-
-void UmlComponent::addRequired(UmlInterface *required)
-{
- // This is a read-only derived association end
-
- qWarning("UmlComponent::required(): to be implemented (this is a derived association end)");
- Q_UNUSED(required);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlComponent::removeRequired(UmlInterface *required)
-{
- // This is a read-only derived association end
-
- qWarning("UmlComponent::required(): to be implemented (this is a derived association end)");
- Q_UNUSED(required);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-// OPERATIONS
-
-QSet<UmlInterface *> UmlComponent::realizedInterfaces(
- UmlClassifier *classifier) const
-{
- qWarning("UmlComponent::realizedInterfaces(): to be implemented (operation)");
-
- Q_UNUSED(classifier);
- return QSet<UmlInterface *> ();
-}
-
-QSet<UmlInterface *> UmlComponent::usedInterfaces(
- UmlClassifier *classifier) const
-{
- qWarning("UmlComponent::usedInterfaces(): to be implemented (operation)");
-
- Q_UNUSED(classifier);
- return QSet<UmlInterface *> ();
-}
-
diff --git a/src/uml/internal/umlcomponent_p.h b/src/uml/internal/umlcomponent_p.h
deleted file mode 100644
index 262cecf5..00000000
--- a/src/uml/internal/umlcomponent_p.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOMPONENT_H
-#define UMLCOMPONENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclass_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlComponentRealization;
-class UmlInterface;
-class UmlPackageableElement;
-
-class Q_UML_EXPORT UmlComponent : public UmlClass
-{
-public:
- Q_DECL_HIDDEN explicit UmlComponent();
-
- // Owned attributes
- bool isIndirectlyInstantiated() const;
- void setIndirectlyInstantiated(bool isIndirectlyInstantiated);
- const QSet<UmlPackageableElement *> packagedElement() const;
- void addPackagedElement(UmlPackageableElement *packagedElement);
- void removePackagedElement(UmlPackageableElement *packagedElement);
- const QSet<UmlInterface *> provided() const;
- Q_DECL_HIDDEN void addProvided(UmlInterface *provided);
- Q_DECL_HIDDEN void removeProvided(UmlInterface *provided);
- const QSet<UmlComponentRealization *> realization() const;
- void addRealization(UmlComponentRealization *realization);
- void removeRealization(UmlComponentRealization *realization);
- const QSet<UmlInterface *> required() const;
- Q_DECL_HIDDEN void addRequired(UmlInterface *required);
- Q_DECL_HIDDEN void removeRequired(UmlInterface *required);
-
- // Operations
- QSet<UmlInterface *> realizedInterfaces(UmlClassifier *classifier) const;
- QSet<UmlInterface *> usedInterfaces(UmlClassifier *classifier) const;
-
-protected:
- bool _isIndirectlyInstantiated;
- QSet<UmlPackageableElement *> _packagedElement;
- QSet<UmlComponentRealization *> _realization;
-};
-
-#endif // UMLCOMPONENT_H
-
diff --git a/src/uml/internal/umlcomponentrealization.cpp b/src/uml/internal/umlcomponentrealization.cpp
deleted file mode 100644
index db06d06c..00000000
--- a/src/uml/internal/umlcomponentrealization.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcomponentrealization_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlcomponent_p.h"
-
-UmlComponentRealization::UmlComponentRealization() :
- _abstraction(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlComponent *UmlComponentRealization::abstraction() const
-{
- // This is a read-write association end
-
- return _abstraction;
-}
-
-void UmlComponentRealization::setAbstraction(UmlComponent *abstraction)
-{
- // This is a read-write association end
-
- if (_abstraction != abstraction) {
- // Adjust subsetted properties
- removeSupplier(_abstraction);
-
- _abstraction = abstraction;
-
- // Adjust subsetted properties
- if (abstraction) {
- addSupplier(abstraction);
- }
- setOwner(abstraction);
- }
-}
-
-const QSet<UmlClassifier *> UmlComponentRealization::realizingClassifier() const
-{
- // This is a read-write association end
-
- return _realizingClassifier;
-}
-
-void UmlComponentRealization::addRealizingClassifier(UmlClassifier *realizingClassifier)
-{
- // This is a read-write association end
-
- if (!_realizingClassifier.contains(realizingClassifier)) {
- _realizingClassifier.insert(realizingClassifier);
-
- // Adjust subsetted properties
- addClient(realizingClassifier);
- }
-}
-
-void UmlComponentRealization::removeRealizingClassifier(UmlClassifier *realizingClassifier)
-{
- // This is a read-write association end
-
- if (_realizingClassifier.contains(realizingClassifier)) {
- _realizingClassifier.remove(realizingClassifier);
-
- // Adjust subsetted properties
- removeClient(realizingClassifier);
- }
-}
-
diff --git a/src/uml/internal/umlcomponentrealization_p.h b/src/uml/internal/umlcomponentrealization_p.h
deleted file mode 100644
index e274c4d2..00000000
--- a/src/uml/internal/umlcomponentrealization_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCOMPONENTREALIZATION_H
-#define UMLCOMPONENTREALIZATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlrealization_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlComponent;
-
-class Q_UML_EXPORT UmlComponentRealization : public UmlRealization
-{
-public:
- Q_DECL_HIDDEN explicit UmlComponentRealization();
-
- // Owned attributes
- UmlComponent *abstraction() const;
- void setAbstraction(UmlComponent *abstraction);
- const QSet<UmlClassifier *> realizingClassifier() const;
- void addRealizingClassifier(UmlClassifier *realizingClassifier);
- void removeRealizingClassifier(UmlClassifier *realizingClassifier);
-
-protected:
- UmlComponent *_abstraction;
- QSet<UmlClassifier *> _realizingClassifier;
-};
-
-#endif // UMLCOMPONENTREALIZATION_H
-
diff --git a/src/uml/internal/umlconditionalnode.cpp b/src/uml/internal/umlconditionalnode.cpp
deleted file mode 100644
index a40a365b..00000000
--- a/src/uml/internal/umlconditionalnode.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconditionalnode_p.h"
-
-#include "private/umlclause_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlConditionalNode::UmlConditionalNode() :
- _isAssured(false),
- _isDeterminate(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlClause *> UmlConditionalNode::clause() const
-{
- // This is a read-write association end
-
- return _clause;
-}
-
-void UmlConditionalNode::addClause(UmlClause *clause)
-{
- // This is a read-write association end
-
- if (!_clause.contains(clause)) {
- _clause.insert(clause);
-
- // Adjust subsetted properties
- addOwnedElement(clause);
- }
-}
-
-void UmlConditionalNode::removeClause(UmlClause *clause)
-{
- // This is a read-write association end
-
- if (_clause.contains(clause)) {
- _clause.remove(clause);
-
- // Adjust subsetted properties
- removeOwnedElement(clause);
- }
-}
-
-bool UmlConditionalNode::isAssured() const
-{
- // This is a read-write property
-
- return _isAssured;
-}
-
-void UmlConditionalNode::setAssured(bool isAssured)
-{
- // This is a read-write property
-
- if (_isAssured != isAssured) {
- _isAssured = isAssured;
- }
-}
-
-bool UmlConditionalNode::isDeterminate() const
-{
- // This is a read-write property
-
- return _isDeterminate;
-}
-
-void UmlConditionalNode::setDeterminate(bool isDeterminate)
-{
- // This is a read-write property
-
- if (_isDeterminate != isDeterminate) {
- _isDeterminate = isDeterminate;
- }
-}
-
-const QList<UmlOutputPin *> UmlConditionalNode::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlConditionalNode::addResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (!_result.contains(result)) {
- _result.append(result);
- }
-}
-
-void UmlConditionalNode::removeResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result.contains(result)) {
- _result.removeAll(result);
- }
-}
-
diff --git a/src/uml/internal/umlconditionalnode_p.h b/src/uml/internal/umlconditionalnode_p.h
deleted file mode 100644
index b4e47347..00000000
--- a/src/uml/internal/umlconditionalnode_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONDITIONALNODE_H
-#define UMLCONDITIONALNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuredactivitynode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClause;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlConditionalNode : public UmlStructuredActivityNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlConditionalNode();
-
- // Owned attributes
- const QSet<UmlClause *> clause() const;
- void addClause(UmlClause *clause);
- void removeClause(UmlClause *clause);
- bool isAssured() const;
- void setAssured(bool isAssured);
- bool isDeterminate() const;
- void setDeterminate(bool isDeterminate);
- const QList<UmlOutputPin *> result() const;
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
-
-protected:
- QSet<UmlClause *> _clause;
- bool _isAssured;
- bool _isDeterminate;
- QList<UmlOutputPin *> _result;
-};
-
-#endif // UMLCONDITIONALNODE_H
-
diff --git a/src/uml/internal/umlconnectableelement.cpp b/src/uml/internal/umlconnectableelement.cpp
deleted file mode 100644
index f5a28cc4..00000000
--- a/src/uml/internal/umlconnectableelement.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconnectableelement_p.h"
-
-#include "private/umlconnectableelementtemplateparameter_p.h"
-#include "private/umlconnectorend_p.h"
-
-UmlConnectableElement::UmlConnectableElement() :
- _templateParameter(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlConnectorEnd *> UmlConnectableElement::end() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlConnectableElement::end(): to be implemented (this is a derived association end)");
-
- return QList<UmlConnectorEnd *>();
-}
-
-void UmlConnectableElement::addEnd(UmlConnectorEnd *end)
-{
- // This is a read-only derived association end
-
- qWarning("UmlConnectableElement::end(): to be implemented (this is a derived association end)");
- Q_UNUSED(end);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (end) {
- end->setRole(this);
- }
- }
-}
-
-void UmlConnectableElement::removeEnd(UmlConnectorEnd *end)
-{
- // This is a read-only derived association end
-
- qWarning("UmlConnectableElement::end(): to be implemented (this is a derived association end)");
- Q_UNUSED(end);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (end) {
- end->setRole(0);
- }
- }
-}
-
-UmlConnectableElementTemplateParameter *UmlConnectableElement::templateParameter() const
-{
- // This is a read-write association end
-
- return _templateParameter;
-}
-
-void UmlConnectableElement::setTemplateParameter(UmlConnectableElementTemplateParameter *templateParameter)
-{
- // This is a read-write association end
-
- if (_templateParameter != templateParameter) {
- _templateParameter = templateParameter;
- }
-}
-
diff --git a/src/uml/internal/umlconnectableelement_p.h b/src/uml/internal/umlconnectableelement_p.h
deleted file mode 100644
index 15fa56ce..00000000
--- a/src/uml/internal/umlconnectableelement_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONNECTABLEELEMENT_H
-#define UMLCONNECTABLEELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltypedelement_p.h"
-#include "private/umlparameterableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConnectableElementTemplateParameter;
-class UmlConnectorEnd;
-
-class Q_UML_EXPORT UmlConnectableElement : public virtual UmlTypedElement, public UmlParameterableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlConnectableElement();
-
- // Owned attributes
- const QList<UmlConnectorEnd *> end() const;
- Q_DECL_HIDDEN void addEnd(UmlConnectorEnd *end);
- Q_DECL_HIDDEN void removeEnd(UmlConnectorEnd *end);
- UmlConnectableElementTemplateParameter *templateParameter() const;
- void setTemplateParameter(UmlConnectableElementTemplateParameter *templateParameter);
-
-protected:
- UmlConnectableElementTemplateParameter *_templateParameter;
-};
-
-#endif // UMLCONNECTABLEELEMENT_H
-
diff --git a/src/uml/internal/umlconnectableelementtemplateparameter.cpp b/src/uml/internal/umlconnectableelementtemplateparameter.cpp
deleted file mode 100644
index 14c91f17..00000000
--- a/src/uml/internal/umlconnectableelementtemplateparameter.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconnectableelementtemplateparameter_p.h"
-
-#include "private/umlconnectableelement_p.h"
-
-UmlConnectableElementTemplateParameter::UmlConnectableElementTemplateParameter() :
- _parameteredElement(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlConnectableElement *UmlConnectableElementTemplateParameter::parameteredElement() const
-{
- // This is a read-write association end
-
- return _parameteredElement;
-}
-
-void UmlConnectableElementTemplateParameter::setParameteredElement(UmlConnectableElement *parameteredElement)
-{
- // This is a read-write association end
-
- if (_parameteredElement != parameteredElement) {
- _parameteredElement = parameteredElement;
- }
-}
-
diff --git a/src/uml/internal/umlconnectableelementtemplateparameter_p.h b/src/uml/internal/umlconnectableelementtemplateparameter_p.h
deleted file mode 100644
index 13312d12..00000000
--- a/src/uml/internal/umlconnectableelementtemplateparameter_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONNECTABLEELEMENTTEMPLATEPARAMETER_H
-#define UMLCONNECTABLEELEMENTTEMPLATEPARAMETER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltemplateparameter_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConnectableElement;
-
-class Q_UML_EXPORT UmlConnectableElementTemplateParameter : public UmlTemplateParameter
-{
-public:
- Q_DECL_HIDDEN explicit UmlConnectableElementTemplateParameter();
-
- // Owned attributes
- UmlConnectableElement *parameteredElement() const;
- void setParameteredElement(UmlConnectableElement *parameteredElement);
-
-protected:
- UmlConnectableElement *_parameteredElement;
-};
-
-#endif // UMLCONNECTABLEELEMENTTEMPLATEPARAMETER_H
-
diff --git a/src/uml/internal/umlconnectionpointreference.cpp b/src/uml/internal/umlconnectionpointreference.cpp
deleted file mode 100644
index 4e8a5e38..00000000
--- a/src/uml/internal/umlconnectionpointreference.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconnectionpointreference_p.h"
-
-#include "private/umlpseudostate_p.h"
-#include "private/umlstate_p.h"
-
-UmlConnectionPointReference::UmlConnectionPointReference() :
- _state(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlPseudostate *> UmlConnectionPointReference::entry() const
-{
- // This is a read-write association end
-
- return _entry;
-}
-
-void UmlConnectionPointReference::addEntry(UmlPseudostate *entry)
-{
- // This is a read-write association end
-
- if (!_entry.contains(entry)) {
- _entry.insert(entry);
- }
-}
-
-void UmlConnectionPointReference::removeEntry(UmlPseudostate *entry)
-{
- // This is a read-write association end
-
- if (_entry.contains(entry)) {
- _entry.remove(entry);
- }
-}
-
-const QSet<UmlPseudostate *> UmlConnectionPointReference::exit() const
-{
- // This is a read-write association end
-
- return _exit;
-}
-
-void UmlConnectionPointReference::addExit(UmlPseudostate *exit)
-{
- // This is a read-write association end
-
- if (!_exit.contains(exit)) {
- _exit.insert(exit);
- }
-}
-
-void UmlConnectionPointReference::removeExit(UmlPseudostate *exit)
-{
- // This is a read-write association end
-
- if (_exit.contains(exit)) {
- _exit.remove(exit);
- }
-}
-
-UmlState *UmlConnectionPointReference::state() const
-{
- // This is a read-write association end
-
- return _state;
-}
-
-void UmlConnectionPointReference::setState(UmlState *state)
-{
- // This is a read-write association end
-
- if (_state != state) {
- // Adjust subsetted properties
-
- _state = state;
-
- // Adjust subsetted properties
- setNamespace(state);
- }
-}
-
diff --git a/src/uml/internal/umlconnectionpointreference_p.h b/src/uml/internal/umlconnectionpointreference_p.h
deleted file mode 100644
index d9dd6af7..00000000
--- a/src/uml/internal/umlconnectionpointreference_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONNECTIONPOINTREFERENCE_H
-#define UMLCONNECTIONPOINTREFERENCE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvertex_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlPseudostate;
-class UmlState;
-
-class Q_UML_EXPORT UmlConnectionPointReference : public UmlVertex
-{
-public:
- Q_DECL_HIDDEN explicit UmlConnectionPointReference();
-
- // Owned attributes
- const QSet<UmlPseudostate *> entry() const;
- void addEntry(UmlPseudostate *entry);
- void removeEntry(UmlPseudostate *entry);
- const QSet<UmlPseudostate *> exit() const;
- void addExit(UmlPseudostate *exit);
- void removeExit(UmlPseudostate *exit);
- UmlState *state() const;
- void setState(UmlState *state);
-
-protected:
- QSet<UmlPseudostate *> _entry;
- QSet<UmlPseudostate *> _exit;
- UmlState *_state;
-};
-
-#endif // UMLCONNECTIONPOINTREFERENCE_H
-
diff --git a/src/uml/internal/umlconnector.cpp b/src/uml/internal/umlconnector.cpp
deleted file mode 100644
index 9ed3bb30..00000000
--- a/src/uml/internal/umlconnector.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconnector_p.h"
-
-#include "private/umlassociation_p.h"
-#include "private/umlbehavior_p.h"
-#include "private/umlconnectorend_p.h"
-
-UmlConnector::UmlConnector() :
- _type(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlBehavior *> UmlConnector::contract() const
-{
- // This is a read-write association end
-
- return _contract;
-}
-
-void UmlConnector::addContract(UmlBehavior *contract)
-{
- // This is a read-write association end
-
- if (!_contract.contains(contract)) {
- _contract.insert(contract);
- }
-}
-
-void UmlConnector::removeContract(UmlBehavior *contract)
-{
- // This is a read-write association end
-
- if (_contract.contains(contract)) {
- _contract.remove(contract);
- }
-}
-
-const QList<UmlConnectorEnd *> UmlConnector::end() const
-{
- // This is a read-write association end
-
- return _end;
-}
-
-void UmlConnector::addEnd(UmlConnectorEnd *end)
-{
- // This is a read-write association end
-
- if (!_end.contains(end)) {
- _end.append(end);
-
- // Adjust subsetted properties
- addOwnedElement(end);
- }
-}
-
-void UmlConnector::removeEnd(UmlConnectorEnd *end)
-{
- // This is a read-write association end
-
- if (_end.contains(end)) {
- _end.removeAll(end);
-
- // Adjust subsetted properties
- removeOwnedElement(end);
- }
-}
-
-QtUml::ConnectorKind UmlConnector::kind() const
-{
- // This is a read-only derived property
-
- qWarning("UmlConnector::kind(): to be implemented (this is a derived property)");
-
- return QtUml::ConnectorKind();
-}
-
-void UmlConnector::setKind(QtUml::ConnectorKind kind)
-{
- // This is a read-only derived property
-
- qWarning("UmlConnector::kind(): to be implemented (this is a derived property)");
- Q_UNUSED(kind);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlConnector *> UmlConnector::redefinedConnector() const
-{
- // This is a read-write association end
-
- return _redefinedConnector;
-}
-
-void UmlConnector::addRedefinedConnector(UmlConnector *redefinedConnector)
-{
- // This is a read-write association end
-
- if (!_redefinedConnector.contains(redefinedConnector)) {
- _redefinedConnector.insert(redefinedConnector);
-
- // Adjust subsetted properties
- addRedefinedElement(redefinedConnector);
- }
-}
-
-void UmlConnector::removeRedefinedConnector(UmlConnector *redefinedConnector)
-{
- // This is a read-write association end
-
- if (_redefinedConnector.contains(redefinedConnector)) {
- _redefinedConnector.remove(redefinedConnector);
-
- // Adjust subsetted properties
- removeRedefinedElement(redefinedConnector);
- }
-}
-
-UmlAssociation *UmlConnector::type() const
-{
- // This is a read-write association end
-
- return _type;
-}
-
-void UmlConnector::setType(UmlAssociation *type)
-{
- // This is a read-write association end
-
- if (_type != type) {
- _type = type;
- }
-}
-
diff --git a/src/uml/internal/umlconnector_p.h b/src/uml/internal/umlconnector_p.h
deleted file mode 100644
index ac1b92c8..00000000
--- a/src/uml/internal/umlconnector_p.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONNECTOR_H
-#define UMLCONNECTOR_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlfeature_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlAssociation;
-class UmlBehavior;
-class UmlConnectorEnd;
-
-class Q_UML_EXPORT UmlConnector : public UmlFeature
-{
-public:
- Q_DECL_HIDDEN explicit UmlConnector();
-
- // Owned attributes
- const QSet<UmlBehavior *> contract() const;
- void addContract(UmlBehavior *contract);
- void removeContract(UmlBehavior *contract);
- const QList<UmlConnectorEnd *> end() const;
- void addEnd(UmlConnectorEnd *end);
- void removeEnd(UmlConnectorEnd *end);
- QtUml::ConnectorKind kind() const;
- Q_DECL_HIDDEN void setKind(QtUml::ConnectorKind kind);
- const QSet<UmlConnector *> redefinedConnector() const;
- void addRedefinedConnector(UmlConnector *redefinedConnector);
- void removeRedefinedConnector(UmlConnector *redefinedConnector);
- UmlAssociation *type() const;
- void setType(UmlAssociation *type);
-
-protected:
- QSet<UmlBehavior *> _contract;
- QList<UmlConnectorEnd *> _end;
- QSet<UmlConnector *> _redefinedConnector;
- UmlAssociation *_type;
-};
-
-#endif // UMLCONNECTOR_H
-
diff --git a/src/uml/internal/umlconnectorend.cpp b/src/uml/internal/umlconnectorend.cpp
deleted file mode 100644
index 70afe810..00000000
--- a/src/uml/internal/umlconnectorend.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconnectorend_p.h"
-
-#include "private/umlconnectableelement_p.h"
-#include "private/umlproperty_p.h"
-
-UmlConnectorEnd::UmlConnectorEnd() :
- _partWithPort(0),
- _role(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlProperty *UmlConnectorEnd::definingEnd() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlConnectorEnd::definingEnd(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlConnectorEnd::setDefiningEnd(UmlProperty *definingEnd)
-{
- // This is a read-only derived association end
-
- qWarning("UmlConnectorEnd::definingEnd(): to be implemented (this is a derived association end)");
- Q_UNUSED(definingEnd);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlProperty *UmlConnectorEnd::partWithPort() const
-{
- // This is a read-write association end
-
- return _partWithPort;
-}
-
-void UmlConnectorEnd::setPartWithPort(UmlProperty *partWithPort)
-{
- // This is a read-write association end
-
- if (_partWithPort != partWithPort) {
- _partWithPort = partWithPort;
- }
-}
-
-UmlConnectableElement *UmlConnectorEnd::role() const
-{
- // This is a read-write association end
-
- return _role;
-}
-
-void UmlConnectorEnd::setRole(UmlConnectableElement *role)
-{
- // This is a read-write association end
-
- if (_role != role) {
- _role = role;
- }
-}
-
diff --git a/src/uml/internal/umlconnectorend_p.h b/src/uml/internal/umlconnectorend_p.h
deleted file mode 100644
index b8011c35..00000000
--- a/src/uml/internal/umlconnectorend_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONNECTOREND_H
-#define UMLCONNECTOREND_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmultiplicityelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConnectableElement;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlConnectorEnd : public UmlMultiplicityElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlConnectorEnd();
-
- // Owned attributes
- UmlProperty *definingEnd() const;
- Q_DECL_HIDDEN void setDefiningEnd(UmlProperty *definingEnd);
- UmlProperty *partWithPort() const;
- void setPartWithPort(UmlProperty *partWithPort);
- UmlConnectableElement *role() const;
- void setRole(UmlConnectableElement *role);
-
-protected:
- UmlProperty *_partWithPort;
- UmlConnectableElement *_role;
-};
-
-#endif // UMLCONNECTOREND_H
-
diff --git a/src/uml/internal/umlconsiderignorefragment.cpp b/src/uml/internal/umlconsiderignorefragment.cpp
deleted file mode 100644
index f6b4bab9..00000000
--- a/src/uml/internal/umlconsiderignorefragment.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconsiderignorefragment_p.h"
-
-#include "private/umlnamedelement_p.h"
-
-UmlConsiderIgnoreFragment::UmlConsiderIgnoreFragment()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlNamedElement *> UmlConsiderIgnoreFragment::message() const
-{
- // This is a read-write association end
-
- return _message;
-}
-
-void UmlConsiderIgnoreFragment::addMessage(UmlNamedElement *message)
-{
- // This is a read-write association end
-
- if (!_message.contains(message)) {
- _message.insert(message);
- }
-}
-
-void UmlConsiderIgnoreFragment::removeMessage(UmlNamedElement *message)
-{
- // This is a read-write association end
-
- if (_message.contains(message)) {
- _message.remove(message);
- }
-}
-
diff --git a/src/uml/internal/umlconsiderignorefragment_p.h b/src/uml/internal/umlconsiderignorefragment_p.h
deleted file mode 100644
index 4fff4f56..00000000
--- a/src/uml/internal/umlconsiderignorefragment_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONSIDERIGNOREFRAGMENT_H
-#define UMLCONSIDERIGNOREFRAGMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcombinedfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamedElement;
-
-class Q_UML_EXPORT UmlConsiderIgnoreFragment : public UmlCombinedFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlConsiderIgnoreFragment();
-
- // Owned attributes
- const QSet<UmlNamedElement *> message() const;
- void addMessage(UmlNamedElement *message);
- void removeMessage(UmlNamedElement *message);
-
-protected:
- QSet<UmlNamedElement *> _message;
-};
-
-#endif // UMLCONSIDERIGNOREFRAGMENT_H
-
diff --git a/src/uml/internal/umlconstraint.cpp b/src/uml/internal/umlconstraint.cpp
deleted file mode 100644
index 3be330f2..00000000
--- a/src/uml/internal/umlconstraint.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlconstraint_p.h"
-
-#include "private/umlelement_p.h"
-#include "private/umlnamespace_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlConstraint::UmlConstraint() :
- _context(0),
- _specification(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlElement *> UmlConstraint::constrainedElement() const
-{
- // This is a read-write association end
-
- return _constrainedElement;
-}
-
-void UmlConstraint::addConstrainedElement(UmlElement *constrainedElement)
-{
- // This is a read-write association end
-
- if (!_constrainedElement.contains(constrainedElement)) {
- _constrainedElement.append(constrainedElement);
- }
-}
-
-void UmlConstraint::removeConstrainedElement(UmlElement *constrainedElement)
-{
- // This is a read-write association end
-
- if (_constrainedElement.contains(constrainedElement)) {
- _constrainedElement.removeAll(constrainedElement);
- }
-}
-
-UmlNamespace *UmlConstraint::context() const
-{
- // This is a read-write association end
-
- return _context;
-}
-
-void UmlConstraint::setContext(UmlNamespace *context)
-{
- // This is a read-write association end
-
- if (_context != context) {
- // Adjust subsetted properties
-
- _context = context;
-
- // Adjust subsetted properties
- setNamespace(context);
- }
-}
-
-UmlValueSpecification *UmlConstraint::specification() const
-{
- // This is a read-write association end
-
- return _specification;
-}
-
-void UmlConstraint::setSpecification(UmlValueSpecification *specification)
-{
- // This is a read-write association end
-
- if (_specification != specification) {
- // Adjust subsetted properties
- removeOwnedElement(_specification);
-
- _specification = specification;
-
- // Adjust subsetted properties
- if (specification) {
- addOwnedElement(specification);
- }
- }
-}
-
diff --git a/src/uml/internal/umlconstraint_p.h b/src/uml/internal/umlconstraint_p.h
deleted file mode 100644
index 2549317a..00000000
--- a/src/uml/internal/umlconstraint_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONSTRAINT_H
-#define UMLCONSTRAINT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlElement;
-class UmlNamespace;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlConstraint : public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlConstraint();
-
- // Owned attributes
- const QList<UmlElement *> constrainedElement() const;
- void addConstrainedElement(UmlElement *constrainedElement);
- void removeConstrainedElement(UmlElement *constrainedElement);
- UmlNamespace *context() const;
- void setContext(UmlNamespace *context);
- UmlValueSpecification *specification() const;
- void setSpecification(UmlValueSpecification *specification);
-
-protected:
- QList<UmlElement *> _constrainedElement;
- UmlNamespace *_context;
- UmlValueSpecification *_specification;
-};
-
-#endif // UMLCONSTRAINT_H
-
diff --git a/src/uml/internal/umlcontinuation.cpp b/src/uml/internal/umlcontinuation.cpp
deleted file mode 100644
index 1eda0c5b..00000000
--- a/src/uml/internal/umlcontinuation.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcontinuation_p.h"
-
-UmlContinuation::UmlContinuation() :
- _setting(true)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlContinuation::setting() const
-{
- // This is a read-write property
-
- return _setting;
-}
-
-void UmlContinuation::setSetting(bool setting)
-{
- // This is a read-write property
-
- if (_setting != setting) {
- _setting = setting;
- }
-}
-
diff --git a/src/uml/internal/umlcontinuation_p.h b/src/uml/internal/umlcontinuation_p.h
deleted file mode 100644
index 70a1f60d..00000000
--- a/src/uml/internal/umlcontinuation_p.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONTINUATION_H
-#define UMLCONTINUATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlContinuation : public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlContinuation();
-
- // Owned attributes
- bool setting() const;
- void setSetting(bool setting);
-
-protected:
- bool _setting;
-};
-
-#endif // UMLCONTINUATION_H
-
diff --git a/src/uml/internal/umlcontrolflow.cpp b/src/uml/internal/umlcontrolflow.cpp
deleted file mode 100644
index 08701987..00000000
--- a/src/uml/internal/umlcontrolflow.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcontrolflow_p.h"
-
-UmlControlFlow::UmlControlFlow()
-{
-}
-
diff --git a/src/uml/internal/umlcontrolflow_p.h b/src/uml/internal/umlcontrolflow_p.h
deleted file mode 100644
index 40516822..00000000
--- a/src/uml/internal/umlcontrolflow_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONTROLFLOW_H
-#define UMLCONTROLFLOW_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivityedge_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlControlFlow : public UmlActivityEdge
-{
-public:
- Q_DECL_HIDDEN explicit UmlControlFlow();
-
-protected:
-};
-
-#endif // UMLCONTROLFLOW_H
-
diff --git a/src/uml/internal/umlcontrolnode.cpp b/src/uml/internal/umlcontrolnode.cpp
deleted file mode 100644
index c709c43e..00000000
--- a/src/uml/internal/umlcontrolnode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcontrolnode_p.h"
-
-UmlControlNode::UmlControlNode()
-{
-}
-
diff --git a/src/uml/internal/umlcontrolnode_p.h b/src/uml/internal/umlcontrolnode_p.h
deleted file mode 100644
index eb6a9f18..00000000
--- a/src/uml/internal/umlcontrolnode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCONTROLNODE_H
-#define UMLCONTROLNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivitynode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlControlNode : public UmlActivityNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlControlNode();
-
-protected:
-};
-
-#endif // UMLCONTROLNODE_H
-
diff --git a/src/uml/internal/umlcreatelinkaction.cpp b/src/uml/internal/umlcreatelinkaction.cpp
deleted file mode 100644
index 724a8aed..00000000
--- a/src/uml/internal/umlcreatelinkaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcreatelinkaction_p.h"
-
-#include "private/umllinkendcreationdata_p.h"
-
-UmlCreateLinkAction::UmlCreateLinkAction()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlLinkEndCreationData *> UmlCreateLinkAction::endData() const
-{
- // This is a read-write association end
-
- return _endData;
-}
-
-void UmlCreateLinkAction::addEndData(UmlLinkEndCreationData *endData)
-{
- // This is a read-write association end
-
- if (!_endData.contains(endData)) {
- _endData.insert(endData);
- }
-}
-
-void UmlCreateLinkAction::removeEndData(UmlLinkEndCreationData *endData)
-{
- // This is a read-write association end
-
- if (_endData.contains(endData)) {
- _endData.remove(endData);
- }
-}
-
diff --git a/src/uml/internal/umlcreatelinkaction_p.h b/src/uml/internal/umlcreatelinkaction_p.h
deleted file mode 100644
index 965170ae..00000000
--- a/src/uml/internal/umlcreatelinkaction_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCREATELINKACTION_H
-#define UMLCREATELINKACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlwritelinkaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlLinkEndCreationData;
-
-class Q_UML_EXPORT UmlCreateLinkAction : public UmlWriteLinkAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlCreateLinkAction();
-
- // Owned attributes
- const QSet<UmlLinkEndCreationData *> endData() const;
- void addEndData(UmlLinkEndCreationData *endData);
- void removeEndData(UmlLinkEndCreationData *endData);
-
-protected:
- QSet<UmlLinkEndCreationData *> _endData;
-};
-
-#endif // UMLCREATELINKACTION_H
-
diff --git a/src/uml/internal/umlcreatelinkobjectaction.cpp b/src/uml/internal/umlcreatelinkobjectaction.cpp
deleted file mode 100644
index e6c97248..00000000
--- a/src/uml/internal/umlcreatelinkobjectaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcreatelinkobjectaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlCreateLinkObjectAction::UmlCreateLinkObjectAction() :
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlCreateLinkObjectAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlCreateLinkObjectAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlcreatelinkobjectaction_p.h b/src/uml/internal/umlcreatelinkobjectaction_p.h
deleted file mode 100644
index 8cbd6508..00000000
--- a/src/uml/internal/umlcreatelinkobjectaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCREATELINKOBJECTACTION_H
-#define UMLCREATELINKOBJECTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcreatelinkaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlCreateLinkObjectAction : public UmlCreateLinkAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlCreateLinkObjectAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlOutputPin *_result;
-};
-
-#endif // UMLCREATELINKOBJECTACTION_H
-
diff --git a/src/uml/internal/umlcreateobjectaction.cpp b/src/uml/internal/umlcreateobjectaction.cpp
deleted file mode 100644
index 0a0d9ba8..00000000
--- a/src/uml/internal/umlcreateobjectaction.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlcreateobjectaction_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlCreateObjectAction::UmlCreateObjectAction() :
- _classifier(0),
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlCreateObjectAction::classifier() const
-{
- // This is a read-write association end
-
- return _classifier;
-}
-
-void UmlCreateObjectAction::setClassifier(UmlClassifier *classifier)
-{
- // This is a read-write association end
-
- if (_classifier != classifier) {
- _classifier = classifier;
- }
-}
-
-UmlOutputPin *UmlCreateObjectAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlCreateObjectAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlcreateobjectaction_p.h b/src/uml/internal/umlcreateobjectaction_p.h
deleted file mode 100644
index 3a0da7b5..00000000
--- a/src/uml/internal/umlcreateobjectaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLCREATEOBJECTACTION_H
-#define UMLCREATEOBJECTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlCreateObjectAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlCreateObjectAction();
-
- // Owned attributes
- UmlClassifier *classifier() const;
- void setClassifier(UmlClassifier *classifier);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlClassifier *_classifier;
- UmlOutputPin *_result;
-};
-
-#endif // UMLCREATEOBJECTACTION_H
-
diff --git a/src/uml/internal/umldatastorenode.cpp b/src/uml/internal/umldatastorenode.cpp
deleted file mode 100644
index ab7f5338..00000000
--- a/src/uml/internal/umldatastorenode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldatastorenode_p.h"
-
-UmlDataStoreNode::UmlDataStoreNode()
-{
-}
-
diff --git a/src/uml/internal/umldatastorenode_p.h b/src/uml/internal/umldatastorenode_p.h
deleted file mode 100644
index add4cfac..00000000
--- a/src/uml/internal/umldatastorenode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDATASTORENODE_H
-#define UMLDATASTORENODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcentralbuffernode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlDataStoreNode : public UmlCentralBufferNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlDataStoreNode();
-
-protected:
-};
-
-#endif // UMLDATASTORENODE_H
-
diff --git a/src/uml/internal/umldatatype.cpp b/src/uml/internal/umldatatype.cpp
deleted file mode 100644
index c5a92449..00000000
--- a/src/uml/internal/umldatatype.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldatatype_p.h"
-
-#include "private/umlnamedelement_p.h"
-#include "private/umloperation_p.h"
-#include "private/umlproperty_p.h"
-
-UmlDataType::UmlDataType()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlProperty *> UmlDataType::ownedAttribute() const
-{
- // This is a read-write association end
-
- return _ownedAttribute;
-}
-
-void UmlDataType::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (!_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.append(ownedAttribute);
-
- // Adjust subsetted properties
- addOwnedMember(ownedAttribute);
- addAttribute(ownedAttribute);
-
- // Adjust opposite properties
- if (ownedAttribute) {
- ownedAttribute->setDatatype(this);
- }
- }
-}
-
-void UmlDataType::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.removeAll(ownedAttribute);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedAttribute);
- removeAttribute(ownedAttribute);
-
- // Adjust opposite properties
- if (ownedAttribute) {
- ownedAttribute->setDatatype(0);
- }
- }
-}
-
-const QList<UmlOperation *> UmlDataType::ownedOperation() const
-{
- // This is a read-write association end
-
- return _ownedOperation;
-}
-
-void UmlDataType::addOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (!_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.append(ownedOperation);
-
- // Adjust subsetted properties
- addFeature(ownedOperation);
- addOwnedMember(ownedOperation);
-
- // Adjust opposite properties
- if (ownedOperation) {
- ownedOperation->setDatatype(this);
- }
- }
-}
-
-void UmlDataType::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.removeAll(ownedOperation);
-
- // Adjust subsetted properties
- removeFeature(ownedOperation);
- removeOwnedMember(ownedOperation);
-
- // Adjust opposite properties
- if (ownedOperation) {
- ownedOperation->setDatatype(0);
- }
- }
-}
-
-// OPERATIONS
-
-QSet<UmlNamedElement *> UmlDataType::inherit(
- QSet<UmlNamedElement *> inhs) const
-{
- qWarning("UmlDataType::inherit(): to be implemented (operation)");
-
- Q_UNUSED(inhs);
- return QSet<UmlNamedElement *> ();
-}
-
diff --git a/src/uml/internal/umldatatype_p.h b/src/uml/internal/umldatatype_p.h
deleted file mode 100644
index a542e603..00000000
--- a/src/uml/internal/umldatatype_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDATATYPE_H
-#define UMLDATATYPE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamedElement;
-class UmlOperation;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlDataType : public UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlDataType();
-
- // Owned attributes
- const QList<UmlProperty *> ownedAttribute() const;
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- const QList<UmlOperation *> ownedOperation() const;
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
-
- // Operations
- QSet<UmlNamedElement *> inherit(QSet<UmlNamedElement *> inhs) const;
-
-protected:
- QList<UmlProperty *> _ownedAttribute;
- QList<UmlOperation *> _ownedOperation;
-};
-
-#endif // UMLDATATYPE_H
-
diff --git a/src/uml/internal/umldecisionnode.cpp b/src/uml/internal/umldecisionnode.cpp
deleted file mode 100644
index 64f17395..00000000
--- a/src/uml/internal/umldecisionnode.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldecisionnode_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlobjectflow_p.h"
-
-UmlDecisionNode::UmlDecisionNode() :
- _decisionInput(0),
- _decisionInputFlow(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlBehavior *UmlDecisionNode::decisionInput() const
-{
- // This is a read-write association end
-
- return _decisionInput;
-}
-
-void UmlDecisionNode::setDecisionInput(UmlBehavior *decisionInput)
-{
- // This is a read-write association end
-
- if (_decisionInput != decisionInput) {
- _decisionInput = decisionInput;
- }
-}
-
-UmlObjectFlow *UmlDecisionNode::decisionInputFlow() const
-{
- // This is a read-write association end
-
- return _decisionInputFlow;
-}
-
-void UmlDecisionNode::setDecisionInputFlow(UmlObjectFlow *decisionInputFlow)
-{
- // This is a read-write association end
-
- if (_decisionInputFlow != decisionInputFlow) {
- _decisionInputFlow = decisionInputFlow;
- }
-}
-
diff --git a/src/uml/internal/umldecisionnode_p.h b/src/uml/internal/umldecisionnode_p.h
deleted file mode 100644
index b99abecd..00000000
--- a/src/uml/internal/umldecisionnode_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDECISIONNODE_H
-#define UMLDECISIONNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcontrolnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-class UmlObjectFlow;
-
-class Q_UML_EXPORT UmlDecisionNode : public UmlControlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlDecisionNode();
-
- // Owned attributes
- UmlBehavior *decisionInput() const;
- void setDecisionInput(UmlBehavior *decisionInput);
- UmlObjectFlow *decisionInputFlow() const;
- void setDecisionInputFlow(UmlObjectFlow *decisionInputFlow);
-
-protected:
- UmlBehavior *_decisionInput;
- UmlObjectFlow *_decisionInputFlow;
-};
-
-#endif // UMLDECISIONNODE_H
-
diff --git a/src/uml/internal/umldependency.cpp b/src/uml/internal/umldependency.cpp
deleted file mode 100644
index 14e6ca01..00000000
--- a/src/uml/internal/umldependency.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldependency_p.h"
-
-#include "private/umlnamedelement_p.h"
-
-UmlDependency::UmlDependency()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlNamedElement *> UmlDependency::client() const
-{
- // This is a read-write association end
-
- return _client;
-}
-
-void UmlDependency::addClient(UmlNamedElement *client)
-{
- // This is a read-write association end
-
- if (!_client.contains(client)) {
- _client.insert(client);
-
- // Adjust subsetted properties
- addSource(client);
-
- // Adjust opposite properties
- if (client) {
- client->addClientDependency(this);
- }
- }
-}
-
-void UmlDependency::removeClient(UmlNamedElement *client)
-{
- // This is a read-write association end
-
- if (_client.contains(client)) {
- _client.remove(client);
-
- // Adjust subsetted properties
- removeSource(client);
-
- // Adjust opposite properties
- if (client) {
- client->removeClientDependency(this);
- }
- }
-}
-
-const QSet<UmlNamedElement *> UmlDependency::supplier() const
-{
- // This is a read-write association end
-
- return _supplier;
-}
-
-void UmlDependency::addSupplier(UmlNamedElement *supplier)
-{
- // This is a read-write association end
-
- if (!_supplier.contains(supplier)) {
- _supplier.insert(supplier);
-
- // Adjust subsetted properties
- addTarget(supplier);
- }
-}
-
-void UmlDependency::removeSupplier(UmlNamedElement *supplier)
-{
- // This is a read-write association end
-
- if (_supplier.contains(supplier)) {
- _supplier.remove(supplier);
-
- // Adjust subsetted properties
- removeTarget(supplier);
- }
-}
-
diff --git a/src/uml/internal/umldependency_p.h b/src/uml/internal/umldependency_p.h
deleted file mode 100644
index a6f9b4ff..00000000
--- a/src/uml/internal/umldependency_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDEPENDENCY_H
-#define UMLDEPENDENCY_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackageableelement_p.h"
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamedElement;
-
-class Q_UML_EXPORT UmlDependency : public UmlPackageableElement, public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlDependency();
-
- // Owned attributes
- const QSet<UmlNamedElement *> client() const;
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- const QSet<UmlNamedElement *> supplier() const;
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
-protected:
- QSet<UmlNamedElement *> _client;
- QSet<UmlNamedElement *> _supplier;
-};
-
-#endif // UMLDEPENDENCY_H
-
diff --git a/src/uml/internal/umldeployedartifact.cpp b/src/uml/internal/umldeployedartifact.cpp
deleted file mode 100644
index dfbf38ca..00000000
--- a/src/uml/internal/umldeployedartifact.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldeployedartifact_p.h"
-
-UmlDeployedArtifact::UmlDeployedArtifact()
-{
-}
-
diff --git a/src/uml/internal/umldeployedartifact_p.h b/src/uml/internal/umldeployedartifact_p.h
deleted file mode 100644
index 32234029..00000000
--- a/src/uml/internal/umldeployedartifact_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDEPLOYEDARTIFACT_H
-#define UMLDEPLOYEDARTIFACT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlDeployedArtifact : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlDeployedArtifact();
-
-protected:
-};
-
-#endif // UMLDEPLOYEDARTIFACT_H
-
diff --git a/src/uml/internal/umldeployment.cpp b/src/uml/internal/umldeployment.cpp
deleted file mode 100644
index eeb22dd6..00000000
--- a/src/uml/internal/umldeployment.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldeployment_p.h"
-
-#include "private/umldeployedartifact_p.h"
-#include "private/umldeploymentspecification_p.h"
-#include "private/umldeploymenttarget_p.h"
-
-UmlDeployment::UmlDeployment() :
- _location(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlDeploymentSpecification *> UmlDeployment::configuration() const
-{
- // This is a read-write association end
-
- return _configuration;
-}
-
-void UmlDeployment::addConfiguration(UmlDeploymentSpecification *configuration)
-{
- // This is a read-write association end
-
- if (!_configuration.contains(configuration)) {
- _configuration.insert(configuration);
-
- // Adjust subsetted properties
- addOwnedElement(configuration);
-
- // Adjust opposite properties
- if (configuration) {
- configuration->setDeployment(this);
- }
- }
-}
-
-void UmlDeployment::removeConfiguration(UmlDeploymentSpecification *configuration)
-{
- // This is a read-write association end
-
- if (_configuration.contains(configuration)) {
- _configuration.remove(configuration);
-
- // Adjust subsetted properties
- removeOwnedElement(configuration);
-
- // Adjust opposite properties
- if (configuration) {
- configuration->setDeployment(0);
- }
- }
-}
-
-const QSet<UmlDeployedArtifact *> UmlDeployment::deployedArtifact() const
-{
- // This is a read-write association end
-
- return _deployedArtifact;
-}
-
-void UmlDeployment::addDeployedArtifact(UmlDeployedArtifact *deployedArtifact)
-{
- // This is a read-write association end
-
- if (!_deployedArtifact.contains(deployedArtifact)) {
- _deployedArtifact.insert(deployedArtifact);
-
- // Adjust subsetted properties
- addSupplier(deployedArtifact);
- }
-}
-
-void UmlDeployment::removeDeployedArtifact(UmlDeployedArtifact *deployedArtifact)
-{
- // This is a read-write association end
-
- if (_deployedArtifact.contains(deployedArtifact)) {
- _deployedArtifact.remove(deployedArtifact);
-
- // Adjust subsetted properties
- removeSupplier(deployedArtifact);
- }
-}
-
-UmlDeploymentTarget *UmlDeployment::location() const
-{
- // This is a read-write association end
-
- return _location;
-}
-
-void UmlDeployment::setLocation(UmlDeploymentTarget *location)
-{
- // This is a read-write association end
-
- if (_location != location) {
- // Adjust subsetted properties
- removeClient(_location);
-
- _location = location;
-
- // Adjust subsetted properties
- setOwner(location);
- if (location) {
- addClient(location);
- }
- }
-}
-
diff --git a/src/uml/internal/umldeployment_p.h b/src/uml/internal/umldeployment_p.h
deleted file mode 100644
index 5bad3c14..00000000
--- a/src/uml/internal/umldeployment_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDEPLOYMENT_H
-#define UMLDEPLOYMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldependency_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlDeployedArtifact;
-class UmlDeploymentSpecification;
-class UmlDeploymentTarget;
-
-class Q_UML_EXPORT UmlDeployment : public UmlDependency
-{
-public:
- Q_DECL_HIDDEN explicit UmlDeployment();
-
- // Owned attributes
- const QSet<UmlDeploymentSpecification *> configuration() const;
- void addConfiguration(UmlDeploymentSpecification *configuration);
- void removeConfiguration(UmlDeploymentSpecification *configuration);
- const QSet<UmlDeployedArtifact *> deployedArtifact() const;
- void addDeployedArtifact(UmlDeployedArtifact *deployedArtifact);
- void removeDeployedArtifact(UmlDeployedArtifact *deployedArtifact);
- UmlDeploymentTarget *location() const;
- void setLocation(UmlDeploymentTarget *location);
-
-protected:
- QSet<UmlDeploymentSpecification *> _configuration;
- QSet<UmlDeployedArtifact *> _deployedArtifact;
- UmlDeploymentTarget *_location;
-};
-
-#endif // UMLDEPLOYMENT_H
-
diff --git a/src/uml/internal/umldeploymentspecification.cpp b/src/uml/internal/umldeploymentspecification.cpp
deleted file mode 100644
index 61f89650..00000000
--- a/src/uml/internal/umldeploymentspecification.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldeploymentspecification_p.h"
-
-#include "private/umldeployment_p.h"
-
-UmlDeploymentSpecification::UmlDeploymentSpecification() :
- _deployment(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlDeployment *UmlDeploymentSpecification::deployment() const
-{
- // This is a read-write association end
-
- return _deployment;
-}
-
-void UmlDeploymentSpecification::setDeployment(UmlDeployment *deployment)
-{
- // This is a read-write association end
-
- if (_deployment != deployment) {
- // Adjust subsetted properties
-
- _deployment = deployment;
-
- // Adjust subsetted properties
- setOwner(deployment);
- }
-}
-
-QString UmlDeploymentSpecification::deploymentLocation() const
-{
- // This is a read-write property
-
- return _deploymentLocation;
-}
-
-void UmlDeploymentSpecification::setDeploymentLocation(QString deploymentLocation)
-{
- // This is a read-write property
-
- if (_deploymentLocation != deploymentLocation) {
- _deploymentLocation = deploymentLocation;
- }
-}
-
-QString UmlDeploymentSpecification::executionLocation() const
-{
- // This is a read-write property
-
- return _executionLocation;
-}
-
-void UmlDeploymentSpecification::setExecutionLocation(QString executionLocation)
-{
- // This is a read-write property
-
- if (_executionLocation != executionLocation) {
- _executionLocation = executionLocation;
- }
-}
-
diff --git a/src/uml/internal/umldeploymentspecification_p.h b/src/uml/internal/umldeploymentspecification_p.h
deleted file mode 100644
index 6a5e9271..00000000
--- a/src/uml/internal/umldeploymentspecification_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDEPLOYMENTSPECIFICATION_H
-#define UMLDEPLOYMENTSPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlartifact_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlDeployment;
-
-class Q_UML_EXPORT UmlDeploymentSpecification : public UmlArtifact
-{
-public:
- Q_DECL_HIDDEN explicit UmlDeploymentSpecification();
-
- // Owned attributes
- UmlDeployment *deployment() const;
- void setDeployment(UmlDeployment *deployment);
- QString deploymentLocation() const;
- void setDeploymentLocation(QString deploymentLocation);
- QString executionLocation() const;
- void setExecutionLocation(QString executionLocation);
-
-protected:
- UmlDeployment *_deployment;
- QString _deploymentLocation;
- QString _executionLocation;
-};
-
-#endif // UMLDEPLOYMENTSPECIFICATION_H
-
diff --git a/src/uml/internal/umldeploymenttarget.cpp b/src/uml/internal/umldeploymenttarget.cpp
deleted file mode 100644
index c820bf0f..00000000
--- a/src/uml/internal/umldeploymenttarget.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldeploymenttarget_p.h"
-
-#include "private/umldeployment_p.h"
-#include "private/umlpackageableelement_p.h"
-
-UmlDeploymentTarget::UmlDeploymentTarget()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlPackageableElement *> UmlDeploymentTarget::deployedElement() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlDeploymentTarget::deployedElement(): to be implemented (this is a derived association end)");
-
- return QSet<UmlPackageableElement *>();
-}
-
-void UmlDeploymentTarget::addDeployedElement(UmlPackageableElement *deployedElement)
-{
- // This is a read-only derived association end
-
- qWarning("UmlDeploymentTarget::deployedElement(): to be implemented (this is a derived association end)");
- Q_UNUSED(deployedElement);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlDeploymentTarget::removeDeployedElement(UmlPackageableElement *deployedElement)
-{
- // This is a read-only derived association end
-
- qWarning("UmlDeploymentTarget::deployedElement(): to be implemented (this is a derived association end)");
- Q_UNUSED(deployedElement);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlDeployment *> UmlDeploymentTarget::deployment() const
-{
- // This is a read-write association end
-
- return _deployment;
-}
-
-void UmlDeploymentTarget::addDeployment(UmlDeployment *deployment)
-{
- // This is a read-write association end
-
- if (!_deployment.contains(deployment)) {
- _deployment.insert(deployment);
-
- // Adjust subsetted properties
- addOwnedElement(deployment);
- addClientDependency(deployment);
-
- // Adjust opposite properties
- if (deployment) {
- deployment->setLocation(this);
- }
- }
-}
-
-void UmlDeploymentTarget::removeDeployment(UmlDeployment *deployment)
-{
- // This is a read-write association end
-
- if (_deployment.contains(deployment)) {
- _deployment.remove(deployment);
-
- // Adjust subsetted properties
- removeOwnedElement(deployment);
- removeClientDependency(deployment);
-
- // Adjust opposite properties
- if (deployment) {
- deployment->setLocation(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umldeploymenttarget_p.h b/src/uml/internal/umldeploymenttarget_p.h
deleted file mode 100644
index 4b440058..00000000
--- a/src/uml/internal/umldeploymenttarget_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDEPLOYMENTTARGET_H
-#define UMLDEPLOYMENTTARGET_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlDeployment;
-class UmlPackageableElement;
-
-class Q_UML_EXPORT UmlDeploymentTarget : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlDeploymentTarget();
-
- // Owned attributes
- const QSet<UmlPackageableElement *> deployedElement() const;
- Q_DECL_HIDDEN void addDeployedElement(UmlPackageableElement *deployedElement);
- Q_DECL_HIDDEN void removeDeployedElement(UmlPackageableElement *deployedElement);
- const QSet<UmlDeployment *> deployment() const;
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
-
-protected:
- QSet<UmlDeployment *> _deployment;
-};
-
-#endif // UMLDEPLOYMENTTARGET_H
-
diff --git a/src/uml/internal/umldestroylinkaction.cpp b/src/uml/internal/umldestroylinkaction.cpp
deleted file mode 100644
index a48c22d3..00000000
--- a/src/uml/internal/umldestroylinkaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldestroylinkaction_p.h"
-
-#include "private/umllinkenddestructiondata_p.h"
-
-UmlDestroyLinkAction::UmlDestroyLinkAction()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlLinkEndDestructionData *> UmlDestroyLinkAction::endData() const
-{
- // This is a read-write association end
-
- return _endData;
-}
-
-void UmlDestroyLinkAction::addEndData(UmlLinkEndDestructionData *endData)
-{
- // This is a read-write association end
-
- if (!_endData.contains(endData)) {
- _endData.insert(endData);
- }
-}
-
-void UmlDestroyLinkAction::removeEndData(UmlLinkEndDestructionData *endData)
-{
- // This is a read-write association end
-
- if (_endData.contains(endData)) {
- _endData.remove(endData);
- }
-}
-
diff --git a/src/uml/internal/umldestroylinkaction_p.h b/src/uml/internal/umldestroylinkaction_p.h
deleted file mode 100644
index 884785e1..00000000
--- a/src/uml/internal/umldestroylinkaction_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDESTROYLINKACTION_H
-#define UMLDESTROYLINKACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlwritelinkaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlLinkEndDestructionData;
-
-class Q_UML_EXPORT UmlDestroyLinkAction : public UmlWriteLinkAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlDestroyLinkAction();
-
- // Owned attributes
- const QSet<UmlLinkEndDestructionData *> endData() const;
- void addEndData(UmlLinkEndDestructionData *endData);
- void removeEndData(UmlLinkEndDestructionData *endData);
-
-protected:
- QSet<UmlLinkEndDestructionData *> _endData;
-};
-
-#endif // UMLDESTROYLINKACTION_H
-
diff --git a/src/uml/internal/umldestroyobjectaction.cpp b/src/uml/internal/umldestroyobjectaction.cpp
deleted file mode 100644
index 8ab142a7..00000000
--- a/src/uml/internal/umldestroyobjectaction.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldestroyobjectaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlDestroyObjectAction::UmlDestroyObjectAction() :
- _isDestroyLinks(false),
- _isDestroyOwnedObjects(false),
- _target(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlDestroyObjectAction::isDestroyLinks() const
-{
- // This is a read-write property
-
- return _isDestroyLinks;
-}
-
-void UmlDestroyObjectAction::setDestroyLinks(bool isDestroyLinks)
-{
- // This is a read-write property
-
- if (_isDestroyLinks != isDestroyLinks) {
- _isDestroyLinks = isDestroyLinks;
- }
-}
-
-bool UmlDestroyObjectAction::isDestroyOwnedObjects() const
-{
- // This is a read-write property
-
- return _isDestroyOwnedObjects;
-}
-
-void UmlDestroyObjectAction::setDestroyOwnedObjects(bool isDestroyOwnedObjects)
-{
- // This is a read-write property
-
- if (_isDestroyOwnedObjects != isDestroyOwnedObjects) {
- _isDestroyOwnedObjects = isDestroyOwnedObjects;
- }
-}
-
-UmlInputPin *UmlDestroyObjectAction::target() const
-{
- // This is a read-write association end
-
- return _target;
-}
-
-void UmlDestroyObjectAction::setTarget(UmlInputPin *target)
-{
- // This is a read-write association end
-
- if (_target != target) {
- // Adjust subsetted properties
- removeInput(_target);
-
- _target = target;
-
- // Adjust subsetted properties
- if (target) {
- addInput(target);
- }
- }
-}
-
diff --git a/src/uml/internal/umldestroyobjectaction_p.h b/src/uml/internal/umldestroyobjectaction_p.h
deleted file mode 100644
index cd880d7e..00000000
--- a/src/uml/internal/umldestroyobjectaction_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDESTROYOBJECTACTION_H
-#define UMLDESTROYOBJECTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlDestroyObjectAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlDestroyObjectAction();
-
- // Owned attributes
- bool isDestroyLinks() const;
- void setDestroyLinks(bool isDestroyLinks);
- bool isDestroyOwnedObjects() const;
- void setDestroyOwnedObjects(bool isDestroyOwnedObjects);
- UmlInputPin *target() const;
- void setTarget(UmlInputPin *target);
-
-protected:
- bool _isDestroyLinks;
- bool _isDestroyOwnedObjects;
- UmlInputPin *_target;
-};
-
-#endif // UMLDESTROYOBJECTACTION_H
-
diff --git a/src/uml/internal/umldestructionoccurrencespecification.cpp b/src/uml/internal/umldestructionoccurrencespecification.cpp
deleted file mode 100644
index adad477f..00000000
--- a/src/uml/internal/umldestructionoccurrencespecification.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldestructionoccurrencespecification_p.h"
-
-UmlDestructionOccurrenceSpecification::UmlDestructionOccurrenceSpecification()
-{
-}
-
diff --git a/src/uml/internal/umldestructionoccurrencespecification_p.h b/src/uml/internal/umldestructionoccurrencespecification_p.h
deleted file mode 100644
index eb3b5697..00000000
--- a/src/uml/internal/umldestructionoccurrencespecification_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDESTRUCTIONOCCURRENCESPECIFICATION_H
-#define UMLDESTRUCTIONOCCURRENCESPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmessageoccurrencespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlDestructionOccurrenceSpecification : public UmlMessageOccurrenceSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlDestructionOccurrenceSpecification();
-
-protected:
-};
-
-#endif // UMLDESTRUCTIONOCCURRENCESPECIFICATION_H
-
diff --git a/src/uml/internal/umldevice.cpp b/src/uml/internal/umldevice.cpp
deleted file mode 100644
index 7cb2d668..00000000
--- a/src/uml/internal/umldevice.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldevice_p.h"
-
-UmlDevice::UmlDevice()
-{
-}
-
diff --git a/src/uml/internal/umldevice_p.h b/src/uml/internal/umldevice_p.h
deleted file mode 100644
index 65c2c274..00000000
--- a/src/uml/internal/umldevice_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDEVICE_H
-#define UMLDEVICE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlDevice : public UmlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlDevice();
-
-protected:
-};
-
-#endif // UMLDEVICE_H
-
diff --git a/src/uml/internal/umldirectedrelationship.cpp b/src/uml/internal/umldirectedrelationship.cpp
deleted file mode 100644
index c636b909..00000000
--- a/src/uml/internal/umldirectedrelationship.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldirectedrelationship_p.h"
-
-#include "private/umlelement_p.h"
-
-UmlDirectedRelationship::UmlDirectedRelationship()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlElement *> UmlDirectedRelationship::source() const
-{
- // This is a read-only derived union association end
-
- return _source;
-}
-
-void UmlDirectedRelationship::addSource(UmlElement *source)
-{
- // This is a read-only derived union association end
-
- if (!_source.contains(source)) {
- _source.insert(source);
-
- // Adjust subsetted properties
- addRelatedElement(source);
- }
-}
-
-void UmlDirectedRelationship::removeSource(UmlElement *source)
-{
- // This is a read-only derived union association end
-
- if (_source.contains(source)) {
- _source.remove(source);
-
- // Adjust subsetted properties
- removeRelatedElement(source);
- }
-}
-
-const QSet<UmlElement *> UmlDirectedRelationship::target() const
-{
- // This is a read-only derived union association end
-
- return _target;
-}
-
-void UmlDirectedRelationship::addTarget(UmlElement *target)
-{
- // This is a read-only derived union association end
-
- if (!_target.contains(target)) {
- _target.insert(target);
-
- // Adjust subsetted properties
- addRelatedElement(target);
- }
-}
-
-void UmlDirectedRelationship::removeTarget(UmlElement *target)
-{
- // This is a read-only derived union association end
-
- if (_target.contains(target)) {
- _target.remove(target);
-
- // Adjust subsetted properties
- removeRelatedElement(target);
- }
-}
-
diff --git a/src/uml/internal/umldirectedrelationship_p.h b/src/uml/internal/umldirectedrelationship_p.h
deleted file mode 100644
index ee5894ea..00000000
--- a/src/uml/internal/umldirectedrelationship_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDIRECTEDRELATIONSHIP_H
-#define UMLDIRECTEDRELATIONSHIP_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlElement;
-
-class Q_UML_EXPORT UmlDirectedRelationship : public UmlRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlDirectedRelationship();
-
- // Owned attributes
- const QSet<UmlElement *> source() const;
- Q_DECL_HIDDEN void addSource(UmlElement *source);
- Q_DECL_HIDDEN void removeSource(UmlElement *source);
- const QSet<UmlElement *> target() const;
- Q_DECL_HIDDEN void addTarget(UmlElement *target);
- Q_DECL_HIDDEN void removeTarget(UmlElement *target);
-
-protected:
- QSet<UmlElement *> _source;
- QSet<UmlElement *> _target;
-};
-
-#endif // UMLDIRECTEDRELATIONSHIP_H
-
diff --git a/src/uml/internal/umlduration.cpp b/src/uml/internal/umlduration.cpp
deleted file mode 100644
index 7c94e7c3..00000000
--- a/src/uml/internal/umlduration.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlduration_p.h"
-
-#include "private/umlobservation_p.h"
-
-UmlDuration::UmlDuration() :
- _expr(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlValueSpecification *UmlDuration::expr() const
-{
- // This is a read-write association end
-
- return _expr;
-}
-
-void UmlDuration::setExpr(UmlValueSpecification *expr)
-{
- // This is a read-write association end
-
- if (_expr != expr) {
- // Adjust subsetted properties
- removeOwnedElement(_expr);
-
- _expr = expr;
-
- // Adjust subsetted properties
- if (expr) {
- addOwnedElement(expr);
- }
- }
-}
-
-const QSet<UmlObservation *> UmlDuration::observation() const
-{
- // This is a read-write association end
-
- return _observation;
-}
-
-void UmlDuration::addObservation(UmlObservation *observation)
-{
- // This is a read-write association end
-
- if (!_observation.contains(observation)) {
- _observation.insert(observation);
- }
-}
-
-void UmlDuration::removeObservation(UmlObservation *observation)
-{
- // This is a read-write association end
-
- if (_observation.contains(observation)) {
- _observation.remove(observation);
- }
-}
-
diff --git a/src/uml/internal/umlduration_p.h b/src/uml/internal/umlduration_p.h
deleted file mode 100644
index ba77b135..00000000
--- a/src/uml/internal/umlduration_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDURATION_H
-#define UMLDURATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlObservation;
-
-class Q_UML_EXPORT UmlDuration : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlDuration();
-
- // Owned attributes
- UmlValueSpecification *expr() const;
- void setExpr(UmlValueSpecification *expr);
- const QSet<UmlObservation *> observation() const;
- void addObservation(UmlObservation *observation);
- void removeObservation(UmlObservation *observation);
-
-protected:
- UmlValueSpecification *_expr;
- QSet<UmlObservation *> _observation;
-};
-
-#endif // UMLDURATION_H
-
diff --git a/src/uml/internal/umldurationconstraint.cpp b/src/uml/internal/umldurationconstraint.cpp
deleted file mode 100644
index a0237b3d..00000000
--- a/src/uml/internal/umldurationconstraint.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldurationconstraint_p.h"
-
-#include "private/umldurationinterval_p.h"
-
-UmlDurationConstraint::UmlDurationConstraint() :
- _specification(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlDurationConstraint::firstEvent() const
-{
- // This is a read-write property
-
- return _firstEvent;
-}
-
-void UmlDurationConstraint::setFirstEvent(bool firstEvent)
-{
- // This is a read-write property
-
- if (_firstEvent != firstEvent) {
- _firstEvent = firstEvent;
- }
-}
-
-UmlDurationInterval *UmlDurationConstraint::specification() const
-{
- // This is a read-write association end
-
- return _specification;
-}
-
-void UmlDurationConstraint::setSpecification(UmlDurationInterval *specification)
-{
- // This is a read-write association end
-
- if (_specification != specification) {
- _specification = specification;
- }
-}
-
diff --git a/src/uml/internal/umldurationconstraint_p.h b/src/uml/internal/umldurationconstraint_p.h
deleted file mode 100644
index 481c0ffa..00000000
--- a/src/uml/internal/umldurationconstraint_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDURATIONCONSTRAINT_H
-#define UMLDURATIONCONSTRAINT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlintervalconstraint_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlDurationInterval;
-
-class Q_UML_EXPORT UmlDurationConstraint : public UmlIntervalConstraint
-{
-public:
- Q_DECL_HIDDEN explicit UmlDurationConstraint();
-
- // Owned attributes
- bool firstEvent() const;
- void setFirstEvent(bool firstEvent);
- UmlDurationInterval *specification() const;
- void setSpecification(UmlDurationInterval *specification);
-
-protected:
- bool _firstEvent;
- UmlDurationInterval *_specification;
-};
-
-#endif // UMLDURATIONCONSTRAINT_H
-
diff --git a/src/uml/internal/umldurationinterval.cpp b/src/uml/internal/umldurationinterval.cpp
deleted file mode 100644
index ec530195..00000000
--- a/src/uml/internal/umldurationinterval.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldurationinterval_p.h"
-
-#include "private/umlduration_p.h"
-
-UmlDurationInterval::UmlDurationInterval() :
- _max(0),
- _min(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlDuration *UmlDurationInterval::max() const
-{
- // This is a read-write association end
-
- return _max;
-}
-
-void UmlDurationInterval::setMax(UmlDuration *max)
-{
- // This is a read-write association end
-
- if (_max != max) {
- _max = max;
- }
-}
-
-UmlDuration *UmlDurationInterval::min() const
-{
- // This is a read-write association end
-
- return _min;
-}
-
-void UmlDurationInterval::setMin(UmlDuration *min)
-{
- // This is a read-write association end
-
- if (_min != min) {
- _min = min;
- }
-}
-
diff --git a/src/uml/internal/umldurationinterval_p.h b/src/uml/internal/umldurationinterval_p.h
deleted file mode 100644
index 6b7a2525..00000000
--- a/src/uml/internal/umldurationinterval_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDURATIONINTERVAL_H
-#define UMLDURATIONINTERVAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinterval_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlDuration;
-
-class Q_UML_EXPORT UmlDurationInterval : public UmlInterval
-{
-public:
- Q_DECL_HIDDEN explicit UmlDurationInterval();
-
- // Owned attributes
- UmlDuration *max() const;
- void setMax(UmlDuration *max);
- UmlDuration *min() const;
- void setMin(UmlDuration *min);
-
-protected:
- UmlDuration *_max;
- UmlDuration *_min;
-};
-
-#endif // UMLDURATIONINTERVAL_H
-
diff --git a/src/uml/internal/umldurationobservation.cpp b/src/uml/internal/umldurationobservation.cpp
deleted file mode 100644
index 72da96b0..00000000
--- a/src/uml/internal/umldurationobservation.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umldurationobservation_p.h"
-
-#include "private/umlnamedelement_p.h"
-
-UmlDurationObservation::UmlDurationObservation() :
- _event(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlNamedElement *UmlDurationObservation::event() const
-{
- // This is a read-write association end
-
- return _event;
-}
-
-void UmlDurationObservation::setEvent(UmlNamedElement *event)
-{
- // This is a read-write association end
-
- if (_event != event) {
- _event = event;
- }
-}
-
-bool UmlDurationObservation::firstEvent() const
-{
- // This is a read-write property
-
- return _firstEvent;
-}
-
-void UmlDurationObservation::setFirstEvent(bool firstEvent)
-{
- // This is a read-write property
-
- if (_firstEvent != firstEvent) {
- _firstEvent = firstEvent;
- }
-}
-
diff --git a/src/uml/internal/umldurationobservation_p.h b/src/uml/internal/umldurationobservation_p.h
deleted file mode 100644
index e4d8dc56..00000000
--- a/src/uml/internal/umldurationobservation_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLDURATIONOBSERVATION_H
-#define UMLDURATIONOBSERVATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlobservation_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamedElement;
-
-class Q_UML_EXPORT UmlDurationObservation : public UmlObservation
-{
-public:
- Q_DECL_HIDDEN explicit UmlDurationObservation();
-
- // Owned attributes
- UmlNamedElement *event() const;
- void setEvent(UmlNamedElement *event);
- bool firstEvent() const;
- void setFirstEvent(bool firstEvent);
-
-protected:
- UmlNamedElement *_event;
- bool _firstEvent;
-};
-
-#endif // UMLDURATIONOBSERVATION_H
-
diff --git a/src/uml/internal/umlelement.cpp b/src/uml/internal/umlelement.cpp
deleted file mode 100644
index ca5c0607..00000000
--- a/src/uml/internal/umlelement.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlelement_p.h"
-
-#include "private/umlcomment_p.h"
-
-UmlElement::UmlElement() :
- _owner(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlComment *> UmlElement::ownedComment() const
-{
- // This is a read-write association end
-
- return _ownedComment;
-}
-
-void UmlElement::addOwnedComment(UmlComment *ownedComment)
-{
- // This is a read-write association end
-
- if (!_ownedComment.contains(ownedComment)) {
- _ownedComment.insert(ownedComment);
-
- // Adjust subsetted properties
- addOwnedElement(ownedComment);
- }
-}
-
-void UmlElement::removeOwnedComment(UmlComment *ownedComment)
-{
- // This is a read-write association end
-
- if (_ownedComment.contains(ownedComment)) {
- _ownedComment.remove(ownedComment);
-
- // Adjust subsetted properties
- removeOwnedElement(ownedComment);
- }
-}
-
-const QSet<UmlElement *> UmlElement::ownedElement() const
-{
- // This is a read-only derived union association end
-
- return _ownedElement;
-}
-
-void UmlElement::addOwnedElement(UmlElement *ownedElement)
-{
- // This is a read-only derived union association end
-
- if (!_ownedElement.contains(ownedElement)) {
- _ownedElement.insert(ownedElement);
- }
-}
-
-void UmlElement::removeOwnedElement(UmlElement *ownedElement)
-{
- // This is a read-only derived union association end
-
- if (_ownedElement.contains(ownedElement)) {
- _ownedElement.remove(ownedElement);
- }
-}
-
-UmlElement *UmlElement::owner() const
-{
- // This is a read-only derived union association end
-
- return _owner;
-}
-
-void UmlElement::setOwner(UmlElement *owner)
-{
- // This is a read-only derived union association end
-
- if (_owner != owner) {
- _owner = owner;
- }
-}
-
-// OPERATIONS
-
-QSet<UmlElement *> UmlElement::allOwnedElements(
- ) const
-{
- qWarning("UmlElement::allOwnedElements(): to be implemented (operation)");
-
- return QSet<UmlElement *> ();
-}
-
-bool UmlElement::mustBeOwned(
- ) const
-{
- qWarning("UmlElement::mustBeOwned(): to be implemented (operation)");
-
- return bool ();
-}
-
diff --git a/src/uml/internal/umlelement_p.h b/src/uml/internal/umlelement_p.h
deleted file mode 100644
index 72585884..00000000
--- a/src/uml/internal/umlelement_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLELEMENT_H
-#define UMLELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlComment;
-
-class Q_UML_EXPORT UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlElement();
-
- // Owned attributes
- const QSet<UmlComment *> ownedComment() const;
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
- const QSet<UmlElement *> ownedElement() const;
- Q_DECL_HIDDEN void addOwnedElement(UmlElement *ownedElement);
- Q_DECL_HIDDEN void removeOwnedElement(UmlElement *ownedElement);
- UmlElement *owner() const;
- Q_DECL_HIDDEN void setOwner(UmlElement *owner);
-
- // Operations
- QSet<UmlElement *> allOwnedElements() const;
- bool mustBeOwned() const;
-
-protected:
- QSet<UmlComment *> _ownedComment;
- QSet<UmlElement *> _ownedElement;
- UmlElement *_owner;
-};
-
-#endif // UMLELEMENT_H
-
diff --git a/src/uml/internal/umlelementimport.cpp b/src/uml/internal/umlelementimport.cpp
deleted file mode 100644
index 377656c3..00000000
--- a/src/uml/internal/umlelementimport.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlelementimport_p.h"
-
-#include "private/umlnamespace_p.h"
-#include "private/umlpackageableelement_p.h"
-
-UmlElementImport::UmlElementImport() :
- _importedElement(0),
- _importingNamespace(0),
- _visibility(QtUml::VisibilityKindPublic)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlElementImport::alias() const
-{
- // This is a read-write property
-
- return _alias;
-}
-
-void UmlElementImport::setAlias(QString alias)
-{
- // This is a read-write property
-
- if (_alias != alias) {
- _alias = alias;
- }
-}
-
-UmlPackageableElement *UmlElementImport::importedElement() const
-{
- // This is a read-write association end
-
- return _importedElement;
-}
-
-void UmlElementImport::setImportedElement(UmlPackageableElement *importedElement)
-{
- // This is a read-write association end
-
- if (_importedElement != importedElement) {
- // Adjust subsetted properties
- removeTarget(_importedElement);
-
- _importedElement = importedElement;
-
- // Adjust subsetted properties
- if (importedElement) {
- addTarget(importedElement);
- }
- }
-}
-
-UmlNamespace *UmlElementImport::importingNamespace() const
-{
- // This is a read-write association end
-
- return _importingNamespace;
-}
-
-void UmlElementImport::setImportingNamespace(UmlNamespace *importingNamespace)
-{
- // This is a read-write association end
-
- if (_importingNamespace != importingNamespace) {
- // Adjust subsetted properties
- removeSource(_importingNamespace);
-
- _importingNamespace = importingNamespace;
-
- // Adjust subsetted properties
- setOwner(importingNamespace);
- if (importingNamespace) {
- addSource(importingNamespace);
- }
- }
-}
-
-QtUml::VisibilityKind UmlElementImport::visibility() const
-{
- // This is a read-write property
-
- return _visibility;
-}
-
-void UmlElementImport::setVisibility(QtUml::VisibilityKind visibility)
-{
- // This is a read-write property
-
- if (_visibility != visibility) {
- _visibility = visibility;
- }
-}
-
-// OPERATIONS
-
-QString UmlElementImport::getName(
- ) const
-{
- qWarning("UmlElementImport::getName(): to be implemented (operation)");
-
- return QString ();
-}
-
diff --git a/src/uml/internal/umlelementimport_p.h b/src/uml/internal/umlelementimport_p.h
deleted file mode 100644
index 67e958ef..00000000
--- a/src/uml/internal/umlelementimport_p.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLELEMENTIMPORT_H
-#define UMLELEMENTIMPORT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlNamespace;
-class UmlPackageableElement;
-
-class Q_UML_EXPORT UmlElementImport : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlElementImport();
-
- // Owned attributes
- QString alias() const;
- void setAlias(QString alias);
- UmlPackageableElement *importedElement() const;
- void setImportedElement(UmlPackageableElement *importedElement);
- UmlNamespace *importingNamespace() const;
- void setImportingNamespace(UmlNamespace *importingNamespace);
- QtUml::VisibilityKind visibility() const;
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Operations
- QString getName() const;
-
-protected:
- QString _alias;
- UmlPackageableElement *_importedElement;
- UmlNamespace *_importingNamespace;
- QtUml::VisibilityKind _visibility;
-};
-
-#endif // UMLELEMENTIMPORT_H
-
diff --git a/src/uml/internal/umlencapsulatedclassifier.cpp b/src/uml/internal/umlencapsulatedclassifier.cpp
deleted file mode 100644
index 08cab7b3..00000000
--- a/src/uml/internal/umlencapsulatedclassifier.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlencapsulatedclassifier_p.h"
-
-#include "private/umlport_p.h"
-
-UmlEncapsulatedClassifier::UmlEncapsulatedClassifier()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlPort *> UmlEncapsulatedClassifier::ownedPort() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlEncapsulatedClassifier::ownedPort(): to be implemented (this is a derived association end)");
-
- return QSet<UmlPort *>();
-}
-
-void UmlEncapsulatedClassifier::addOwnedPort(UmlPort *ownedPort)
-{
- // This is a read-only derived association end
-
- qWarning("UmlEncapsulatedClassifier::ownedPort(): to be implemented (this is a derived association end)");
- Q_UNUSED(ownedPort);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addOwnedAttribute(ownedPort);
- }
-}
-
-void UmlEncapsulatedClassifier::removeOwnedPort(UmlPort *ownedPort)
-{
- // This is a read-only derived association end
-
- qWarning("UmlEncapsulatedClassifier::ownedPort(): to be implemented (this is a derived association end)");
- Q_UNUSED(ownedPort);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removeOwnedAttribute(ownedPort);
- }
-}
-
diff --git a/src/uml/internal/umlencapsulatedclassifier_p.h b/src/uml/internal/umlencapsulatedclassifier_p.h
deleted file mode 100644
index 7b5007f1..00000000
--- a/src/uml/internal/umlencapsulatedclassifier_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLENCAPSULATEDCLASSIFIER_H
-#define UMLENCAPSULATEDCLASSIFIER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuredclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlPort;
-
-class Q_UML_EXPORT UmlEncapsulatedClassifier : public UmlStructuredClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlEncapsulatedClassifier();
-
- // Owned attributes
- const QSet<UmlPort *> ownedPort() const;
- Q_DECL_HIDDEN void addOwnedPort(UmlPort *ownedPort);
- Q_DECL_HIDDEN void removeOwnedPort(UmlPort *ownedPort);
-
-protected:
-};
-
-#endif // UMLENCAPSULATEDCLASSIFIER_H
-
diff --git a/src/uml/internal/umlenumeration.cpp b/src/uml/internal/umlenumeration.cpp
deleted file mode 100644
index c82c8074..00000000
--- a/src/uml/internal/umlenumeration.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlenumeration_p.h"
-
-#include "private/umlenumerationliteral_p.h"
-
-UmlEnumeration::UmlEnumeration()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlEnumerationLiteral *> UmlEnumeration::ownedLiteral() const
-{
- // This is a read-write association end
-
- return _ownedLiteral;
-}
-
-void UmlEnumeration::addOwnedLiteral(UmlEnumerationLiteral *ownedLiteral)
-{
- // This is a read-write association end
-
- if (!_ownedLiteral.contains(ownedLiteral)) {
- _ownedLiteral.append(ownedLiteral);
-
- // Adjust subsetted properties
- addOwnedMember(ownedLiteral);
-
- // Adjust opposite properties
- if (ownedLiteral) {
- ownedLiteral->setEnumeration(this);
- }
- }
-}
-
-void UmlEnumeration::removeOwnedLiteral(UmlEnumerationLiteral *ownedLiteral)
-{
- // This is a read-write association end
-
- if (_ownedLiteral.contains(ownedLiteral)) {
- _ownedLiteral.removeAll(ownedLiteral);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedLiteral);
-
- // Adjust opposite properties
- if (ownedLiteral) {
- ownedLiteral->setEnumeration(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlenumeration_p.h b/src/uml/internal/umlenumeration_p.h
deleted file mode 100644
index 36140ae4..00000000
--- a/src/uml/internal/umlenumeration_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLENUMERATION_H
-#define UMLENUMERATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldatatype_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlEnumerationLiteral;
-
-class Q_UML_EXPORT UmlEnumeration : public UmlDataType
-{
-public:
- Q_DECL_HIDDEN explicit UmlEnumeration();
-
- // Owned attributes
- const QList<UmlEnumerationLiteral *> ownedLiteral() const;
- void addOwnedLiteral(UmlEnumerationLiteral *ownedLiteral);
- void removeOwnedLiteral(UmlEnumerationLiteral *ownedLiteral);
-
-protected:
- QList<UmlEnumerationLiteral *> _ownedLiteral;
-};
-
-#endif // UMLENUMERATION_H
-
diff --git a/src/uml/internal/umlenumerationliteral.cpp b/src/uml/internal/umlenumerationliteral.cpp
deleted file mode 100644
index bb8f8713..00000000
--- a/src/uml/internal/umlenumerationliteral.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlenumerationliteral_p.h"
-
-#include "private/umlenumeration_p.h"
-
-UmlEnumerationLiteral::UmlEnumerationLiteral() :
- _enumeration(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlEnumeration *UmlEnumerationLiteral::classifier() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlEnumerationLiteral::classifier(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlEnumerationLiteral::setClassifier(UmlEnumeration *classifier)
-{
- // This is a read-only derived association end
-
- qWarning("UmlEnumerationLiteral::classifier(): to be implemented (this is a derived association end)");
- Q_UNUSED(classifier);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlEnumeration *UmlEnumerationLiteral::enumeration() const
-{
- // This is a read-write association end
-
- return _enumeration;
-}
-
-void UmlEnumerationLiteral::setEnumeration(UmlEnumeration *enumeration)
-{
- // This is a read-write association end
-
- if (_enumeration != enumeration) {
- // Adjust subsetted properties
-
- _enumeration = enumeration;
-
- // Adjust subsetted properties
- setNamespace(enumeration);
- }
-}
-
diff --git a/src/uml/internal/umlenumerationliteral_p.h b/src/uml/internal/umlenumerationliteral_p.h
deleted file mode 100644
index 4cd18cfd..00000000
--- a/src/uml/internal/umlenumerationliteral_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLENUMERATIONLITERAL_H
-#define UMLENUMERATIONLITERAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinstancespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlEnumeration;
-
-class Q_UML_EXPORT UmlEnumerationLiteral : public UmlInstanceSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlEnumerationLiteral();
-
- // Owned attributes
- UmlEnumeration *classifier() const;
- Q_DECL_HIDDEN void setClassifier(UmlEnumeration *classifier);
- UmlEnumeration *enumeration() const;
- void setEnumeration(UmlEnumeration *enumeration);
-
-protected:
- UmlEnumeration *_enumeration;
-};
-
-#endif // UMLENUMERATIONLITERAL_H
-
diff --git a/src/uml/internal/umlevent.cpp b/src/uml/internal/umlevent.cpp
deleted file mode 100644
index 82e1a995..00000000
--- a/src/uml/internal/umlevent.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlevent_p.h"
-
-UmlEvent::UmlEvent()
-{
-}
-
diff --git a/src/uml/internal/umlevent_p.h b/src/uml/internal/umlevent_p.h
deleted file mode 100644
index d6f102d6..00000000
--- a/src/uml/internal/umlevent_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEVENT_H
-#define UMLEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlEvent : public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlEvent();
-
-protected:
-};
-
-#endif // UMLEVENT_H
-
diff --git a/src/uml/internal/umlexceptionhandler.cpp b/src/uml/internal/umlexceptionhandler.cpp
deleted file mode 100644
index 6938460d..00000000
--- a/src/uml/internal/umlexceptionhandler.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexceptionhandler_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlexecutablenode_p.h"
-#include "private/umlobjectnode_p.h"
-
-UmlExceptionHandler::UmlExceptionHandler() :
- _exceptionInput(0),
- _handlerBody(0),
- _protectedNode(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlObjectNode *UmlExceptionHandler::exceptionInput() const
-{
- // This is a read-write association end
-
- return _exceptionInput;
-}
-
-void UmlExceptionHandler::setExceptionInput(UmlObjectNode *exceptionInput)
-{
- // This is a read-write association end
-
- if (_exceptionInput != exceptionInput) {
- _exceptionInput = exceptionInput;
- }
-}
-
-const QSet<UmlClassifier *> UmlExceptionHandler::exceptionType() const
-{
- // This is a read-write association end
-
- return _exceptionType;
-}
-
-void UmlExceptionHandler::addExceptionType(UmlClassifier *exceptionType)
-{
- // This is a read-write association end
-
- if (!_exceptionType.contains(exceptionType)) {
- _exceptionType.insert(exceptionType);
- }
-}
-
-void UmlExceptionHandler::removeExceptionType(UmlClassifier *exceptionType)
-{
- // This is a read-write association end
-
- if (_exceptionType.contains(exceptionType)) {
- _exceptionType.remove(exceptionType);
- }
-}
-
-UmlExecutableNode *UmlExceptionHandler::handlerBody() const
-{
- // This is a read-write association end
-
- return _handlerBody;
-}
-
-void UmlExceptionHandler::setHandlerBody(UmlExecutableNode *handlerBody)
-{
- // This is a read-write association end
-
- if (_handlerBody != handlerBody) {
- _handlerBody = handlerBody;
- }
-}
-
-UmlExecutableNode *UmlExceptionHandler::protectedNode() const
-{
- // This is a read-write association end
-
- return _protectedNode;
-}
-
-void UmlExceptionHandler::setProtectedNode(UmlExecutableNode *protectedNode)
-{
- // This is a read-write association end
-
- if (_protectedNode != protectedNode) {
- // Adjust subsetted properties
-
- _protectedNode = protectedNode;
-
- // Adjust subsetted properties
- setOwner(protectedNode);
- }
-}
-
diff --git a/src/uml/internal/umlexceptionhandler_p.h b/src/uml/internal/umlexceptionhandler_p.h
deleted file mode 100644
index 75d98ce8..00000000
--- a/src/uml/internal/umlexceptionhandler_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXCEPTIONHANDLER_H
-#define UMLEXCEPTIONHANDLER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlExecutableNode;
-class UmlObjectNode;
-
-class Q_UML_EXPORT UmlExceptionHandler : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlExceptionHandler();
-
- // Owned attributes
- UmlObjectNode *exceptionInput() const;
- void setExceptionInput(UmlObjectNode *exceptionInput);
- const QSet<UmlClassifier *> exceptionType() const;
- void addExceptionType(UmlClassifier *exceptionType);
- void removeExceptionType(UmlClassifier *exceptionType);
- UmlExecutableNode *handlerBody() const;
- void setHandlerBody(UmlExecutableNode *handlerBody);
- UmlExecutableNode *protectedNode() const;
- void setProtectedNode(UmlExecutableNode *protectedNode);
-
-protected:
- UmlObjectNode *_exceptionInput;
- QSet<UmlClassifier *> _exceptionType;
- UmlExecutableNode *_handlerBody;
- UmlExecutableNode *_protectedNode;
-};
-
-#endif // UMLEXCEPTIONHANDLER_H
-
diff --git a/src/uml/internal/umlexecutablenode.cpp b/src/uml/internal/umlexecutablenode.cpp
deleted file mode 100644
index efa5325b..00000000
--- a/src/uml/internal/umlexecutablenode.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexecutablenode_p.h"
-
-#include "private/umlexceptionhandler_p.h"
-
-UmlExecutableNode::UmlExecutableNode()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlExceptionHandler *> UmlExecutableNode::handler() const
-{
- // This is a read-write association end
-
- return _handler;
-}
-
-void UmlExecutableNode::addHandler(UmlExceptionHandler *handler)
-{
- // This is a read-write association end
-
- if (!_handler.contains(handler)) {
- _handler.insert(handler);
-
- // Adjust subsetted properties
- addOwnedElement(handler);
-
- // Adjust opposite properties
- if (handler) {
- handler->setProtectedNode(this);
- }
- }
-}
-
-void UmlExecutableNode::removeHandler(UmlExceptionHandler *handler)
-{
- // This is a read-write association end
-
- if (_handler.contains(handler)) {
- _handler.remove(handler);
-
- // Adjust subsetted properties
- removeOwnedElement(handler);
-
- // Adjust opposite properties
- if (handler) {
- handler->setProtectedNode(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlexecutablenode_p.h b/src/uml/internal/umlexecutablenode_p.h
deleted file mode 100644
index 044d6eaf..00000000
--- a/src/uml/internal/umlexecutablenode_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXECUTABLENODE_H
-#define UMLEXECUTABLENODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivitynode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlExceptionHandler;
-
-class Q_UML_EXPORT UmlExecutableNode : public UmlActivityNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlExecutableNode();
-
- // Owned attributes
- const QSet<UmlExceptionHandler *> handler() const;
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
-protected:
- QSet<UmlExceptionHandler *> _handler;
-};
-
-#endif // UMLEXECUTABLENODE_H
-
diff --git a/src/uml/internal/umlexecutionenvironment.cpp b/src/uml/internal/umlexecutionenvironment.cpp
deleted file mode 100644
index b3a7c8ee..00000000
--- a/src/uml/internal/umlexecutionenvironment.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexecutionenvironment_p.h"
-
-UmlExecutionEnvironment::UmlExecutionEnvironment()
-{
-}
-
diff --git a/src/uml/internal/umlexecutionenvironment_p.h b/src/uml/internal/umlexecutionenvironment_p.h
deleted file mode 100644
index 75768d46..00000000
--- a/src/uml/internal/umlexecutionenvironment_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXECUTIONENVIRONMENT_H
-#define UMLEXECUTIONENVIRONMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlExecutionEnvironment : public UmlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlExecutionEnvironment();
-
-protected:
-};
-
-#endif // UMLEXECUTIONENVIRONMENT_H
-
diff --git a/src/uml/internal/umlexecutionoccurrencespecification.cpp b/src/uml/internal/umlexecutionoccurrencespecification.cpp
deleted file mode 100644
index ca452101..00000000
--- a/src/uml/internal/umlexecutionoccurrencespecification.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexecutionoccurrencespecification_p.h"
-
-#include "private/umlexecutionspecification_p.h"
-
-UmlExecutionOccurrenceSpecification::UmlExecutionOccurrenceSpecification() :
- _execution(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlExecutionSpecification *UmlExecutionOccurrenceSpecification::execution() const
-{
- // This is a read-write association end
-
- return _execution;
-}
-
-void UmlExecutionOccurrenceSpecification::setExecution(UmlExecutionSpecification *execution)
-{
- // This is a read-write association end
-
- if (_execution != execution) {
- _execution = execution;
- }
-}
-
diff --git a/src/uml/internal/umlexecutionoccurrencespecification_p.h b/src/uml/internal/umlexecutionoccurrencespecification_p.h
deleted file mode 100644
index f263a4bd..00000000
--- a/src/uml/internal/umlexecutionoccurrencespecification_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXECUTIONOCCURRENCESPECIFICATION_H
-#define UMLEXECUTIONOCCURRENCESPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umloccurrencespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlExecutionSpecification;
-
-class Q_UML_EXPORT UmlExecutionOccurrenceSpecification : public UmlOccurrenceSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlExecutionOccurrenceSpecification();
-
- // Owned attributes
- UmlExecutionSpecification *execution() const;
- void setExecution(UmlExecutionSpecification *execution);
-
-protected:
- UmlExecutionSpecification *_execution;
-};
-
-#endif // UMLEXECUTIONOCCURRENCESPECIFICATION_H
-
diff --git a/src/uml/internal/umlexecutionspecification.cpp b/src/uml/internal/umlexecutionspecification.cpp
deleted file mode 100644
index d1669abd..00000000
--- a/src/uml/internal/umlexecutionspecification.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexecutionspecification_p.h"
-
-#include "private/umloccurrencespecification_p.h"
-
-UmlExecutionSpecification::UmlExecutionSpecification() :
- _finish(0),
- _start(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOccurrenceSpecification *UmlExecutionSpecification::finish() const
-{
- // This is a read-write association end
-
- return _finish;
-}
-
-void UmlExecutionSpecification::setFinish(UmlOccurrenceSpecification *finish)
-{
- // This is a read-write association end
-
- if (_finish != finish) {
- _finish = finish;
- }
-}
-
-UmlOccurrenceSpecification *UmlExecutionSpecification::start() const
-{
- // This is a read-write association end
-
- return _start;
-}
-
-void UmlExecutionSpecification::setStart(UmlOccurrenceSpecification *start)
-{
- // This is a read-write association end
-
- if (_start != start) {
- _start = start;
- }
-}
-
diff --git a/src/uml/internal/umlexecutionspecification_p.h b/src/uml/internal/umlexecutionspecification_p.h
deleted file mode 100644
index 65107aff..00000000
--- a/src/uml/internal/umlexecutionspecification_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXECUTIONSPECIFICATION_H
-#define UMLEXECUTIONSPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOccurrenceSpecification;
-
-class Q_UML_EXPORT UmlExecutionSpecification : public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlExecutionSpecification();
-
- // Owned attributes
- UmlOccurrenceSpecification *finish() const;
- void setFinish(UmlOccurrenceSpecification *finish);
- UmlOccurrenceSpecification *start() const;
- void setStart(UmlOccurrenceSpecification *start);
-
-protected:
- UmlOccurrenceSpecification *_finish;
- UmlOccurrenceSpecification *_start;
-};
-
-#endif // UMLEXECUTIONSPECIFICATION_H
-
diff --git a/src/uml/internal/umlexpansionnode.cpp b/src/uml/internal/umlexpansionnode.cpp
deleted file mode 100644
index 1429598d..00000000
--- a/src/uml/internal/umlexpansionnode.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexpansionnode_p.h"
-
-#include "private/umlexpansionregion_p.h"
-
-UmlExpansionNode::UmlExpansionNode() :
- _regionAsInput(0),
- _regionAsOutput(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlExpansionRegion *UmlExpansionNode::regionAsInput() const
-{
- // This is a read-write association end
-
- return _regionAsInput;
-}
-
-void UmlExpansionNode::setRegionAsInput(UmlExpansionRegion *regionAsInput)
-{
- // This is a read-write association end
-
- if (_regionAsInput != regionAsInput) {
- _regionAsInput = regionAsInput;
- }
-}
-
-UmlExpansionRegion *UmlExpansionNode::regionAsOutput() const
-{
- // This is a read-write association end
-
- return _regionAsOutput;
-}
-
-void UmlExpansionNode::setRegionAsOutput(UmlExpansionRegion *regionAsOutput)
-{
- // This is a read-write association end
-
- if (_regionAsOutput != regionAsOutput) {
- _regionAsOutput = regionAsOutput;
- }
-}
-
diff --git a/src/uml/internal/umlexpansionnode_p.h b/src/uml/internal/umlexpansionnode_p.h
deleted file mode 100644
index 5a104009..00000000
--- a/src/uml/internal/umlexpansionnode_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXPANSIONNODE_H
-#define UMLEXPANSIONNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlobjectnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlExpansionRegion;
-
-class Q_UML_EXPORT UmlExpansionNode : public UmlObjectNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlExpansionNode();
-
- // Owned attributes
- UmlExpansionRegion *regionAsInput() const;
- void setRegionAsInput(UmlExpansionRegion *regionAsInput);
- UmlExpansionRegion *regionAsOutput() const;
- void setRegionAsOutput(UmlExpansionRegion *regionAsOutput);
-
-protected:
- UmlExpansionRegion *_regionAsInput;
- UmlExpansionRegion *_regionAsOutput;
-};
-
-#endif // UMLEXPANSIONNODE_H
-
diff --git a/src/uml/internal/umlexpansionregion.cpp b/src/uml/internal/umlexpansionregion.cpp
deleted file mode 100644
index 52bca5c9..00000000
--- a/src/uml/internal/umlexpansionregion.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexpansionregion_p.h"
-
-#include "private/umlexpansionnode_p.h"
-
-UmlExpansionRegion::UmlExpansionRegion() :
- _mode(QtUml::ExpansionKindIterative)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlExpansionNode *> UmlExpansionRegion::inputElement() const
-{
- // This is a read-write association end
-
- return _inputElement;
-}
-
-void UmlExpansionRegion::addInputElement(UmlExpansionNode *inputElement)
-{
- // This is a read-write association end
-
- if (!_inputElement.contains(inputElement)) {
- _inputElement.insert(inputElement);
-
- // Adjust opposite properties
- if (inputElement) {
- inputElement->setRegionAsInput(this);
- }
- }
-}
-
-void UmlExpansionRegion::removeInputElement(UmlExpansionNode *inputElement)
-{
- // This is a read-write association end
-
- if (_inputElement.contains(inputElement)) {
- _inputElement.remove(inputElement);
-
- // Adjust opposite properties
- if (inputElement) {
- inputElement->setRegionAsInput(0);
- }
- }
-}
-
-QtUml::ExpansionKind UmlExpansionRegion::mode() const
-{
- // This is a read-write property
-
- return _mode;
-}
-
-void UmlExpansionRegion::setMode(QtUml::ExpansionKind mode)
-{
- // This is a read-write property
-
- if (_mode != mode) {
- _mode = mode;
- }
-}
-
-const QSet<UmlExpansionNode *> UmlExpansionRegion::outputElement() const
-{
- // This is a read-write association end
-
- return _outputElement;
-}
-
-void UmlExpansionRegion::addOutputElement(UmlExpansionNode *outputElement)
-{
- // This is a read-write association end
-
- if (!_outputElement.contains(outputElement)) {
- _outputElement.insert(outputElement);
-
- // Adjust opposite properties
- if (outputElement) {
- outputElement->setRegionAsOutput(this);
- }
- }
-}
-
-void UmlExpansionRegion::removeOutputElement(UmlExpansionNode *outputElement)
-{
- // This is a read-write association end
-
- if (_outputElement.contains(outputElement)) {
- _outputElement.remove(outputElement);
-
- // Adjust opposite properties
- if (outputElement) {
- outputElement->setRegionAsOutput(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlexpansionregion_p.h b/src/uml/internal/umlexpansionregion_p.h
deleted file mode 100644
index 50abdf04..00000000
--- a/src/uml/internal/umlexpansionregion_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXPANSIONREGION_H
-#define UMLEXPANSIONREGION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuredactivitynode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlExpansionNode;
-
-class Q_UML_EXPORT UmlExpansionRegion : public UmlStructuredActivityNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlExpansionRegion();
-
- // Owned attributes
- const QSet<UmlExpansionNode *> inputElement() const;
- void addInputElement(UmlExpansionNode *inputElement);
- void removeInputElement(UmlExpansionNode *inputElement);
- QtUml::ExpansionKind mode() const;
- void setMode(QtUml::ExpansionKind mode);
- const QSet<UmlExpansionNode *> outputElement() const;
- void addOutputElement(UmlExpansionNode *outputElement);
- void removeOutputElement(UmlExpansionNode *outputElement);
-
-protected:
- QSet<UmlExpansionNode *> _inputElement;
- QtUml::ExpansionKind _mode;
- QSet<UmlExpansionNode *> _outputElement;
-};
-
-#endif // UMLEXPANSIONREGION_H
-
diff --git a/src/uml/internal/umlexpression.cpp b/src/uml/internal/umlexpression.cpp
deleted file mode 100644
index 13f5e632..00000000
--- a/src/uml/internal/umlexpression.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlexpression_p.h"
-
-UmlExpression::UmlExpression()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlValueSpecification *> UmlExpression::operand() const
-{
- // This is a read-write association end
-
- return _operand;
-}
-
-void UmlExpression::addOperand(UmlValueSpecification *operand)
-{
- // This is a read-write association end
-
- if (!_operand.contains(operand)) {
- _operand.append(operand);
-
- // Adjust subsetted properties
- addOwnedElement(operand);
- }
-}
-
-void UmlExpression::removeOperand(UmlValueSpecification *operand)
-{
- // This is a read-write association end
-
- if (_operand.contains(operand)) {
- _operand.removeAll(operand);
-
- // Adjust subsetted properties
- removeOwnedElement(operand);
- }
-}
-
-QString UmlExpression::symbol() const
-{
- // This is a read-write property
-
- return _symbol;
-}
-
-void UmlExpression::setSymbol(QString symbol)
-{
- // This is a read-write property
-
- if (_symbol != symbol) {
- _symbol = symbol;
- }
-}
-
diff --git a/src/uml/internal/umlexpression_p.h b/src/uml/internal/umlexpression_p.h
deleted file mode 100644
index f622fe9c..00000000
--- a/src/uml/internal/umlexpression_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXPRESSION_H
-#define UMLEXPRESSION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlExpression : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlExpression();
-
- // Owned attributes
- const QList<UmlValueSpecification *> operand() const;
- void addOperand(UmlValueSpecification *operand);
- void removeOperand(UmlValueSpecification *operand);
- QString symbol() const;
- void setSymbol(QString symbol);
-
-protected:
- QList<UmlValueSpecification *> _operand;
- QString _symbol;
-};
-
-#endif // UMLEXPRESSION_H
-
diff --git a/src/uml/internal/umlextend.cpp b/src/uml/internal/umlextend.cpp
deleted file mode 100644
index 455b358f..00000000
--- a/src/uml/internal/umlextend.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlextend_p.h"
-
-#include "private/umlconstraint_p.h"
-#include "private/umlextensionpoint_p.h"
-#include "private/umlusecase_p.h"
-
-UmlExtend::UmlExtend() :
- _condition(0),
- _extendedCase(0),
- _extension(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlConstraint *UmlExtend::condition() const
-{
- // This is a read-write association end
-
- return _condition;
-}
-
-void UmlExtend::setCondition(UmlConstraint *condition)
-{
- // This is a read-write association end
-
- if (_condition != condition) {
- // Adjust subsetted properties
- removeOwnedElement(_condition);
-
- _condition = condition;
-
- // Adjust subsetted properties
- if (condition) {
- addOwnedElement(condition);
- }
- }
-}
-
-UmlUseCase *UmlExtend::extendedCase() const
-{
- // This is a read-write association end
-
- return _extendedCase;
-}
-
-void UmlExtend::setExtendedCase(UmlUseCase *extendedCase)
-{
- // This is a read-write association end
-
- if (_extendedCase != extendedCase) {
- // Adjust subsetted properties
- removeTarget(_extendedCase);
-
- _extendedCase = extendedCase;
-
- // Adjust subsetted properties
- if (extendedCase) {
- addTarget(extendedCase);
- }
- }
-}
-
-UmlUseCase *UmlExtend::extension() const
-{
- // This is a read-write association end
-
- return _extension;
-}
-
-void UmlExtend::setExtension(UmlUseCase *extension)
-{
- // This is a read-write association end
-
- if (_extension != extension) {
- // Adjust subsetted properties
- removeSource(_extension);
-
- _extension = extension;
-
- // Adjust subsetted properties
- if (extension) {
- addSource(extension);
- }
- setNamespace(extension);
- }
-}
-
-const QList<UmlExtensionPoint *> UmlExtend::extensionLocation() const
-{
- // This is a read-write association end
-
- return _extensionLocation;
-}
-
-void UmlExtend::addExtensionLocation(UmlExtensionPoint *extensionLocation)
-{
- // This is a read-write association end
-
- if (!_extensionLocation.contains(extensionLocation)) {
- _extensionLocation.append(extensionLocation);
- }
-}
-
-void UmlExtend::removeExtensionLocation(UmlExtensionPoint *extensionLocation)
-{
- // This is a read-write association end
-
- if (_extensionLocation.contains(extensionLocation)) {
- _extensionLocation.removeAll(extensionLocation);
- }
-}
-
diff --git a/src/uml/internal/umlextend_p.h b/src/uml/internal/umlextend_p.h
deleted file mode 100644
index c18a6874..00000000
--- a/src/uml/internal/umlextend_p.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXTEND_H
-#define UMLEXTEND_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConstraint;
-class UmlExtensionPoint;
-class UmlUseCase;
-
-class Q_UML_EXPORT UmlExtend : public UmlDirectedRelationship, public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlExtend();
-
- // Owned attributes
- UmlConstraint *condition() const;
- void setCondition(UmlConstraint *condition);
- UmlUseCase *extendedCase() const;
- void setExtendedCase(UmlUseCase *extendedCase);
- UmlUseCase *extension() const;
- void setExtension(UmlUseCase *extension);
- const QList<UmlExtensionPoint *> extensionLocation() const;
- void addExtensionLocation(UmlExtensionPoint *extensionLocation);
- void removeExtensionLocation(UmlExtensionPoint *extensionLocation);
-
-protected:
- UmlConstraint *_condition;
- UmlUseCase *_extendedCase;
- UmlUseCase *_extension;
- QList<UmlExtensionPoint *> _extensionLocation;
-};
-
-#endif // UMLEXTEND_H
-
diff --git a/src/uml/internal/umlextension.cpp b/src/uml/internal/umlextension.cpp
deleted file mode 100644
index 03840290..00000000
--- a/src/uml/internal/umlextension.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlextension_p.h"
-
-#include "private/umlclass_p.h"
-#include "private/umlextensionend_p.h"
-#include "private/umlproperty_p.h"
-
-UmlExtension::UmlExtension() :
- _ownedEnd(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlExtension::isRequired() const
-{
- // This is a read-only derived property
-
- qWarning("UmlExtension::isRequired(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlExtension::setRequired(bool isRequired)
-{
- // This is a read-only derived property
-
- qWarning("UmlExtension::isRequired(): to be implemented (this is a derived property)");
- Q_UNUSED(isRequired);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlClass *UmlExtension::metaclass() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlExtension::metaclass(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlExtension::setMetaclass(UmlClass *metaclass)
-{
- // This is a read-only derived association end
-
- qWarning("UmlExtension::metaclass(): to be implemented (this is a derived association end)");
- Q_UNUSED(metaclass);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlExtensionEnd *UmlExtension::ownedEnd() const
-{
- // This is a read-write association end
-
- return _ownedEnd;
-}
-
-void UmlExtension::setOwnedEnd(UmlExtensionEnd *ownedEnd)
-{
- // This is a read-write association end
-
- if (_ownedEnd != ownedEnd) {
- _ownedEnd = ownedEnd;
- }
-}
-
-// OPERATIONS
-
-UmlProperty *UmlExtension::metaclassEnd(
- ) const
-{
- qWarning("UmlExtension::metaclassEnd(): to be implemented (operation)");
-
- return 0;
-}
-
diff --git a/src/uml/internal/umlextension_p.h b/src/uml/internal/umlextension_p.h
deleted file mode 100644
index 09ace8ca..00000000
--- a/src/uml/internal/umlextension_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXTENSION_H
-#define UMLEXTENSION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlassociation_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClass;
-class UmlExtensionEnd;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlExtension : public UmlAssociation
-{
-public:
- Q_DECL_HIDDEN explicit UmlExtension();
-
- // Owned attributes
- bool isRequired() const;
- Q_DECL_HIDDEN void setRequired(bool isRequired);
- UmlClass *metaclass() const;
- Q_DECL_HIDDEN void setMetaclass(UmlClass *metaclass);
- UmlExtensionEnd *ownedEnd() const;
- void setOwnedEnd(UmlExtensionEnd *ownedEnd);
-
- // Operations
- UmlProperty *metaclassEnd() const;
-
-protected:
- UmlExtensionEnd *_ownedEnd;
-};
-
-#endif // UMLEXTENSION_H
-
diff --git a/src/uml/internal/umlextensionend.cpp b/src/uml/internal/umlextensionend.cpp
deleted file mode 100644
index 25bc7678..00000000
--- a/src/uml/internal/umlextensionend.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlextensionend_p.h"
-
-#include "private/umlstereotype_p.h"
-
-UmlExtensionEnd::UmlExtensionEnd() :
- _type(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-int UmlExtensionEnd::lower() const
-{
- // This is a read-write derived property
-
- qWarning("UmlExtensionEnd::lower(): to be implemented (this is a derived property)");
-
- return int();
-}
-
-void UmlExtensionEnd::setLower(int lower)
-{
- // This is a read-write derived property
-
- qWarning("UmlExtensionEnd::lower(): to be implemented (this is a derived property)");
- Q_UNUSED(lower);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlStereotype *UmlExtensionEnd::type() const
-{
- // This is a read-write association end
-
- return _type;
-}
-
-void UmlExtensionEnd::setType(UmlStereotype *type)
-{
- // This is a read-write association end
-
- if (_type != type) {
- _type = type;
- }
-}
-
-// OPERATIONS
-
-int UmlExtensionEnd::lowerBound(
- ) const
-{
- qWarning("UmlExtensionEnd::lowerBound(): to be implemented (operation)");
-
- return int ();
-}
-
diff --git a/src/uml/internal/umlextensionend_p.h b/src/uml/internal/umlextensionend_p.h
deleted file mode 100644
index 7cbe00cf..00000000
--- a/src/uml/internal/umlextensionend_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXTENSIONEND_H
-#define UMLEXTENSIONEND_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlproperty_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlStereotype;
-
-class Q_UML_EXPORT UmlExtensionEnd : public UmlProperty
-{
-public:
- Q_DECL_HIDDEN explicit UmlExtensionEnd();
-
- // Owned attributes
- int lower() const;
- void setLower(int lower);
- UmlStereotype *type() const;
- void setType(UmlStereotype *type);
-
- // Operations
- int lowerBound() const;
-
-protected:
- UmlStereotype *_type;
-};
-
-#endif // UMLEXTENSIONEND_H
-
diff --git a/src/uml/internal/umlextensionpoint.cpp b/src/uml/internal/umlextensionpoint.cpp
deleted file mode 100644
index e2aa5552..00000000
--- a/src/uml/internal/umlextensionpoint.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlextensionpoint_p.h"
-
-#include "private/umlusecase_p.h"
-
-UmlExtensionPoint::UmlExtensionPoint() :
- _useCase(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlUseCase *UmlExtensionPoint::useCase() const
-{
- // This is a read-write association end
-
- return _useCase;
-}
-
-void UmlExtensionPoint::setUseCase(UmlUseCase *useCase)
-{
- // This is a read-write association end
-
- if (_useCase != useCase) {
- // Adjust subsetted properties
-
- _useCase = useCase;
-
- // Adjust subsetted properties
- setNamespace(useCase);
- }
-}
-
diff --git a/src/uml/internal/umlextensionpoint_p.h b/src/uml/internal/umlextensionpoint_p.h
deleted file mode 100644
index d537c554..00000000
--- a/src/uml/internal/umlextensionpoint_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLEXTENSIONPOINT_H
-#define UMLEXTENSIONPOINT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlredefinableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlUseCase;
-
-class Q_UML_EXPORT UmlExtensionPoint : public UmlRedefinableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlExtensionPoint();
-
- // Owned attributes
- UmlUseCase *useCase() const;
- void setUseCase(UmlUseCase *useCase);
-
-protected:
- UmlUseCase *_useCase;
-};
-
-#endif // UMLEXTENSIONPOINT_H
-
diff --git a/src/uml/internal/umlfeature.cpp b/src/uml/internal/umlfeature.cpp
deleted file mode 100644
index 057791a7..00000000
--- a/src/uml/internal/umlfeature.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlfeature_p.h"
-
-#include "private/umlclassifier_p.h"
-
-UmlFeature::UmlFeature() :
- _isStatic(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlClassifier *> UmlFeature::featuringClassifier() const
-{
- // This is a read-only derived union association end
-
- return _featuringClassifier;
-}
-
-void UmlFeature::addFeaturingClassifier(UmlClassifier *featuringClassifier)
-{
- // This is a read-only derived union association end
-
- if (!_featuringClassifier.contains(featuringClassifier)) {
- _featuringClassifier.insert(featuringClassifier);
-
- // Adjust opposite properties
- if (featuringClassifier) {
- featuringClassifier->addFeature(this);
- }
- }
-}
-
-void UmlFeature::removeFeaturingClassifier(UmlClassifier *featuringClassifier)
-{
- // This is a read-only derived union association end
-
- if (_featuringClassifier.contains(featuringClassifier)) {
- _featuringClassifier.remove(featuringClassifier);
-
- // Adjust opposite properties
- if (featuringClassifier) {
- featuringClassifier->removeFeature(this);
- }
- }
-}
-
-bool UmlFeature::isStatic() const
-{
- // This is a read-write property
-
- return _isStatic;
-}
-
-void UmlFeature::setStatic(bool isStatic)
-{
- // This is a read-write property
-
- if (_isStatic != isStatic) {
- _isStatic = isStatic;
- }
-}
-
diff --git a/src/uml/internal/umlfeature_p.h b/src/uml/internal/umlfeature_p.h
deleted file mode 100644
index 9c57e9bd..00000000
--- a/src/uml/internal/umlfeature_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLFEATURE_H
-#define UMLFEATURE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlredefinableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-
-class Q_UML_EXPORT UmlFeature : public UmlRedefinableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlFeature();
-
- // Owned attributes
- const QSet<UmlClassifier *> featuringClassifier() const;
- Q_DECL_HIDDEN void addFeaturingClassifier(UmlClassifier *featuringClassifier);
- Q_DECL_HIDDEN void removeFeaturingClassifier(UmlClassifier *featuringClassifier);
- bool isStatic() const;
- void setStatic(bool isStatic);
-
-protected:
- QSet<UmlClassifier *> _featuringClassifier;
- bool _isStatic;
-};
-
-#endif // UMLFEATURE_H
-
diff --git a/src/uml/internal/umlfinalnode.cpp b/src/uml/internal/umlfinalnode.cpp
deleted file mode 100644
index 9d2db702..00000000
--- a/src/uml/internal/umlfinalnode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlfinalnode_p.h"
-
-UmlFinalNode::UmlFinalNode()
-{
-}
-
diff --git a/src/uml/internal/umlfinalnode_p.h b/src/uml/internal/umlfinalnode_p.h
deleted file mode 100644
index caf6abc5..00000000
--- a/src/uml/internal/umlfinalnode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLFINALNODE_H
-#define UMLFINALNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcontrolnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlFinalNode : public UmlControlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlFinalNode();
-
-protected:
-};
-
-#endif // UMLFINALNODE_H
-
diff --git a/src/uml/internal/umlfinalstate.cpp b/src/uml/internal/umlfinalstate.cpp
deleted file mode 100644
index 594331a5..00000000
--- a/src/uml/internal/umlfinalstate.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlfinalstate_p.h"
-
-UmlFinalState::UmlFinalState()
-{
-}
-
diff --git a/src/uml/internal/umlfinalstate_p.h b/src/uml/internal/umlfinalstate_p.h
deleted file mode 100644
index 51ec03d1..00000000
--- a/src/uml/internal/umlfinalstate_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLFINALSTATE_H
-#define UMLFINALSTATE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstate_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlFinalState : public UmlState
-{
-public:
- Q_DECL_HIDDEN explicit UmlFinalState();
-
-protected:
-};
-
-#endif // UMLFINALSTATE_H
-
diff --git a/src/uml/internal/umlflowfinalnode.cpp b/src/uml/internal/umlflowfinalnode.cpp
deleted file mode 100644
index 1c1ed829..00000000
--- a/src/uml/internal/umlflowfinalnode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlflowfinalnode_p.h"
-
-UmlFlowFinalNode::UmlFlowFinalNode()
-{
-}
-
diff --git a/src/uml/internal/umlflowfinalnode_p.h b/src/uml/internal/umlflowfinalnode_p.h
deleted file mode 100644
index e6ceee75..00000000
--- a/src/uml/internal/umlflowfinalnode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLFLOWFINALNODE_H
-#define UMLFLOWFINALNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlfinalnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlFlowFinalNode : public UmlFinalNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlFlowFinalNode();
-
-protected:
-};
-
-#endif // UMLFLOWFINALNODE_H
-
diff --git a/src/uml/internal/umlforknode.cpp b/src/uml/internal/umlforknode.cpp
deleted file mode 100644
index c1dd9d15..00000000
--- a/src/uml/internal/umlforknode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlforknode_p.h"
-
-UmlForkNode::UmlForkNode()
-{
-}
-
diff --git a/src/uml/internal/umlforknode_p.h b/src/uml/internal/umlforknode_p.h
deleted file mode 100644
index 5faf2301..00000000
--- a/src/uml/internal/umlforknode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLFORKNODE_H
-#define UMLFORKNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcontrolnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlForkNode : public UmlControlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlForkNode();
-
-protected:
-};
-
-#endif // UMLFORKNODE_H
-
diff --git a/src/uml/internal/umlfunctionbehavior.cpp b/src/uml/internal/umlfunctionbehavior.cpp
deleted file mode 100644
index 7adf4798..00000000
--- a/src/uml/internal/umlfunctionbehavior.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlfunctionbehavior_p.h"
-
-UmlFunctionBehavior::UmlFunctionBehavior()
-{
-}
-
diff --git a/src/uml/internal/umlfunctionbehavior_p.h b/src/uml/internal/umlfunctionbehavior_p.h
deleted file mode 100644
index 42e7288c..00000000
--- a/src/uml/internal/umlfunctionbehavior_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLFUNCTIONBEHAVIOR_H
-#define UMLFUNCTIONBEHAVIOR_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlopaquebehavior_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlFunctionBehavior : public UmlOpaqueBehavior
-{
-public:
- Q_DECL_HIDDEN explicit UmlFunctionBehavior();
-
-protected:
-};
-
-#endif // UMLFUNCTIONBEHAVIOR_H
-
diff --git a/src/uml/internal/umlgate.cpp b/src/uml/internal/umlgate.cpp
deleted file mode 100644
index fcd90537..00000000
--- a/src/uml/internal/umlgate.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlgate_p.h"
-
-UmlGate::UmlGate()
-{
-}
-
diff --git a/src/uml/internal/umlgate_p.h b/src/uml/internal/umlgate_p.h
deleted file mode 100644
index 4fdb5a57..00000000
--- a/src/uml/internal/umlgate_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLGATE_H
-#define UMLGATE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmessageend_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlGate : public UmlMessageEnd
-{
-public:
- Q_DECL_HIDDEN explicit UmlGate();
-
-protected:
-};
-
-#endif // UMLGATE_H
-
diff --git a/src/uml/internal/umlgeneralization.cpp b/src/uml/internal/umlgeneralization.cpp
deleted file mode 100644
index 49ac5d50..00000000
--- a/src/uml/internal/umlgeneralization.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlgeneralization_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlgeneralizationset_p.h"
-
-UmlGeneralization::UmlGeneralization() :
- _general(0),
- _isSubstitutable(true),
- _specific(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlGeneralization::general() const
-{
- // This is a read-write association end
-
- return _general;
-}
-
-void UmlGeneralization::setGeneral(UmlClassifier *general)
-{
- // This is a read-write association end
-
- if (_general != general) {
- // Adjust subsetted properties
- removeTarget(_general);
-
- _general = general;
-
- // Adjust subsetted properties
- if (general) {
- addTarget(general);
- }
- }
-}
-
-const QSet<UmlGeneralizationSet *> UmlGeneralization::generalizationSet() const
-{
- // This is a read-write association end
-
- return _generalizationSet;
-}
-
-void UmlGeneralization::addGeneralizationSet(UmlGeneralizationSet *generalizationSet)
-{
- // This is a read-write association end
-
- if (!_generalizationSet.contains(generalizationSet)) {
- _generalizationSet.insert(generalizationSet);
-
- // Adjust opposite properties
- if (generalizationSet) {
- generalizationSet->addGeneralization(this);
- }
- }
-}
-
-void UmlGeneralization::removeGeneralizationSet(UmlGeneralizationSet *generalizationSet)
-{
- // This is a read-write association end
-
- if (_generalizationSet.contains(generalizationSet)) {
- _generalizationSet.remove(generalizationSet);
-
- // Adjust opposite properties
- if (generalizationSet) {
- generalizationSet->removeGeneralization(this);
- }
- }
-}
-
-bool UmlGeneralization::isSubstitutable() const
-{
- // This is a read-write property
-
- return _isSubstitutable;
-}
-
-void UmlGeneralization::setSubstitutable(bool isSubstitutable)
-{
- // This is a read-write property
-
- if (_isSubstitutable != isSubstitutable) {
- _isSubstitutable = isSubstitutable;
- }
-}
-
-UmlClassifier *UmlGeneralization::specific() const
-{
- // This is a read-write association end
-
- return _specific;
-}
-
-void UmlGeneralization::setSpecific(UmlClassifier *specific)
-{
- // This is a read-write association end
-
- if (_specific != specific) {
- // Adjust subsetted properties
- removeSource(_specific);
-
- _specific = specific;
-
- // Adjust subsetted properties
- setOwner(specific);
- if (specific) {
- addSource(specific);
- }
- }
-}
-
diff --git a/src/uml/internal/umlgeneralization_p.h b/src/uml/internal/umlgeneralization_p.h
deleted file mode 100644
index 9b95b5c2..00000000
--- a/src/uml/internal/umlgeneralization_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLGENERALIZATION_H
-#define UMLGENERALIZATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlGeneralizationSet;
-
-class Q_UML_EXPORT UmlGeneralization : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlGeneralization();
-
- // Owned attributes
- UmlClassifier *general() const;
- void setGeneral(UmlClassifier *general);
- const QSet<UmlGeneralizationSet *> generalizationSet() const;
- void addGeneralizationSet(UmlGeneralizationSet *generalizationSet);
- void removeGeneralizationSet(UmlGeneralizationSet *generalizationSet);
- bool isSubstitutable() const;
- void setSubstitutable(bool isSubstitutable);
- UmlClassifier *specific() const;
- void setSpecific(UmlClassifier *specific);
-
-protected:
- UmlClassifier *_general;
- QSet<UmlGeneralizationSet *> _generalizationSet;
- bool _isSubstitutable;
- UmlClassifier *_specific;
-};
-
-#endif // UMLGENERALIZATION_H
-
diff --git a/src/uml/internal/umlgeneralizationset.cpp b/src/uml/internal/umlgeneralizationset.cpp
deleted file mode 100644
index d7648ed0..00000000
--- a/src/uml/internal/umlgeneralizationset.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlgeneralizationset_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlgeneralization_p.h"
-
-UmlGeneralizationSet::UmlGeneralizationSet() :
- _isCovering(false),
- _isDisjoint(false),
- _powertype(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlGeneralization *> UmlGeneralizationSet::generalization() const
-{
- // This is a read-write association end
-
- return _generalization;
-}
-
-void UmlGeneralizationSet::addGeneralization(UmlGeneralization *generalization)
-{
- // This is a read-write association end
-
- if (!_generalization.contains(generalization)) {
- _generalization.insert(generalization);
-
- // Adjust opposite properties
- if (generalization) {
- generalization->addGeneralizationSet(this);
- }
- }
-}
-
-void UmlGeneralizationSet::removeGeneralization(UmlGeneralization *generalization)
-{
- // This is a read-write association end
-
- if (_generalization.contains(generalization)) {
- _generalization.remove(generalization);
-
- // Adjust opposite properties
- if (generalization) {
- generalization->removeGeneralizationSet(this);
- }
- }
-}
-
-bool UmlGeneralizationSet::isCovering() const
-{
- // This is a read-write property
-
- return _isCovering;
-}
-
-void UmlGeneralizationSet::setCovering(bool isCovering)
-{
- // This is a read-write property
-
- if (_isCovering != isCovering) {
- _isCovering = isCovering;
- }
-}
-
-bool UmlGeneralizationSet::isDisjoint() const
-{
- // This is a read-write property
-
- return _isDisjoint;
-}
-
-void UmlGeneralizationSet::setDisjoint(bool isDisjoint)
-{
- // This is a read-write property
-
- if (_isDisjoint != isDisjoint) {
- _isDisjoint = isDisjoint;
- }
-}
-
-UmlClassifier *UmlGeneralizationSet::powertype() const
-{
- // This is a read-write association end
-
- return _powertype;
-}
-
-void UmlGeneralizationSet::setPowertype(UmlClassifier *powertype)
-{
- // This is a read-write association end
-
- if (_powertype != powertype) {
- _powertype = powertype;
- }
-}
-
diff --git a/src/uml/internal/umlgeneralizationset_p.h b/src/uml/internal/umlgeneralizationset_p.h
deleted file mode 100644
index ed1f20cc..00000000
--- a/src/uml/internal/umlgeneralizationset_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLGENERALIZATIONSET_H
-#define UMLGENERALIZATIONSET_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlGeneralization;
-
-class Q_UML_EXPORT UmlGeneralizationSet : public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlGeneralizationSet();
-
- // Owned attributes
- const QSet<UmlGeneralization *> generalization() const;
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- bool isCovering() const;
- void setCovering(bool isCovering);
- bool isDisjoint() const;
- void setDisjoint(bool isDisjoint);
- UmlClassifier *powertype() const;
- void setPowertype(UmlClassifier *powertype);
-
-protected:
- QSet<UmlGeneralization *> _generalization;
- bool _isCovering;
- bool _isDisjoint;
- UmlClassifier *_powertype;
-};
-
-#endif // UMLGENERALIZATIONSET_H
-
diff --git a/src/uml/internal/umlgeneralordering.cpp b/src/uml/internal/umlgeneralordering.cpp
deleted file mode 100644
index 40cebda9..00000000
--- a/src/uml/internal/umlgeneralordering.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlgeneralordering_p.h"
-
-#include "private/umloccurrencespecification_p.h"
-
-UmlGeneralOrdering::UmlGeneralOrdering() :
- _after(0),
- _before(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOccurrenceSpecification *UmlGeneralOrdering::after() const
-{
- // This is a read-write association end
-
- return _after;
-}
-
-void UmlGeneralOrdering::setAfter(UmlOccurrenceSpecification *after)
-{
- // This is a read-write association end
-
- if (_after != after) {
- _after = after;
- }
-}
-
-UmlOccurrenceSpecification *UmlGeneralOrdering::before() const
-{
- // This is a read-write association end
-
- return _before;
-}
-
-void UmlGeneralOrdering::setBefore(UmlOccurrenceSpecification *before)
-{
- // This is a read-write association end
-
- if (_before != before) {
- _before = before;
- }
-}
-
diff --git a/src/uml/internal/umlgeneralordering_p.h b/src/uml/internal/umlgeneralordering_p.h
deleted file mode 100644
index 8c4db5af..00000000
--- a/src/uml/internal/umlgeneralordering_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLGENERALORDERING_H
-#define UMLGENERALORDERING_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOccurrenceSpecification;
-
-class Q_UML_EXPORT UmlGeneralOrdering : public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlGeneralOrdering();
-
- // Owned attributes
- UmlOccurrenceSpecification *after() const;
- void setAfter(UmlOccurrenceSpecification *after);
- UmlOccurrenceSpecification *before() const;
- void setBefore(UmlOccurrenceSpecification *before);
-
-protected:
- UmlOccurrenceSpecification *_after;
- UmlOccurrenceSpecification *_before;
-};
-
-#endif // UMLGENERALORDERING_H
-
diff --git a/src/uml/internal/umlimage.cpp b/src/uml/internal/umlimage.cpp
deleted file mode 100644
index 4947a15b..00000000
--- a/src/uml/internal/umlimage.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlimage_p.h"
-
-UmlImage::UmlImage()
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlImage::content() const
-{
- // This is a read-write property
-
- return _content;
-}
-
-void UmlImage::setContent(QString content)
-{
- // This is a read-write property
-
- if (_content != content) {
- _content = content;
- }
-}
-
-QString UmlImage::format() const
-{
- // This is a read-write property
-
- return _format;
-}
-
-void UmlImage::setFormat(QString format)
-{
- // This is a read-write property
-
- if (_format != format) {
- _format = format;
- }
-}
-
-QString UmlImage::location() const
-{
- // This is a read-write property
-
- return _location;
-}
-
-void UmlImage::setLocation(QString location)
-{
- // This is a read-write property
-
- if (_location != location) {
- _location = location;
- }
-}
-
diff --git a/src/uml/internal/umlimage_p.h b/src/uml/internal/umlimage_p.h
deleted file mode 100644
index fd7bd2ba..00000000
--- a/src/uml/internal/umlimage_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLIMAGE_H
-#define UMLIMAGE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlImage : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlImage();
-
- // Owned attributes
- QString content() const;
- void setContent(QString content);
- QString format() const;
- void setFormat(QString format);
- QString location() const;
- void setLocation(QString location);
-
-protected:
- QString _content;
- QString _format;
- QString _location;
-};
-
-#endif // UMLIMAGE_H
-
diff --git a/src/uml/internal/umlinclude.cpp b/src/uml/internal/umlinclude.cpp
deleted file mode 100644
index a48bcbaf..00000000
--- a/src/uml/internal/umlinclude.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinclude_p.h"
-
-#include "private/umlusecase_p.h"
-
-UmlInclude::UmlInclude() :
- _addition(0),
- _includingCase(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlUseCase *UmlInclude::addition() const
-{
- // This is a read-write association end
-
- return _addition;
-}
-
-void UmlInclude::setAddition(UmlUseCase *addition)
-{
- // This is a read-write association end
-
- if (_addition != addition) {
- // Adjust subsetted properties
- removeTarget(_addition);
-
- _addition = addition;
-
- // Adjust subsetted properties
- if (addition) {
- addTarget(addition);
- }
- }
-}
-
-UmlUseCase *UmlInclude::includingCase() const
-{
- // This is a read-write association end
-
- return _includingCase;
-}
-
-void UmlInclude::setIncludingCase(UmlUseCase *includingCase)
-{
- // This is a read-write association end
-
- if (_includingCase != includingCase) {
- // Adjust subsetted properties
- removeSource(_includingCase);
-
- _includingCase = includingCase;
-
- // Adjust subsetted properties
- if (includingCase) {
- addSource(includingCase);
- }
- setNamespace(includingCase);
- }
-}
-
diff --git a/src/uml/internal/umlinclude_p.h b/src/uml/internal/umlinclude_p.h
deleted file mode 100644
index 0b16fa22..00000000
--- a/src/uml/internal/umlinclude_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINCLUDE_H
-#define UMLINCLUDE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlUseCase;
-
-class Q_UML_EXPORT UmlInclude : public UmlDirectedRelationship, public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlInclude();
-
- // Owned attributes
- UmlUseCase *addition() const;
- void setAddition(UmlUseCase *addition);
- UmlUseCase *includingCase() const;
- void setIncludingCase(UmlUseCase *includingCase);
-
-protected:
- UmlUseCase *_addition;
- UmlUseCase *_includingCase;
-};
-
-#endif // UMLINCLUDE_H
-
diff --git a/src/uml/internal/umlinformationflow.cpp b/src/uml/internal/umlinformationflow.cpp
deleted file mode 100644
index 33919288..00000000
--- a/src/uml/internal/umlinformationflow.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinformationflow_p.h"
-
-#include "private/umlactivityedge_p.h"
-#include "private/umlclassifier_p.h"
-#include "private/umlconnector_p.h"
-#include "private/umlmessage_p.h"
-#include "private/umlnamedelement_p.h"
-#include "private/umlrelationship_p.h"
-
-UmlInformationFlow::UmlInformationFlow()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlClassifier *> UmlInformationFlow::conveyed() const
-{
- // This is a read-write association end
-
- return _conveyed;
-}
-
-void UmlInformationFlow::addConveyed(UmlClassifier *conveyed)
-{
- // This is a read-write association end
-
- if (!_conveyed.contains(conveyed)) {
- _conveyed.insert(conveyed);
- }
-}
-
-void UmlInformationFlow::removeConveyed(UmlClassifier *conveyed)
-{
- // This is a read-write association end
-
- if (_conveyed.contains(conveyed)) {
- _conveyed.remove(conveyed);
- }
-}
-
-const QSet<UmlNamedElement *> UmlInformationFlow::informationSource() const
-{
- // This is a read-write association end
-
- return _informationSource;
-}
-
-void UmlInformationFlow::addInformationSource(UmlNamedElement *informationSource)
-{
- // This is a read-write association end
-
- if (!_informationSource.contains(informationSource)) {
- _informationSource.insert(informationSource);
-
- // Adjust subsetted properties
- addSource(informationSource);
- }
-}
-
-void UmlInformationFlow::removeInformationSource(UmlNamedElement *informationSource)
-{
- // This is a read-write association end
-
- if (_informationSource.contains(informationSource)) {
- _informationSource.remove(informationSource);
-
- // Adjust subsetted properties
- removeSource(informationSource);
- }
-}
-
-const QSet<UmlNamedElement *> UmlInformationFlow::informationTarget() const
-{
- // This is a read-write association end
-
- return _informationTarget;
-}
-
-void UmlInformationFlow::addInformationTarget(UmlNamedElement *informationTarget)
-{
- // This is a read-write association end
-
- if (!_informationTarget.contains(informationTarget)) {
- _informationTarget.insert(informationTarget);
-
- // Adjust subsetted properties
- addTarget(informationTarget);
- }
-}
-
-void UmlInformationFlow::removeInformationTarget(UmlNamedElement *informationTarget)
-{
- // This is a read-write association end
-
- if (_informationTarget.contains(informationTarget)) {
- _informationTarget.remove(informationTarget);
-
- // Adjust subsetted properties
- removeTarget(informationTarget);
- }
-}
-
-const QSet<UmlRelationship *> UmlInformationFlow::realization() const
-{
- // This is a read-write association end
-
- return _realization;
-}
-
-void UmlInformationFlow::addRealization(UmlRelationship *realization)
-{
- // This is a read-write association end
-
- if (!_realization.contains(realization)) {
- _realization.insert(realization);
- }
-}
-
-void UmlInformationFlow::removeRealization(UmlRelationship *realization)
-{
- // This is a read-write association end
-
- if (_realization.contains(realization)) {
- _realization.remove(realization);
- }
-}
-
-const QSet<UmlActivityEdge *> UmlInformationFlow::realizingActivityEdge() const
-{
- // This is a read-write association end
-
- return _realizingActivityEdge;
-}
-
-void UmlInformationFlow::addRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge)
-{
- // This is a read-write association end
-
- if (!_realizingActivityEdge.contains(realizingActivityEdge)) {
- _realizingActivityEdge.insert(realizingActivityEdge);
- }
-}
-
-void UmlInformationFlow::removeRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge)
-{
- // This is a read-write association end
-
- if (_realizingActivityEdge.contains(realizingActivityEdge)) {
- _realizingActivityEdge.remove(realizingActivityEdge);
- }
-}
-
-const QSet<UmlConnector *> UmlInformationFlow::realizingConnector() const
-{
- // This is a read-write association end
-
- return _realizingConnector;
-}
-
-void UmlInformationFlow::addRealizingConnector(UmlConnector *realizingConnector)
-{
- // This is a read-write association end
-
- if (!_realizingConnector.contains(realizingConnector)) {
- _realizingConnector.insert(realizingConnector);
- }
-}
-
-void UmlInformationFlow::removeRealizingConnector(UmlConnector *realizingConnector)
-{
- // This is a read-write association end
-
- if (_realizingConnector.contains(realizingConnector)) {
- _realizingConnector.remove(realizingConnector);
- }
-}
-
-const QSet<UmlMessage *> UmlInformationFlow::realizingMessage() const
-{
- // This is a read-write association end
-
- return _realizingMessage;
-}
-
-void UmlInformationFlow::addRealizingMessage(UmlMessage *realizingMessage)
-{
- // This is a read-write association end
-
- if (!_realizingMessage.contains(realizingMessage)) {
- _realizingMessage.insert(realizingMessage);
- }
-}
-
-void UmlInformationFlow::removeRealizingMessage(UmlMessage *realizingMessage)
-{
- // This is a read-write association end
-
- if (_realizingMessage.contains(realizingMessage)) {
- _realizingMessage.remove(realizingMessage);
- }
-}
-
diff --git a/src/uml/internal/umlinformationflow_p.h b/src/uml/internal/umlinformationflow_p.h
deleted file mode 100644
index 88e4ca50..00000000
--- a/src/uml/internal/umlinformationflow_p.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINFORMATIONFLOW_H
-#define UMLINFORMATIONFLOW_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivityEdge;
-class UmlClassifier;
-class UmlConnector;
-class UmlMessage;
-class UmlNamedElement;
-class UmlRelationship;
-
-class Q_UML_EXPORT UmlInformationFlow : public UmlDirectedRelationship, public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlInformationFlow();
-
- // Owned attributes
- const QSet<UmlClassifier *> conveyed() const;
- void addConveyed(UmlClassifier *conveyed);
- void removeConveyed(UmlClassifier *conveyed);
- const QSet<UmlNamedElement *> informationSource() const;
- void addInformationSource(UmlNamedElement *informationSource);
- void removeInformationSource(UmlNamedElement *informationSource);
- const QSet<UmlNamedElement *> informationTarget() const;
- void addInformationTarget(UmlNamedElement *informationTarget);
- void removeInformationTarget(UmlNamedElement *informationTarget);
- const QSet<UmlRelationship *> realization() const;
- void addRealization(UmlRelationship *realization);
- void removeRealization(UmlRelationship *realization);
- const QSet<UmlActivityEdge *> realizingActivityEdge() const;
- void addRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge);
- void removeRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge);
- const QSet<UmlConnector *> realizingConnector() const;
- void addRealizingConnector(UmlConnector *realizingConnector);
- void removeRealizingConnector(UmlConnector *realizingConnector);
- const QSet<UmlMessage *> realizingMessage() const;
- void addRealizingMessage(UmlMessage *realizingMessage);
- void removeRealizingMessage(UmlMessage *realizingMessage);
-
-protected:
- QSet<UmlClassifier *> _conveyed;
- QSet<UmlNamedElement *> _informationSource;
- QSet<UmlNamedElement *> _informationTarget;
- QSet<UmlRelationship *> _realization;
- QSet<UmlActivityEdge *> _realizingActivityEdge;
- QSet<UmlConnector *> _realizingConnector;
- QSet<UmlMessage *> _realizingMessage;
-};
-
-#endif // UMLINFORMATIONFLOW_H
-
diff --git a/src/uml/internal/umlinformationitem.cpp b/src/uml/internal/umlinformationitem.cpp
deleted file mode 100644
index 91fa0830..00000000
--- a/src/uml/internal/umlinformationitem.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinformationitem_p.h"
-
-UmlInformationItem::UmlInformationItem()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlClassifier *> UmlInformationItem::represented() const
-{
- // This is a read-write association end
-
- return _represented;
-}
-
-void UmlInformationItem::addRepresented(UmlClassifier *represented)
-{
- // This is a read-write association end
-
- if (!_represented.contains(represented)) {
- _represented.insert(represented);
- }
-}
-
-void UmlInformationItem::removeRepresented(UmlClassifier *represented)
-{
- // This is a read-write association end
-
- if (_represented.contains(represented)) {
- _represented.remove(represented);
- }
-}
-
diff --git a/src/uml/internal/umlinformationitem_p.h b/src/uml/internal/umlinformationitem_p.h
deleted file mode 100644
index 2333e5df..00000000
--- a/src/uml/internal/umlinformationitem_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINFORMATIONITEM_H
-#define UMLINFORMATIONITEM_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlInformationItem : public UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlInformationItem();
-
- // Owned attributes
- const QSet<UmlClassifier *> represented() const;
- void addRepresented(UmlClassifier *represented);
- void removeRepresented(UmlClassifier *represented);
-
-protected:
- QSet<UmlClassifier *> _represented;
-};
-
-#endif // UMLINFORMATIONITEM_H
-
diff --git a/src/uml/internal/umlinitialnode.cpp b/src/uml/internal/umlinitialnode.cpp
deleted file mode 100644
index b10fa633..00000000
--- a/src/uml/internal/umlinitialnode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinitialnode_p.h"
-
-UmlInitialNode::UmlInitialNode()
-{
-}
-
diff --git a/src/uml/internal/umlinitialnode_p.h b/src/uml/internal/umlinitialnode_p.h
deleted file mode 100644
index 3557d341..00000000
--- a/src/uml/internal/umlinitialnode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINITIALNODE_H
-#define UMLINITIALNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcontrolnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlInitialNode : public UmlControlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlInitialNode();
-
-protected:
-};
-
-#endif // UMLINITIALNODE_H
-
diff --git a/src/uml/internal/umlinputpin.cpp b/src/uml/internal/umlinputpin.cpp
deleted file mode 100644
index 85df8887..00000000
--- a/src/uml/internal/umlinputpin.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinputpin_p.h"
-
-UmlInputPin::UmlInputPin()
-{
-}
-
diff --git a/src/uml/internal/umlinputpin_p.h b/src/uml/internal/umlinputpin_p.h
deleted file mode 100644
index d64f5a0e..00000000
--- a/src/uml/internal/umlinputpin_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINPUTPIN_H
-#define UMLINPUTPIN_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpin_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlInputPin : public UmlPin
-{
-public:
- Q_DECL_HIDDEN explicit UmlInputPin();
-
-protected:
-};
-
-#endif // UMLINPUTPIN_H
-
diff --git a/src/uml/internal/umlinstancespecification.cpp b/src/uml/internal/umlinstancespecification.cpp
deleted file mode 100644
index 6e1c22cb..00000000
--- a/src/uml/internal/umlinstancespecification.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinstancespecification_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlslot_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlInstanceSpecification::UmlInstanceSpecification() :
- _specification(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlClassifier *> UmlInstanceSpecification::classifier() const
-{
- // This is a read-write association end
-
- return _classifier;
-}
-
-void UmlInstanceSpecification::addClassifier(UmlClassifier *classifier)
-{
- // This is a read-write association end
-
- if (!_classifier.contains(classifier)) {
- _classifier.insert(classifier);
- }
-}
-
-void UmlInstanceSpecification::removeClassifier(UmlClassifier *classifier)
-{
- // This is a read-write association end
-
- if (_classifier.contains(classifier)) {
- _classifier.remove(classifier);
- }
-}
-
-const QSet<UmlSlot *> UmlInstanceSpecification::slot_() const
-{
- // This is a read-write association end
-
- return _slot_;
-}
-
-void UmlInstanceSpecification::addSlot(UmlSlot *slot_)
-{
- // This is a read-write association end
-
- if (!_slot_.contains(slot_)) {
- _slot_.insert(slot_);
-
- // Adjust subsetted properties
- addOwnedElement(slot_);
-
- // Adjust opposite properties
- if (slot_) {
- slot_->setOwningInstance(this);
- }
- }
-}
-
-void UmlInstanceSpecification::removeSlot(UmlSlot *slot_)
-{
- // This is a read-write association end
-
- if (_slot_.contains(slot_)) {
- _slot_.remove(slot_);
-
- // Adjust subsetted properties
- removeOwnedElement(slot_);
-
- // Adjust opposite properties
- if (slot_) {
- slot_->setOwningInstance(0);
- }
- }
-}
-
-UmlValueSpecification *UmlInstanceSpecification::specification() const
-{
- // This is a read-write association end
-
- return _specification;
-}
-
-void UmlInstanceSpecification::setSpecification(UmlValueSpecification *specification)
-{
- // This is a read-write association end
-
- if (_specification != specification) {
- // Adjust subsetted properties
- removeOwnedElement(_specification);
-
- _specification = specification;
-
- // Adjust subsetted properties
- if (specification) {
- addOwnedElement(specification);
- }
- }
-}
-
diff --git a/src/uml/internal/umlinstancespecification_p.h b/src/uml/internal/umlinstancespecification_p.h
deleted file mode 100644
index aa38be8c..00000000
--- a/src/uml/internal/umlinstancespecification_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINSTANCESPECIFICATION_H
-#define UMLINSTANCESPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldeployedartifact_p.h"
-#include "private/umlpackageableelement_p.h"
-#include "private/umldeploymenttarget_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlSlot;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlInstanceSpecification : public UmlDeployedArtifact, public UmlPackageableElement, public UmlDeploymentTarget
-{
-public:
- Q_DECL_HIDDEN explicit UmlInstanceSpecification();
-
- // Owned attributes
- const QSet<UmlClassifier *> classifier() const;
- void addClassifier(UmlClassifier *classifier);
- void removeClassifier(UmlClassifier *classifier);
- const QSet<UmlSlot *> slot_() const;
- void addSlot(UmlSlot *slot_);
- void removeSlot(UmlSlot *slot_);
- UmlValueSpecification *specification() const;
- void setSpecification(UmlValueSpecification *specification);
-
-protected:
- QSet<UmlClassifier *> _classifier;
- QSet<UmlSlot *> _slot_;
- UmlValueSpecification *_specification;
-};
-
-#endif // UMLINSTANCESPECIFICATION_H
-
diff --git a/src/uml/internal/umlinstancevalue.cpp b/src/uml/internal/umlinstancevalue.cpp
deleted file mode 100644
index e77f8ec4..00000000
--- a/src/uml/internal/umlinstancevalue.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinstancevalue_p.h"
-
-#include "private/umlinstancespecification_p.h"
-
-UmlInstanceValue::UmlInstanceValue() :
- _instance(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInstanceSpecification *UmlInstanceValue::instance() const
-{
- // This is a read-write association end
-
- return _instance;
-}
-
-void UmlInstanceValue::setInstance(UmlInstanceSpecification *instance)
-{
- // This is a read-write association end
-
- if (_instance != instance) {
- _instance = instance;
- }
-}
-
diff --git a/src/uml/internal/umlinstancevalue_p.h b/src/uml/internal/umlinstancevalue_p.h
deleted file mode 100644
index c49e46fc..00000000
--- a/src/uml/internal/umlinstancevalue_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINSTANCEVALUE_H
-#define UMLINSTANCEVALUE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInstanceSpecification;
-
-class Q_UML_EXPORT UmlInstanceValue : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlInstanceValue();
-
- // Owned attributes
- UmlInstanceSpecification *instance() const;
- void setInstance(UmlInstanceSpecification *instance);
-
-protected:
- UmlInstanceSpecification *_instance;
-};
-
-#endif // UMLINSTANCEVALUE_H
-
diff --git a/src/uml/internal/umlinteraction.cpp b/src/uml/internal/umlinteraction.cpp
deleted file mode 100644
index 663e2ae4..00000000
--- a/src/uml/internal/umlinteraction.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinteraction_p.h"
-
-#include "private/umlaction_p.h"
-#include "private/umlgate_p.h"
-#include "private/umllifeline_p.h"
-#include "private/umlmessage_p.h"
-
-UmlInteraction::UmlInteraction()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlAction *> UmlInteraction::action() const
-{
- // This is a read-write association end
-
- return _action;
-}
-
-void UmlInteraction::addAction(UmlAction *action)
-{
- // This is a read-write association end
-
- if (!_action.contains(action)) {
- _action.insert(action);
-
- // Adjust subsetted properties
- addOwnedElement(action);
- }
-}
-
-void UmlInteraction::removeAction(UmlAction *action)
-{
- // This is a read-write association end
-
- if (_action.contains(action)) {
- _action.remove(action);
-
- // Adjust subsetted properties
- removeOwnedElement(action);
- }
-}
-
-const QSet<UmlGate *> UmlInteraction::formalGate() const
-{
- // This is a read-write association end
-
- return _formalGate;
-}
-
-void UmlInteraction::addFormalGate(UmlGate *formalGate)
-{
- // This is a read-write association end
-
- if (!_formalGate.contains(formalGate)) {
- _formalGate.insert(formalGate);
-
- // Adjust subsetted properties
- addOwnedMember(formalGate);
- }
-}
-
-void UmlInteraction::removeFormalGate(UmlGate *formalGate)
-{
- // This is a read-write association end
-
- if (_formalGate.contains(formalGate)) {
- _formalGate.remove(formalGate);
-
- // Adjust subsetted properties
- removeOwnedMember(formalGate);
- }
-}
-
-const QList<UmlInteractionFragment *> UmlInteraction::fragment() const
-{
- // This is a read-write association end
-
- return _fragment;
-}
-
-void UmlInteraction::addFragment(UmlInteractionFragment *fragment)
-{
- // This is a read-write association end
-
- if (!_fragment.contains(fragment)) {
- _fragment.append(fragment);
-
- // Adjust subsetted properties
- addOwnedMember(fragment);
-
- // Adjust opposite properties
- if (fragment) {
- fragment->setEnclosingInteraction(this);
- }
- }
-}
-
-void UmlInteraction::removeFragment(UmlInteractionFragment *fragment)
-{
- // This is a read-write association end
-
- if (_fragment.contains(fragment)) {
- _fragment.removeAll(fragment);
-
- // Adjust subsetted properties
- removeOwnedMember(fragment);
-
- // Adjust opposite properties
- if (fragment) {
- fragment->setEnclosingInteraction(0);
- }
- }
-}
-
-const QSet<UmlLifeline *> UmlInteraction::lifeline() const
-{
- // This is a read-write association end
-
- return _lifeline;
-}
-
-void UmlInteraction::addLifeline(UmlLifeline *lifeline)
-{
- // This is a read-write association end
-
- if (!_lifeline.contains(lifeline)) {
- _lifeline.insert(lifeline);
-
- // Adjust subsetted properties
- addOwnedMember(lifeline);
-
- // Adjust opposite properties
- if (lifeline) {
- lifeline->setInteraction(this);
- }
- }
-}
-
-void UmlInteraction::removeLifeline(UmlLifeline *lifeline)
-{
- // This is a read-write association end
-
- if (_lifeline.contains(lifeline)) {
- _lifeline.remove(lifeline);
-
- // Adjust subsetted properties
- removeOwnedMember(lifeline);
-
- // Adjust opposite properties
- if (lifeline) {
- lifeline->setInteraction(0);
- }
- }
-}
-
-const QSet<UmlMessage *> UmlInteraction::message() const
-{
- // This is a read-write association end
-
- return _message;
-}
-
-void UmlInteraction::addMessage(UmlMessage *message)
-{
- // This is a read-write association end
-
- if (!_message.contains(message)) {
- _message.insert(message);
-
- // Adjust subsetted properties
- addOwnedMember(message);
-
- // Adjust opposite properties
- if (message) {
- message->setInteraction(this);
- }
- }
-}
-
-void UmlInteraction::removeMessage(UmlMessage *message)
-{
- // This is a read-write association end
-
- if (_message.contains(message)) {
- _message.remove(message);
-
- // Adjust subsetted properties
- removeOwnedMember(message);
-
- // Adjust opposite properties
- if (message) {
- message->setInteraction(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlinteraction_p.h b/src/uml/internal/umlinteraction_p.h
deleted file mode 100644
index a5a5276e..00000000
--- a/src/uml/internal/umlinteraction_p.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERACTION_H
-#define UMLINTERACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavior_p.h"
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlAction;
-class UmlGate;
-class UmlLifeline;
-class UmlMessage;
-
-class Q_UML_EXPORT UmlInteraction : public UmlBehavior, public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlInteraction();
-
- // Owned attributes
- const QSet<UmlAction *> action() const;
- void addAction(UmlAction *action);
- void removeAction(UmlAction *action);
- const QSet<UmlGate *> formalGate() const;
- void addFormalGate(UmlGate *formalGate);
- void removeFormalGate(UmlGate *formalGate);
- const QList<UmlInteractionFragment *> fragment() const;
- void addFragment(UmlInteractionFragment *fragment);
- void removeFragment(UmlInteractionFragment *fragment);
- const QSet<UmlLifeline *> lifeline() const;
- void addLifeline(UmlLifeline *lifeline);
- void removeLifeline(UmlLifeline *lifeline);
- const QSet<UmlMessage *> message() const;
- void addMessage(UmlMessage *message);
- void removeMessage(UmlMessage *message);
-
-protected:
- QSet<UmlAction *> _action;
- QSet<UmlGate *> _formalGate;
- QList<UmlInteractionFragment *> _fragment;
- QSet<UmlLifeline *> _lifeline;
- QSet<UmlMessage *> _message;
-};
-
-#endif // UMLINTERACTION_H
-
diff --git a/src/uml/internal/umlinteractionconstraint.cpp b/src/uml/internal/umlinteractionconstraint.cpp
deleted file mode 100644
index 8c8a1dfb..00000000
--- a/src/uml/internal/umlinteractionconstraint.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinteractionconstraint_p.h"
-
-#include "private/umlvaluespecification_p.h"
-
-UmlInteractionConstraint::UmlInteractionConstraint() :
- _maxint(0),
- _minint(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlValueSpecification *UmlInteractionConstraint::maxint() const
-{
- // This is a read-write association end
-
- return _maxint;
-}
-
-void UmlInteractionConstraint::setMaxint(UmlValueSpecification *maxint)
-{
- // This is a read-write association end
-
- if (_maxint != maxint) {
- // Adjust subsetted properties
- removeOwnedElement(_maxint);
-
- _maxint = maxint;
-
- // Adjust subsetted properties
- if (maxint) {
- addOwnedElement(maxint);
- }
- }
-}
-
-UmlValueSpecification *UmlInteractionConstraint::minint() const
-{
- // This is a read-write association end
-
- return _minint;
-}
-
-void UmlInteractionConstraint::setMinint(UmlValueSpecification *minint)
-{
- // This is a read-write association end
-
- if (_minint != minint) {
- // Adjust subsetted properties
- removeOwnedElement(_minint);
-
- _minint = minint;
-
- // Adjust subsetted properties
- if (minint) {
- addOwnedElement(minint);
- }
- }
-}
-
diff --git a/src/uml/internal/umlinteractionconstraint_p.h b/src/uml/internal/umlinteractionconstraint_p.h
deleted file mode 100644
index 57e5aad3..00000000
--- a/src/uml/internal/umlinteractionconstraint_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERACTIONCONSTRAINT_H
-#define UMLINTERACTIONCONSTRAINT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlconstraint_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlInteractionConstraint : public UmlConstraint
-{
-public:
- Q_DECL_HIDDEN explicit UmlInteractionConstraint();
-
- // Owned attributes
- UmlValueSpecification *maxint() const;
- void setMaxint(UmlValueSpecification *maxint);
- UmlValueSpecification *minint() const;
- void setMinint(UmlValueSpecification *minint);
-
-protected:
- UmlValueSpecification *_maxint;
- UmlValueSpecification *_minint;
-};
-
-#endif // UMLINTERACTIONCONSTRAINT_H
-
diff --git a/src/uml/internal/umlinteractionfragment.cpp b/src/uml/internal/umlinteractionfragment.cpp
deleted file mode 100644
index fbf92e87..00000000
--- a/src/uml/internal/umlinteractionfragment.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinteractionfragment_p.h"
-
-#include "private/umlgeneralordering_p.h"
-#include "private/umlinteraction_p.h"
-#include "private/umlinteractionoperand_p.h"
-#include "private/umllifeline_p.h"
-
-UmlInteractionFragment::UmlInteractionFragment() :
- _enclosingInteraction(0),
- _enclosingOperand(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlLifeline *> UmlInteractionFragment::covered() const
-{
- // This is a read-write association end
-
- return _covered;
-}
-
-void UmlInteractionFragment::addCovered(UmlLifeline *covered)
-{
- // This is a read-write association end
-
- if (!_covered.contains(covered)) {
- _covered.insert(covered);
-
- // Adjust opposite properties
- if (covered) {
- covered->addCoveredBy(this);
- }
- }
-}
-
-void UmlInteractionFragment::removeCovered(UmlLifeline *covered)
-{
- // This is a read-write association end
-
- if (_covered.contains(covered)) {
- _covered.remove(covered);
-
- // Adjust opposite properties
- if (covered) {
- covered->removeCoveredBy(this);
- }
- }
-}
-
-UmlInteraction *UmlInteractionFragment::enclosingInteraction() const
-{
- // This is a read-write association end
-
- return _enclosingInteraction;
-}
-
-void UmlInteractionFragment::setEnclosingInteraction(UmlInteraction *enclosingInteraction)
-{
- // This is a read-write association end
-
- if (_enclosingInteraction != enclosingInteraction) {
- // Adjust subsetted properties
-
- _enclosingInteraction = enclosingInteraction;
-
- // Adjust subsetted properties
- setNamespace(enclosingInteraction);
- }
-}
-
-UmlInteractionOperand *UmlInteractionFragment::enclosingOperand() const
-{
- // This is a read-write association end
-
- return _enclosingOperand;
-}
-
-void UmlInteractionFragment::setEnclosingOperand(UmlInteractionOperand *enclosingOperand)
-{
- // This is a read-write association end
-
- if (_enclosingOperand != enclosingOperand) {
- // Adjust subsetted properties
-
- _enclosingOperand = enclosingOperand;
-
- // Adjust subsetted properties
- setNamespace(enclosingOperand);
- }
-}
-
-const QSet<UmlGeneralOrdering *> UmlInteractionFragment::generalOrdering() const
-{
- // This is a read-write association end
-
- return _generalOrdering;
-}
-
-void UmlInteractionFragment::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- // This is a read-write association end
-
- if (!_generalOrdering.contains(generalOrdering)) {
- _generalOrdering.insert(generalOrdering);
-
- // Adjust subsetted properties
- addOwnedElement(generalOrdering);
- }
-}
-
-void UmlInteractionFragment::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- // This is a read-write association end
-
- if (_generalOrdering.contains(generalOrdering)) {
- _generalOrdering.remove(generalOrdering);
-
- // Adjust subsetted properties
- removeOwnedElement(generalOrdering);
- }
-}
-
diff --git a/src/uml/internal/umlinteractionfragment_p.h b/src/uml/internal/umlinteractionfragment_p.h
deleted file mode 100644
index a1cbef48..00000000
--- a/src/uml/internal/umlinteractionfragment_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERACTIONFRAGMENT_H
-#define UMLINTERACTIONFRAGMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlGeneralOrdering;
-class UmlInteraction;
-class UmlInteractionOperand;
-class UmlLifeline;
-
-class Q_UML_EXPORT UmlInteractionFragment : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlInteractionFragment();
-
- // Owned attributes
- const QSet<UmlLifeline *> covered() const;
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- UmlInteraction *enclosingInteraction() const;
- void setEnclosingInteraction(UmlInteraction *enclosingInteraction);
- UmlInteractionOperand *enclosingOperand() const;
- void setEnclosingOperand(UmlInteractionOperand *enclosingOperand);
- const QSet<UmlGeneralOrdering *> generalOrdering() const;
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
-protected:
- QSet<UmlLifeline *> _covered;
- UmlInteraction *_enclosingInteraction;
- UmlInteractionOperand *_enclosingOperand;
- QSet<UmlGeneralOrdering *> _generalOrdering;
-};
-
-#endif // UMLINTERACTIONFRAGMENT_H
-
diff --git a/src/uml/internal/umlinteractionoperand.cpp b/src/uml/internal/umlinteractionoperand.cpp
deleted file mode 100644
index 4a0b84fc..00000000
--- a/src/uml/internal/umlinteractionoperand.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinteractionoperand_p.h"
-
-#include "private/umlinteractionconstraint_p.h"
-
-UmlInteractionOperand::UmlInteractionOperand() :
- _guard(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlInteractionFragment *> UmlInteractionOperand::fragment() const
-{
- // This is a read-write association end
-
- return _fragment;
-}
-
-void UmlInteractionOperand::addFragment(UmlInteractionFragment *fragment)
-{
- // This is a read-write association end
-
- if (!_fragment.contains(fragment)) {
- _fragment.append(fragment);
-
- // Adjust subsetted properties
- addOwnedMember(fragment);
-
- // Adjust opposite properties
- if (fragment) {
- fragment->setEnclosingOperand(this);
- }
- }
-}
-
-void UmlInteractionOperand::removeFragment(UmlInteractionFragment *fragment)
-{
- // This is a read-write association end
-
- if (_fragment.contains(fragment)) {
- _fragment.removeAll(fragment);
-
- // Adjust subsetted properties
- removeOwnedMember(fragment);
-
- // Adjust opposite properties
- if (fragment) {
- fragment->setEnclosingOperand(0);
- }
- }
-}
-
-UmlInteractionConstraint *UmlInteractionOperand::guard() const
-{
- // This is a read-write association end
-
- return _guard;
-}
-
-void UmlInteractionOperand::setGuard(UmlInteractionConstraint *guard)
-{
- // This is a read-write association end
-
- if (_guard != guard) {
- // Adjust subsetted properties
- removeOwnedElement(_guard);
-
- _guard = guard;
-
- // Adjust subsetted properties
- if (guard) {
- addOwnedElement(guard);
- }
- }
-}
-
diff --git a/src/uml/internal/umlinteractionoperand_p.h b/src/uml/internal/umlinteractionoperand_p.h
deleted file mode 100644
index 7d8f7346..00000000
--- a/src/uml/internal/umlinteractionoperand_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERACTIONOPERAND_H
-#define UMLINTERACTIONOPERAND_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-#include "private/umlnamespace_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInteractionConstraint;
-
-class Q_UML_EXPORT UmlInteractionOperand : public UmlInteractionFragment, public UmlNamespace
-{
-public:
- Q_DECL_HIDDEN explicit UmlInteractionOperand();
-
- // Owned attributes
- const QList<UmlInteractionFragment *> fragment() const;
- void addFragment(UmlInteractionFragment *fragment);
- void removeFragment(UmlInteractionFragment *fragment);
- UmlInteractionConstraint *guard() const;
- void setGuard(UmlInteractionConstraint *guard);
-
-protected:
- QList<UmlInteractionFragment *> _fragment;
- UmlInteractionConstraint *_guard;
-};
-
-#endif // UMLINTERACTIONOPERAND_H
-
diff --git a/src/uml/internal/umlinteractionuse.cpp b/src/uml/internal/umlinteractionuse.cpp
deleted file mode 100644
index fdc3721b..00000000
--- a/src/uml/internal/umlinteractionuse.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinteractionuse_p.h"
-
-#include "private/umlgate_p.h"
-#include "private/umlinteraction_p.h"
-#include "private/umlproperty_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlInteractionUse::UmlInteractionUse() :
- _refersTo(0),
- _returnValue(0),
- _returnValueRecipient(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlGate *> UmlInteractionUse::actualGate() const
-{
- // This is a read-write association end
-
- return _actualGate;
-}
-
-void UmlInteractionUse::addActualGate(UmlGate *actualGate)
-{
- // This is a read-write association end
-
- if (!_actualGate.contains(actualGate)) {
- _actualGate.insert(actualGate);
-
- // Adjust subsetted properties
- addOwnedElement(actualGate);
- }
-}
-
-void UmlInteractionUse::removeActualGate(UmlGate *actualGate)
-{
- // This is a read-write association end
-
- if (_actualGate.contains(actualGate)) {
- _actualGate.remove(actualGate);
-
- // Adjust subsetted properties
- removeOwnedElement(actualGate);
- }
-}
-
-const QList<UmlValueSpecification *> UmlInteractionUse::argument() const
-{
- // This is a read-write association end
-
- return _argument;
-}
-
-void UmlInteractionUse::addArgument(UmlValueSpecification *argument)
-{
- // This is a read-write association end
-
- if (!_argument.contains(argument)) {
- _argument.append(argument);
-
- // Adjust subsetted properties
- addOwnedElement(argument);
- }
-}
-
-void UmlInteractionUse::removeArgument(UmlValueSpecification *argument)
-{
- // This is a read-write association end
-
- if (_argument.contains(argument)) {
- _argument.removeAll(argument);
-
- // Adjust subsetted properties
- removeOwnedElement(argument);
- }
-}
-
-UmlInteraction *UmlInteractionUse::refersTo() const
-{
- // This is a read-write association end
-
- return _refersTo;
-}
-
-void UmlInteractionUse::setRefersTo(UmlInteraction *refersTo)
-{
- // This is a read-write association end
-
- if (_refersTo != refersTo) {
- _refersTo = refersTo;
- }
-}
-
-UmlValueSpecification *UmlInteractionUse::returnValue() const
-{
- // This is a read-write association end
-
- return _returnValue;
-}
-
-void UmlInteractionUse::setReturnValue(UmlValueSpecification *returnValue)
-{
- // This is a read-write association end
-
- if (_returnValue != returnValue) {
- // Adjust subsetted properties
- removeOwnedElement(_returnValue);
-
- _returnValue = returnValue;
-
- // Adjust subsetted properties
- if (returnValue) {
- addOwnedElement(returnValue);
- }
- }
-}
-
-UmlProperty *UmlInteractionUse::returnValueRecipient() const
-{
- // This is a read-write association end
-
- return _returnValueRecipient;
-}
-
-void UmlInteractionUse::setReturnValueRecipient(UmlProperty *returnValueRecipient)
-{
- // This is a read-write association end
-
- if (_returnValueRecipient != returnValueRecipient) {
- _returnValueRecipient = returnValueRecipient;
- }
-}
-
diff --git a/src/uml/internal/umlinteractionuse_p.h b/src/uml/internal/umlinteractionuse_p.h
deleted file mode 100644
index 84b0e4d6..00000000
--- a/src/uml/internal/umlinteractionuse_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERACTIONUSE_H
-#define UMLINTERACTIONUSE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlGate;
-class UmlInteraction;
-class UmlProperty;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlInteractionUse : public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlInteractionUse();
-
- // Owned attributes
- const QSet<UmlGate *> actualGate() const;
- void addActualGate(UmlGate *actualGate);
- void removeActualGate(UmlGate *actualGate);
- const QList<UmlValueSpecification *> argument() const;
- void addArgument(UmlValueSpecification *argument);
- void removeArgument(UmlValueSpecification *argument);
- UmlInteraction *refersTo() const;
- void setRefersTo(UmlInteraction *refersTo);
- UmlValueSpecification *returnValue() const;
- void setReturnValue(UmlValueSpecification *returnValue);
- UmlProperty *returnValueRecipient() const;
- void setReturnValueRecipient(UmlProperty *returnValueRecipient);
-
-protected:
- QSet<UmlGate *> _actualGate;
- QList<UmlValueSpecification *> _argument;
- UmlInteraction *_refersTo;
- UmlValueSpecification *_returnValue;
- UmlProperty *_returnValueRecipient;
-};
-
-#endif // UMLINTERACTIONUSE_H
-
diff --git a/src/uml/internal/umlinterface.cpp b/src/uml/internal/umlinterface.cpp
deleted file mode 100644
index c94837e0..00000000
--- a/src/uml/internal/umlinterface.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinterface_p.h"
-
-#include "private/umloperation_p.h"
-#include "private/umlproperty_p.h"
-#include "private/umlprotocolstatemachine_p.h"
-#include "private/umlreception_p.h"
-
-UmlInterface::UmlInterface() :
- _protocol(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlClassifier *> UmlInterface::nestedClassifier() const
-{
- // This is a read-write association end
-
- return _nestedClassifier;
-}
-
-void UmlInterface::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- // This is a read-write association end
-
- if (!_nestedClassifier.contains(nestedClassifier)) {
- _nestedClassifier.append(nestedClassifier);
-
- // Adjust subsetted properties
- addOwnedMember(nestedClassifier);
- }
-}
-
-void UmlInterface::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- // This is a read-write association end
-
- if (_nestedClassifier.contains(nestedClassifier)) {
- _nestedClassifier.removeAll(nestedClassifier);
-
- // Adjust subsetted properties
- removeOwnedMember(nestedClassifier);
- }
-}
-
-const QList<UmlProperty *> UmlInterface::ownedAttribute() const
-{
- // This is a read-write association end
-
- return _ownedAttribute;
-}
-
-void UmlInterface::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (!_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.append(ownedAttribute);
-
- // Adjust subsetted properties
- addOwnedMember(ownedAttribute);
- addAttribute(ownedAttribute);
-
- // Adjust opposite properties
- if (ownedAttribute) {
- ownedAttribute->setInterface(this);
- }
- }
-}
-
-void UmlInterface::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.removeAll(ownedAttribute);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedAttribute);
- removeAttribute(ownedAttribute);
-
- // Adjust opposite properties
- if (ownedAttribute) {
- ownedAttribute->setInterface(0);
- }
- }
-}
-
-const QList<UmlOperation *> UmlInterface::ownedOperation() const
-{
- // This is a read-write association end
-
- return _ownedOperation;
-}
-
-void UmlInterface::addOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (!_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.append(ownedOperation);
-
- // Adjust subsetted properties
- addFeature(ownedOperation);
- addOwnedMember(ownedOperation);
-
- // Adjust opposite properties
- if (ownedOperation) {
- ownedOperation->setInterface(this);
- }
- }
-}
-
-void UmlInterface::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- // This is a read-write association end
-
- if (_ownedOperation.contains(ownedOperation)) {
- _ownedOperation.removeAll(ownedOperation);
-
- // Adjust subsetted properties
- removeFeature(ownedOperation);
- removeOwnedMember(ownedOperation);
-
- // Adjust opposite properties
- if (ownedOperation) {
- ownedOperation->setInterface(0);
- }
- }
-}
-
-const QSet<UmlReception *> UmlInterface::ownedReception() const
-{
- // This is a read-write association end
-
- return _ownedReception;
-}
-
-void UmlInterface::addOwnedReception(UmlReception *ownedReception)
-{
- // This is a read-write association end
-
- if (!_ownedReception.contains(ownedReception)) {
- _ownedReception.insert(ownedReception);
-
- // Adjust subsetted properties
- addFeature(ownedReception);
- addOwnedMember(ownedReception);
- }
-}
-
-void UmlInterface::removeOwnedReception(UmlReception *ownedReception)
-{
- // This is a read-write association end
-
- if (_ownedReception.contains(ownedReception)) {
- _ownedReception.remove(ownedReception);
-
- // Adjust subsetted properties
- removeFeature(ownedReception);
- removeOwnedMember(ownedReception);
- }
-}
-
-UmlProtocolStateMachine *UmlInterface::protocol() const
-{
- // This is a read-write association end
-
- return _protocol;
-}
-
-void UmlInterface::setProtocol(UmlProtocolStateMachine *protocol)
-{
- // This is a read-write association end
-
- if (_protocol != protocol) {
- // Adjust subsetted properties
- removeOwnedMember(_protocol);
-
- _protocol = protocol;
-
- // Adjust subsetted properties
- if (protocol) {
- addOwnedMember(protocol);
- }
- }
-}
-
-const QSet<UmlInterface *> UmlInterface::redefinedInterface() const
-{
- // This is a read-write association end
-
- return _redefinedInterface;
-}
-
-void UmlInterface::addRedefinedInterface(UmlInterface *redefinedInterface)
-{
- // This is a read-write association end
-
- if (!_redefinedInterface.contains(redefinedInterface)) {
- _redefinedInterface.insert(redefinedInterface);
-
- // Adjust subsetted properties
- addRedefinedClassifier(redefinedInterface);
- }
-}
-
-void UmlInterface::removeRedefinedInterface(UmlInterface *redefinedInterface)
-{
- // This is a read-write association end
-
- if (_redefinedInterface.contains(redefinedInterface)) {
- _redefinedInterface.remove(redefinedInterface);
-
- // Adjust subsetted properties
- removeRedefinedClassifier(redefinedInterface);
- }
-}
-
diff --git a/src/uml/internal/umlinterface_p.h b/src/uml/internal/umlinterface_p.h
deleted file mode 100644
index ca154fec..00000000
--- a/src/uml/internal/umlinterface_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERFACE_H
-#define UMLINTERFACE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOperation;
-class UmlProperty;
-class UmlProtocolStateMachine;
-class UmlReception;
-
-class Q_UML_EXPORT UmlInterface : public UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlInterface();
-
- // Owned attributes
- const QList<UmlClassifier *> nestedClassifier() const;
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- const QList<UmlProperty *> ownedAttribute() const;
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- const QList<UmlOperation *> ownedOperation() const;
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- const QSet<UmlReception *> ownedReception() const;
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- UmlProtocolStateMachine *protocol() const;
- void setProtocol(UmlProtocolStateMachine *protocol);
- const QSet<UmlInterface *> redefinedInterface() const;
- void addRedefinedInterface(UmlInterface *redefinedInterface);
- void removeRedefinedInterface(UmlInterface *redefinedInterface);
-
-protected:
- QList<UmlClassifier *> _nestedClassifier;
- QList<UmlProperty *> _ownedAttribute;
- QList<UmlOperation *> _ownedOperation;
- QSet<UmlReception *> _ownedReception;
- UmlProtocolStateMachine *_protocol;
- QSet<UmlInterface *> _redefinedInterface;
-};
-
-#endif // UMLINTERFACE_H
-
diff --git a/src/uml/internal/umlinterfacerealization.cpp b/src/uml/internal/umlinterfacerealization.cpp
deleted file mode 100644
index 7e8d9b37..00000000
--- a/src/uml/internal/umlinterfacerealization.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinterfacerealization_p.h"
-
-#include "private/umlbehavioredclassifier_p.h"
-#include "private/umlinterface_p.h"
-
-UmlInterfaceRealization::UmlInterfaceRealization() :
- _contract(0),
- _implementingClassifier(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInterface *UmlInterfaceRealization::contract() const
-{
- // This is a read-write association end
-
- return _contract;
-}
-
-void UmlInterfaceRealization::setContract(UmlInterface *contract)
-{
- // This is a read-write association end
-
- if (_contract != contract) {
- // Adjust subsetted properties
- removeSupplier(_contract);
-
- _contract = contract;
-
- // Adjust subsetted properties
- if (contract) {
- addSupplier(contract);
- }
- }
-}
-
-UmlBehavioredClassifier *UmlInterfaceRealization::implementingClassifier() const
-{
- // This is a read-write association end
-
- return _implementingClassifier;
-}
-
-void UmlInterfaceRealization::setImplementingClassifier(UmlBehavioredClassifier *implementingClassifier)
-{
- // This is a read-write association end
-
- if (_implementingClassifier != implementingClassifier) {
- // Adjust subsetted properties
- removeClient(_implementingClassifier);
-
- _implementingClassifier = implementingClassifier;
-
- // Adjust subsetted properties
- setOwner(implementingClassifier);
- if (implementingClassifier) {
- addClient(implementingClassifier);
- }
- }
-}
-
diff --git a/src/uml/internal/umlinterfacerealization_p.h b/src/uml/internal/umlinterfacerealization_p.h
deleted file mode 100644
index dbc626fb..00000000
--- a/src/uml/internal/umlinterfacerealization_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERFACEREALIZATION_H
-#define UMLINTERFACEREALIZATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlrealization_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavioredClassifier;
-class UmlInterface;
-
-class Q_UML_EXPORT UmlInterfaceRealization : public UmlRealization
-{
-public:
- Q_DECL_HIDDEN explicit UmlInterfaceRealization();
-
- // Owned attributes
- UmlInterface *contract() const;
- void setContract(UmlInterface *contract);
- UmlBehavioredClassifier *implementingClassifier() const;
- void setImplementingClassifier(UmlBehavioredClassifier *implementingClassifier);
-
-protected:
- UmlInterface *_contract;
- UmlBehavioredClassifier *_implementingClassifier;
-};
-
-#endif // UMLINTERFACEREALIZATION_H
-
diff --git a/src/uml/internal/umlinterruptibleactivityregion.cpp b/src/uml/internal/umlinterruptibleactivityregion.cpp
deleted file mode 100644
index 3c0984b1..00000000
--- a/src/uml/internal/umlinterruptibleactivityregion.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinterruptibleactivityregion_p.h"
-
-#include "private/umlactivityedge_p.h"
-#include "private/umlactivitynode_p.h"
-
-UmlInterruptibleActivityRegion::UmlInterruptibleActivityRegion()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlActivityEdge *> UmlInterruptibleActivityRegion::interruptingEdge() const
-{
- // This is a read-write association end
-
- return _interruptingEdge;
-}
-
-void UmlInterruptibleActivityRegion::addInterruptingEdge(UmlActivityEdge *interruptingEdge)
-{
- // This is a read-write association end
-
- if (!_interruptingEdge.contains(interruptingEdge)) {
- _interruptingEdge.insert(interruptingEdge);
-
- // Adjust opposite properties
- if (interruptingEdge) {
- interruptingEdge->setInterrupts(this);
- }
- }
-}
-
-void UmlInterruptibleActivityRegion::removeInterruptingEdge(UmlActivityEdge *interruptingEdge)
-{
- // This is a read-write association end
-
- if (_interruptingEdge.contains(interruptingEdge)) {
- _interruptingEdge.remove(interruptingEdge);
-
- // Adjust opposite properties
- if (interruptingEdge) {
- interruptingEdge->setInterrupts(0);
- }
- }
-}
-
-const QSet<UmlActivityNode *> UmlInterruptibleActivityRegion::node() const
-{
- // This is a read-write association end
-
- return _node;
-}
-
-void UmlInterruptibleActivityRegion::addNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (!_node.contains(node)) {
- _node.insert(node);
-
- // Adjust subsetted properties
- addContainedNode(node);
-
- // Adjust opposite properties
- if (node) {
- node->addInInterruptibleRegion(this);
- }
- }
-}
-
-void UmlInterruptibleActivityRegion::removeNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (_node.contains(node)) {
- _node.remove(node);
-
- // Adjust subsetted properties
- removeContainedNode(node);
-
- // Adjust opposite properties
- if (node) {
- node->removeInInterruptibleRegion(this);
- }
- }
-}
-
diff --git a/src/uml/internal/umlinterruptibleactivityregion_p.h b/src/uml/internal/umlinterruptibleactivityregion_p.h
deleted file mode 100644
index abd38b4a..00000000
--- a/src/uml/internal/umlinterruptibleactivityregion_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERRUPTIBLEACTIVITYREGION_H
-#define UMLINTERRUPTIBLEACTIVITYREGION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivitygroup_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivityEdge;
-class UmlActivityNode;
-
-class Q_UML_EXPORT UmlInterruptibleActivityRegion : public UmlActivityGroup
-{
-public:
- Q_DECL_HIDDEN explicit UmlInterruptibleActivityRegion();
-
- // Owned attributes
- const QSet<UmlActivityEdge *> interruptingEdge() const;
- void addInterruptingEdge(UmlActivityEdge *interruptingEdge);
- void removeInterruptingEdge(UmlActivityEdge *interruptingEdge);
- const QSet<UmlActivityNode *> node() const;
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
-
-protected:
- QSet<UmlActivityEdge *> _interruptingEdge;
- QSet<UmlActivityNode *> _node;
-};
-
-#endif // UMLINTERRUPTIBLEACTIVITYREGION_H
-
diff --git a/src/uml/internal/umlinterval.cpp b/src/uml/internal/umlinterval.cpp
deleted file mode 100644
index b9a86c34..00000000
--- a/src/uml/internal/umlinterval.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinterval_p.h"
-
-UmlInterval::UmlInterval() :
- _max(0),
- _min(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlValueSpecification *UmlInterval::max() const
-{
- // This is a read-write association end
-
- return _max;
-}
-
-void UmlInterval::setMax(UmlValueSpecification *max)
-{
- // This is a read-write association end
-
- if (_max != max) {
- _max = max;
- }
-}
-
-UmlValueSpecification *UmlInterval::min() const
-{
- // This is a read-write association end
-
- return _min;
-}
-
-void UmlInterval::setMin(UmlValueSpecification *min)
-{
- // This is a read-write association end
-
- if (_min != min) {
- _min = min;
- }
-}
-
diff --git a/src/uml/internal/umlinterval_p.h b/src/uml/internal/umlinterval_p.h
deleted file mode 100644
index a136e0f2..00000000
--- a/src/uml/internal/umlinterval_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERVAL_H
-#define UMLINTERVAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlInterval : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlInterval();
-
- // Owned attributes
- UmlValueSpecification *max() const;
- void setMax(UmlValueSpecification *max);
- UmlValueSpecification *min() const;
- void setMin(UmlValueSpecification *min);
-
-protected:
- UmlValueSpecification *_max;
- UmlValueSpecification *_min;
-};
-
-#endif // UMLINTERVAL_H
-
diff --git a/src/uml/internal/umlintervalconstraint.cpp b/src/uml/internal/umlintervalconstraint.cpp
deleted file mode 100644
index f72b9608..00000000
--- a/src/uml/internal/umlintervalconstraint.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlintervalconstraint_p.h"
-
-#include "private/umlinterval_p.h"
-
-UmlIntervalConstraint::UmlIntervalConstraint() :
- _specification(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInterval *UmlIntervalConstraint::specification() const
-{
- // This is a read-write association end
-
- return _specification;
-}
-
-void UmlIntervalConstraint::setSpecification(UmlInterval *specification)
-{
- // This is a read-write association end
-
- if (_specification != specification) {
- _specification = specification;
- }
-}
-
diff --git a/src/uml/internal/umlintervalconstraint_p.h b/src/uml/internal/umlintervalconstraint_p.h
deleted file mode 100644
index 568f9119..00000000
--- a/src/uml/internal/umlintervalconstraint_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINTERVALCONSTRAINT_H
-#define UMLINTERVALCONSTRAINT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlconstraint_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInterval;
-
-class Q_UML_EXPORT UmlIntervalConstraint : public UmlConstraint
-{
-public:
- Q_DECL_HIDDEN explicit UmlIntervalConstraint();
-
- // Owned attributes
- UmlInterval *specification() const;
- void setSpecification(UmlInterval *specification);
-
-protected:
- UmlInterval *_specification;
-};
-
-#endif // UMLINTERVALCONSTRAINT_H
-
diff --git a/src/uml/internal/umlinvocationaction.cpp b/src/uml/internal/umlinvocationaction.cpp
deleted file mode 100644
index 0fc8ba4f..00000000
--- a/src/uml/internal/umlinvocationaction.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlinvocationaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umlport_p.h"
-
-UmlInvocationAction::UmlInvocationAction() :
- _onPort(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlInputPin *> UmlInvocationAction::argument() const
-{
- // This is a read-write association end
-
- return _argument;
-}
-
-void UmlInvocationAction::addArgument(UmlInputPin *argument)
-{
- // This is a read-write association end
-
- if (!_argument.contains(argument)) {
- _argument.append(argument);
-
- // Adjust subsetted properties
- addInput(argument);
- }
-}
-
-void UmlInvocationAction::removeArgument(UmlInputPin *argument)
-{
- // This is a read-write association end
-
- if (_argument.contains(argument)) {
- _argument.removeAll(argument);
-
- // Adjust subsetted properties
- removeInput(argument);
- }
-}
-
-UmlPort *UmlInvocationAction::onPort() const
-{
- // This is a read-write association end
-
- return _onPort;
-}
-
-void UmlInvocationAction::setOnPort(UmlPort *onPort)
-{
- // This is a read-write association end
-
- if (_onPort != onPort) {
- _onPort = onPort;
- }
-}
-
diff --git a/src/uml/internal/umlinvocationaction_p.h b/src/uml/internal/umlinvocationaction_p.h
deleted file mode 100644
index 24d6fa65..00000000
--- a/src/uml/internal/umlinvocationaction_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLINVOCATIONACTION_H
-#define UMLINVOCATIONACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlPort;
-
-class Q_UML_EXPORT UmlInvocationAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlInvocationAction();
-
- // Owned attributes
- const QList<UmlInputPin *> argument() const;
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- UmlPort *onPort() const;
- void setOnPort(UmlPort *onPort);
-
-protected:
- QList<UmlInputPin *> _argument;
- UmlPort *_onPort;
-};
-
-#endif // UMLINVOCATIONACTION_H
-
diff --git a/src/uml/internal/umljoinnode.cpp b/src/uml/internal/umljoinnode.cpp
deleted file mode 100644
index 9de25931..00000000
--- a/src/uml/internal/umljoinnode.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umljoinnode_p.h"
-
-#include "private/umlvaluespecification_p.h"
-
-UmlJoinNode::UmlJoinNode() :
- _isCombineDuplicate(true),
- _joinSpec(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlJoinNode::isCombineDuplicate() const
-{
- // This is a read-write property
-
- return _isCombineDuplicate;
-}
-
-void UmlJoinNode::setCombineDuplicate(bool isCombineDuplicate)
-{
- // This is a read-write property
-
- if (_isCombineDuplicate != isCombineDuplicate) {
- _isCombineDuplicate = isCombineDuplicate;
- }
-}
-
-UmlValueSpecification *UmlJoinNode::joinSpec() const
-{
- // This is a read-write association end
-
- return _joinSpec;
-}
-
-void UmlJoinNode::setJoinSpec(UmlValueSpecification *joinSpec)
-{
- // This is a read-write association end
-
- if (_joinSpec != joinSpec) {
- // Adjust subsetted properties
- removeOwnedElement(_joinSpec);
-
- _joinSpec = joinSpec;
-
- // Adjust subsetted properties
- if (joinSpec) {
- addOwnedElement(joinSpec);
- }
- }
-}
-
diff --git a/src/uml/internal/umljoinnode_p.h b/src/uml/internal/umljoinnode_p.h
deleted file mode 100644
index 71b39cb5..00000000
--- a/src/uml/internal/umljoinnode_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLJOINNODE_H
-#define UMLJOINNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcontrolnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlJoinNode : public UmlControlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlJoinNode();
-
- // Owned attributes
- bool isCombineDuplicate() const;
- void setCombineDuplicate(bool isCombineDuplicate);
- UmlValueSpecification *joinSpec() const;
- void setJoinSpec(UmlValueSpecification *joinSpec);
-
-protected:
- bool _isCombineDuplicate;
- UmlValueSpecification *_joinSpec;
-};
-
-#endif // UMLJOINNODE_H
-
diff --git a/src/uml/internal/umllifeline.cpp b/src/uml/internal/umllifeline.cpp
deleted file mode 100644
index 89086b70..00000000
--- a/src/uml/internal/umllifeline.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umllifeline_p.h"
-
-#include "private/umlconnectableelement_p.h"
-#include "private/umlinteraction_p.h"
-#include "private/umlinteractionfragment_p.h"
-#include "private/umlpartdecomposition_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlLifeline::UmlLifeline() :
- _decomposedAs(0),
- _interaction(0),
- _represents(0),
- _selector(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlInteractionFragment *> UmlLifeline::coveredBy() const
-{
- // This is a read-write association end
-
- return _coveredBy;
-}
-
-void UmlLifeline::addCoveredBy(UmlInteractionFragment *coveredBy)
-{
- // This is a read-write association end
-
- if (!_coveredBy.contains(coveredBy)) {
- _coveredBy.insert(coveredBy);
-
- // Adjust opposite properties
- if (coveredBy) {
- coveredBy->addCovered(this);
- }
- }
-}
-
-void UmlLifeline::removeCoveredBy(UmlInteractionFragment *coveredBy)
-{
- // This is a read-write association end
-
- if (_coveredBy.contains(coveredBy)) {
- _coveredBy.remove(coveredBy);
-
- // Adjust opposite properties
- if (coveredBy) {
- coveredBy->removeCovered(this);
- }
- }
-}
-
-UmlPartDecomposition *UmlLifeline::decomposedAs() const
-{
- // This is a read-write association end
-
- return _decomposedAs;
-}
-
-void UmlLifeline::setDecomposedAs(UmlPartDecomposition *decomposedAs)
-{
- // This is a read-write association end
-
- if (_decomposedAs != decomposedAs) {
- _decomposedAs = decomposedAs;
- }
-}
-
-UmlInteraction *UmlLifeline::interaction() const
-{
- // This is a read-write association end
-
- return _interaction;
-}
-
-void UmlLifeline::setInteraction(UmlInteraction *interaction)
-{
- // This is a read-write association end
-
- if (_interaction != interaction) {
- // Adjust subsetted properties
-
- _interaction = interaction;
-
- // Adjust subsetted properties
- setNamespace(interaction);
- }
-}
-
-UmlConnectableElement *UmlLifeline::represents() const
-{
- // This is a read-write association end
-
- return _represents;
-}
-
-void UmlLifeline::setRepresents(UmlConnectableElement *represents)
-{
- // This is a read-write association end
-
- if (_represents != represents) {
- _represents = represents;
- }
-}
-
-UmlValueSpecification *UmlLifeline::selector() const
-{
- // This is a read-write association end
-
- return _selector;
-}
-
-void UmlLifeline::setSelector(UmlValueSpecification *selector)
-{
- // This is a read-write association end
-
- if (_selector != selector) {
- // Adjust subsetted properties
- removeOwnedElement(_selector);
-
- _selector = selector;
-
- // Adjust subsetted properties
- if (selector) {
- addOwnedElement(selector);
- }
- }
-}
-
diff --git a/src/uml/internal/umllifeline_p.h b/src/uml/internal/umllifeline_p.h
deleted file mode 100644
index 95dff5f3..00000000
--- a/src/uml/internal/umllifeline_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLIFELINE_H
-#define UMLLIFELINE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConnectableElement;
-class UmlInteraction;
-class UmlInteractionFragment;
-class UmlPartDecomposition;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlLifeline : public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlLifeline();
-
- // Owned attributes
- const QSet<UmlInteractionFragment *> coveredBy() const;
- void addCoveredBy(UmlInteractionFragment *coveredBy);
- void removeCoveredBy(UmlInteractionFragment *coveredBy);
- UmlPartDecomposition *decomposedAs() const;
- void setDecomposedAs(UmlPartDecomposition *decomposedAs);
- UmlInteraction *interaction() const;
- void setInteraction(UmlInteraction *interaction);
- UmlConnectableElement *represents() const;
- void setRepresents(UmlConnectableElement *represents);
- UmlValueSpecification *selector() const;
- void setSelector(UmlValueSpecification *selector);
-
-protected:
- QSet<UmlInteractionFragment *> _coveredBy;
- UmlPartDecomposition *_decomposedAs;
- UmlInteraction *_interaction;
- UmlConnectableElement *_represents;
- UmlValueSpecification *_selector;
-};
-
-#endif // UMLLIFELINE_H
-
diff --git a/src/uml/internal/umllinkaction.cpp b/src/uml/internal/umllinkaction.cpp
deleted file mode 100644
index 53429d63..00000000
--- a/src/uml/internal/umllinkaction.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umllinkaction_p.h"
-
-#include "private/umlassociation_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umllinkenddata_p.h"
-
-UmlLinkAction::UmlLinkAction()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlLinkEndData *> UmlLinkAction::endData() const
-{
- // This is a read-write association end
-
- return _endData;
-}
-
-void UmlLinkAction::addEndData(UmlLinkEndData *endData)
-{
- // This is a read-write association end
-
- if (!_endData.contains(endData)) {
- _endData.insert(endData);
-
- // Adjust subsetted properties
- addOwnedElement(endData);
- }
-}
-
-void UmlLinkAction::removeEndData(UmlLinkEndData *endData)
-{
- // This is a read-write association end
-
- if (_endData.contains(endData)) {
- _endData.remove(endData);
-
- // Adjust subsetted properties
- removeOwnedElement(endData);
- }
-}
-
-const QSet<UmlInputPin *> UmlLinkAction::inputValue() const
-{
- // This is a read-write association end
-
- return _inputValue;
-}
-
-void UmlLinkAction::addInputValue(UmlInputPin *inputValue)
-{
- // This is a read-write association end
-
- if (!_inputValue.contains(inputValue)) {
- _inputValue.insert(inputValue);
-
- // Adjust subsetted properties
- addInput(inputValue);
- }
-}
-
-void UmlLinkAction::removeInputValue(UmlInputPin *inputValue)
-{
- // This is a read-write association end
-
- if (_inputValue.contains(inputValue)) {
- _inputValue.remove(inputValue);
-
- // Adjust subsetted properties
- removeInput(inputValue);
- }
-}
-
-// OPERATIONS
-
-UmlAssociation *UmlLinkAction::association(
- ) const
-{
- qWarning("UmlLinkAction::association(): to be implemented (operation)");
-
- return 0;
-}
-
diff --git a/src/uml/internal/umllinkaction_p.h b/src/uml/internal/umllinkaction_p.h
deleted file mode 100644
index 8105af77..00000000
--- a/src/uml/internal/umllinkaction_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLINKACTION_H
-#define UMLLINKACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlAssociation;
-class UmlInputPin;
-class UmlLinkEndData;
-
-class Q_UML_EXPORT UmlLinkAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlLinkAction();
-
- // Owned attributes
- const QSet<UmlLinkEndData *> endData() const;
- void addEndData(UmlLinkEndData *endData);
- void removeEndData(UmlLinkEndData *endData);
- const QSet<UmlInputPin *> inputValue() const;
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
-
- // Operations
- UmlAssociation *association() const;
-
-protected:
- QSet<UmlLinkEndData *> _endData;
- QSet<UmlInputPin *> _inputValue;
-};
-
-#endif // UMLLINKACTION_H
-
diff --git a/src/uml/internal/umllinkendcreationdata.cpp b/src/uml/internal/umllinkendcreationdata.cpp
deleted file mode 100644
index fb87afc0..00000000
--- a/src/uml/internal/umllinkendcreationdata.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umllinkendcreationdata_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlLinkEndCreationData::UmlLinkEndCreationData() :
- _insertAt(0),
- _isReplaceAll(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlLinkEndCreationData::insertAt() const
-{
- // This is a read-write association end
-
- return _insertAt;
-}
-
-void UmlLinkEndCreationData::setInsertAt(UmlInputPin *insertAt)
-{
- // This is a read-write association end
-
- if (_insertAt != insertAt) {
- _insertAt = insertAt;
- }
-}
-
-bool UmlLinkEndCreationData::isReplaceAll() const
-{
- // This is a read-write property
-
- return _isReplaceAll;
-}
-
-void UmlLinkEndCreationData::setReplaceAll(bool isReplaceAll)
-{
- // This is a read-write property
-
- if (_isReplaceAll != isReplaceAll) {
- _isReplaceAll = isReplaceAll;
- }
-}
-
diff --git a/src/uml/internal/umllinkendcreationdata_p.h b/src/uml/internal/umllinkendcreationdata_p.h
deleted file mode 100644
index d6007eaa..00000000
--- a/src/uml/internal/umllinkendcreationdata_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLINKENDCREATIONDATA_H
-#define UMLLINKENDCREATIONDATA_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umllinkenddata_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlLinkEndCreationData : public UmlLinkEndData
-{
-public:
- Q_DECL_HIDDEN explicit UmlLinkEndCreationData();
-
- // Owned attributes
- UmlInputPin *insertAt() const;
- void setInsertAt(UmlInputPin *insertAt);
- bool isReplaceAll() const;
- void setReplaceAll(bool isReplaceAll);
-
-protected:
- UmlInputPin *_insertAt;
- bool _isReplaceAll;
-};
-
-#endif // UMLLINKENDCREATIONDATA_H
-
diff --git a/src/uml/internal/umllinkenddata.cpp b/src/uml/internal/umllinkenddata.cpp
deleted file mode 100644
index 2d496cc3..00000000
--- a/src/uml/internal/umllinkenddata.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umllinkenddata_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umlproperty_p.h"
-#include "private/umlqualifiervalue_p.h"
-
-UmlLinkEndData::UmlLinkEndData() :
- _end(0),
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlProperty *UmlLinkEndData::end() const
-{
- // This is a read-write association end
-
- return _end;
-}
-
-void UmlLinkEndData::setEnd(UmlProperty *end)
-{
- // This is a read-write association end
-
- if (_end != end) {
- _end = end;
- }
-}
-
-const QSet<UmlQualifierValue *> UmlLinkEndData::qualifier() const
-{
- // This is a read-write association end
-
- return _qualifier;
-}
-
-void UmlLinkEndData::addQualifier(UmlQualifierValue *qualifier)
-{
- // This is a read-write association end
-
- if (!_qualifier.contains(qualifier)) {
- _qualifier.insert(qualifier);
-
- // Adjust subsetted properties
- addOwnedElement(qualifier);
- }
-}
-
-void UmlLinkEndData::removeQualifier(UmlQualifierValue *qualifier)
-{
- // This is a read-write association end
-
- if (_qualifier.contains(qualifier)) {
- _qualifier.remove(qualifier);
-
- // Adjust subsetted properties
- removeOwnedElement(qualifier);
- }
-}
-
-UmlInputPin *UmlLinkEndData::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlLinkEndData::setValue(UmlInputPin *value)
-{
- // This is a read-write association end
-
- if (_value != value) {
- _value = value;
- }
-}
-
diff --git a/src/uml/internal/umllinkenddata_p.h b/src/uml/internal/umllinkenddata_p.h
deleted file mode 100644
index fe871c85..00000000
--- a/src/uml/internal/umllinkenddata_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLINKENDDATA_H
-#define UMLLINKENDDATA_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlProperty;
-class UmlQualifierValue;
-
-class Q_UML_EXPORT UmlLinkEndData : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlLinkEndData();
-
- // Owned attributes
- UmlProperty *end() const;
- void setEnd(UmlProperty *end);
- const QSet<UmlQualifierValue *> qualifier() const;
- void addQualifier(UmlQualifierValue *qualifier);
- void removeQualifier(UmlQualifierValue *qualifier);
- UmlInputPin *value() const;
- void setValue(UmlInputPin *value);
-
-protected:
- UmlProperty *_end;
- QSet<UmlQualifierValue *> _qualifier;
- UmlInputPin *_value;
-};
-
-#endif // UMLLINKENDDATA_H
-
diff --git a/src/uml/internal/umllinkenddestructiondata.cpp b/src/uml/internal/umllinkenddestructiondata.cpp
deleted file mode 100644
index 845ebb2f..00000000
--- a/src/uml/internal/umllinkenddestructiondata.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umllinkenddestructiondata_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlLinkEndDestructionData::UmlLinkEndDestructionData() :
- _destroyAt(0),
- _isDestroyDuplicates(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlLinkEndDestructionData::destroyAt() const
-{
- // This is a read-write association end
-
- return _destroyAt;
-}
-
-void UmlLinkEndDestructionData::setDestroyAt(UmlInputPin *destroyAt)
-{
- // This is a read-write association end
-
- if (_destroyAt != destroyAt) {
- _destroyAt = destroyAt;
- }
-}
-
-bool UmlLinkEndDestructionData::isDestroyDuplicates() const
-{
- // This is a read-write property
-
- return _isDestroyDuplicates;
-}
-
-void UmlLinkEndDestructionData::setDestroyDuplicates(bool isDestroyDuplicates)
-{
- // This is a read-write property
-
- if (_isDestroyDuplicates != isDestroyDuplicates) {
- _isDestroyDuplicates = isDestroyDuplicates;
- }
-}
-
diff --git a/src/uml/internal/umllinkenddestructiondata_p.h b/src/uml/internal/umllinkenddestructiondata_p.h
deleted file mode 100644
index 2d73f96a..00000000
--- a/src/uml/internal/umllinkenddestructiondata_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLINKENDDESTRUCTIONDATA_H
-#define UMLLINKENDDESTRUCTIONDATA_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umllinkenddata_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlLinkEndDestructionData : public UmlLinkEndData
-{
-public:
- Q_DECL_HIDDEN explicit UmlLinkEndDestructionData();
-
- // Owned attributes
- UmlInputPin *destroyAt() const;
- void setDestroyAt(UmlInputPin *destroyAt);
- bool isDestroyDuplicates() const;
- void setDestroyDuplicates(bool isDestroyDuplicates);
-
-protected:
- UmlInputPin *_destroyAt;
- bool _isDestroyDuplicates;
-};
-
-#endif // UMLLINKENDDESTRUCTIONDATA_H
-
diff --git a/src/uml/internal/umlliteralboolean.cpp b/src/uml/internal/umlliteralboolean.cpp
deleted file mode 100644
index 6d551404..00000000
--- a/src/uml/internal/umlliteralboolean.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralboolean_p.h"
-
-UmlLiteralBoolean::UmlLiteralBoolean() :
- _value(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlLiteralBoolean::value() const
-{
- // This is a read-write property
-
- return _value;
-}
-
-void UmlLiteralBoolean::setValue(bool value)
-{
- // This is a read-write property
-
- if (_value != value) {
- _value = value;
- }
-}
-
-// OPERATIONS
-
-bool UmlLiteralBoolean::booleanValue(
- ) const
-{
- qWarning("UmlLiteralBoolean::booleanValue(): to be implemented (operation)");
-
- return bool ();
-}
-
-bool UmlLiteralBoolean::isComputable(
- ) const
-{
- qWarning("UmlLiteralBoolean::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
diff --git a/src/uml/internal/umlliteralboolean_p.h b/src/uml/internal/umlliteralboolean_p.h
deleted file mode 100644
index 518ea701..00000000
--- a/src/uml/internal/umlliteralboolean_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALBOOLEAN_H
-#define UMLLITERALBOOLEAN_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlliteralspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralBoolean : public UmlLiteralSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralBoolean();
-
- // Owned attributes
- bool value() const;
- void setValue(bool value);
-
- // Operations
- bool booleanValue() const;
- bool isComputable() const;
-
-protected:
- bool _value;
-};
-
-#endif // UMLLITERALBOOLEAN_H
-
diff --git a/src/uml/internal/umlliteralinteger.cpp b/src/uml/internal/umlliteralinteger.cpp
deleted file mode 100644
index c95678f4..00000000
--- a/src/uml/internal/umlliteralinteger.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralinteger_p.h"
-
-UmlLiteralInteger::UmlLiteralInteger() :
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-int UmlLiteralInteger::value() const
-{
- // This is a read-write property
-
- return _value;
-}
-
-void UmlLiteralInteger::setValue(int value)
-{
- // This is a read-write property
-
- if (_value != value) {
- _value = value;
- }
-}
-
-// OPERATIONS
-
-int UmlLiteralInteger::integerValue(
- ) const
-{
- qWarning("UmlLiteralInteger::integerValue(): to be implemented (operation)");
-
- return int ();
-}
-
-bool UmlLiteralInteger::isComputable(
- ) const
-{
- qWarning("UmlLiteralInteger::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
diff --git a/src/uml/internal/umlliteralinteger_p.h b/src/uml/internal/umlliteralinteger_p.h
deleted file mode 100644
index 8db633e0..00000000
--- a/src/uml/internal/umlliteralinteger_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALINTEGER_H
-#define UMLLITERALINTEGER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlliteralspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralInteger : public UmlLiteralSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralInteger();
-
- // Owned attributes
- int value() const;
- void setValue(int value);
-
- // Operations
- int integerValue() const;
- bool isComputable() const;
-
-protected:
- int _value;
-};
-
-#endif // UMLLITERALINTEGER_H
-
diff --git a/src/uml/internal/umlliteralnull.cpp b/src/uml/internal/umlliteralnull.cpp
deleted file mode 100644
index a84e7a00..00000000
--- a/src/uml/internal/umlliteralnull.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralnull_p.h"
-
-UmlLiteralNull::UmlLiteralNull()
-{
-}
-
-// OPERATIONS
-
-bool UmlLiteralNull::isComputable(
- ) const
-{
- qWarning("UmlLiteralNull::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
-bool UmlLiteralNull::isNull(
- ) const
-{
- qWarning("UmlLiteralNull::isNull(): to be implemented (operation)");
-
- return bool ();
-}
-
diff --git a/src/uml/internal/umlliteralnull_p.h b/src/uml/internal/umlliteralnull_p.h
deleted file mode 100644
index 3850d496..00000000
--- a/src/uml/internal/umlliteralnull_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALNULL_H
-#define UMLLITERALNULL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlliteralspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralNull : public UmlLiteralSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralNull();
-
- // Operations
- bool isComputable() const;
- bool isNull() const;
-
-protected:
-};
-
-#endif // UMLLITERALNULL_H
-
diff --git a/src/uml/internal/umlliteralreal.cpp b/src/uml/internal/umlliteralreal.cpp
deleted file mode 100644
index 04f9be73..00000000
--- a/src/uml/internal/umlliteralreal.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralreal_p.h"
-
-UmlLiteralReal::UmlLiteralReal()
-{
-}
-
-// OWNED ATTRIBUTES
-
-double UmlLiteralReal::value() const
-{
- // This is a read-write property
-
- return _value;
-}
-
-void UmlLiteralReal::setValue(double value)
-{
- // This is a read-write property
-
- if (_value != value) {
- _value = value;
- }
-}
-
-// OPERATIONS
-
-bool UmlLiteralReal::isComputable(
- ) const
-{
- qWarning("UmlLiteralReal::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
-double UmlLiteralReal::realValue(
- ) const
-{
- qWarning("UmlLiteralReal::realValue(): to be implemented (operation)");
-
- return double ();
-}
-
diff --git a/src/uml/internal/umlliteralreal_p.h b/src/uml/internal/umlliteralreal_p.h
deleted file mode 100644
index e5c4e6a4..00000000
--- a/src/uml/internal/umlliteralreal_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALREAL_H
-#define UMLLITERALREAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlliteralspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralReal : public UmlLiteralSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralReal();
-
- // Owned attributes
- double value() const;
- void setValue(double value);
-
- // Operations
- bool isComputable() const;
- double realValue() const;
-
-protected:
- double _value;
-};
-
-#endif // UMLLITERALREAL_H
-
diff --git a/src/uml/internal/umlliteralspecification.cpp b/src/uml/internal/umlliteralspecification.cpp
deleted file mode 100644
index 1997cc4d..00000000
--- a/src/uml/internal/umlliteralspecification.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralspecification_p.h"
-
-UmlLiteralSpecification::UmlLiteralSpecification()
-{
-}
-
diff --git a/src/uml/internal/umlliteralspecification_p.h b/src/uml/internal/umlliteralspecification_p.h
deleted file mode 100644
index b156db67..00000000
--- a/src/uml/internal/umlliteralspecification_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALSPECIFICATION_H
-#define UMLLITERALSPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralSpecification : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralSpecification();
-
-protected:
-};
-
-#endif // UMLLITERALSPECIFICATION_H
-
diff --git a/src/uml/internal/umlliteralstring.cpp b/src/uml/internal/umlliteralstring.cpp
deleted file mode 100644
index a5af0199..00000000
--- a/src/uml/internal/umlliteralstring.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralstring_p.h"
-
-UmlLiteralString::UmlLiteralString()
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlLiteralString::value() const
-{
- // This is a read-write property
-
- return _value;
-}
-
-void UmlLiteralString::setValue(QString value)
-{
- // This is a read-write property
-
- if (_value != value) {
- _value = value;
- }
-}
-
-// OPERATIONS
-
-bool UmlLiteralString::isComputable(
- ) const
-{
- qWarning("UmlLiteralString::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
-QString UmlLiteralString::stringValue(
- ) const
-{
- qWarning("UmlLiteralString::stringValue(): to be implemented (operation)");
-
- return QString ();
-}
-
diff --git a/src/uml/internal/umlliteralstring_p.h b/src/uml/internal/umlliteralstring_p.h
deleted file mode 100644
index e8a3796d..00000000
--- a/src/uml/internal/umlliteralstring_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALSTRING_H
-#define UMLLITERALSTRING_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlliteralspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralString : public UmlLiteralSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralString();
-
- // Owned attributes
- QString value() const;
- void setValue(QString value);
-
- // Operations
- bool isComputable() const;
- QString stringValue() const;
-
-protected:
- QString _value;
-};
-
-#endif // UMLLITERALSTRING_H
-
diff --git a/src/uml/internal/umlliteralunlimitednatural.cpp b/src/uml/internal/umlliteralunlimitednatural.cpp
deleted file mode 100644
index 497e69d4..00000000
--- a/src/uml/internal/umlliteralunlimitednatural.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlliteralunlimitednatural_p.h"
-
-UmlLiteralUnlimitedNatural::UmlLiteralUnlimitedNatural() :
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-int UmlLiteralUnlimitedNatural::value() const
-{
- // This is a read-write property
-
- return _value;
-}
-
-void UmlLiteralUnlimitedNatural::setValue(int value)
-{
- // This is a read-write property
-
- if (_value != value) {
- _value = value;
- }
-}
-
-// OPERATIONS
-
-bool UmlLiteralUnlimitedNatural::isComputable(
- ) const
-{
- qWarning("UmlLiteralUnlimitedNatural::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
-int UmlLiteralUnlimitedNatural::unlimitedValue(
- ) const
-{
- qWarning("UmlLiteralUnlimitedNatural::unlimitedValue(): to be implemented (operation)");
-
- return int ();
-}
-
diff --git a/src/uml/internal/umlliteralunlimitednatural_p.h b/src/uml/internal/umlliteralunlimitednatural_p.h
deleted file mode 100644
index 7a434f1f..00000000
--- a/src/uml/internal/umlliteralunlimitednatural_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLITERALUNLIMITEDNATURAL_H
-#define UMLLITERALUNLIMITEDNATURAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlliteralspecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlLiteralUnlimitedNatural : public UmlLiteralSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlLiteralUnlimitedNatural();
-
- // Owned attributes
- int value() const;
- void setValue(int value);
-
- // Operations
- bool isComputable() const;
- int unlimitedValue() const;
-
-protected:
- int _value;
-};
-
-#endif // UMLLITERALUNLIMITEDNATURAL_H
-
diff --git a/src/uml/internal/umlloopnode.cpp b/src/uml/internal/umlloopnode.cpp
deleted file mode 100644
index b0a4e484..00000000
--- a/src/uml/internal/umlloopnode.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlloopnode_p.h"
-
-#include "private/umlexecutablenode_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlLoopNode::UmlLoopNode() :
- _decider(0),
- _isTestedFirst(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlOutputPin *> UmlLoopNode::bodyOutput() const
-{
- // This is a read-write association end
-
- return _bodyOutput;
-}
-
-void UmlLoopNode::addBodyOutput(UmlOutputPin *bodyOutput)
-{
- // This is a read-write association end
-
- if (!_bodyOutput.contains(bodyOutput)) {
- _bodyOutput.append(bodyOutput);
- }
-}
-
-void UmlLoopNode::removeBodyOutput(UmlOutputPin *bodyOutput)
-{
- // This is a read-write association end
-
- if (_bodyOutput.contains(bodyOutput)) {
- _bodyOutput.removeAll(bodyOutput);
- }
-}
-
-const QSet<UmlExecutableNode *> UmlLoopNode::bodyPart() const
-{
- // This is a read-write association end
-
- return _bodyPart;
-}
-
-void UmlLoopNode::addBodyPart(UmlExecutableNode *bodyPart)
-{
- // This is a read-write association end
-
- if (!_bodyPart.contains(bodyPart)) {
- _bodyPart.insert(bodyPart);
- }
-}
-
-void UmlLoopNode::removeBodyPart(UmlExecutableNode *bodyPart)
-{
- // This is a read-write association end
-
- if (_bodyPart.contains(bodyPart)) {
- _bodyPart.remove(bodyPart);
- }
-}
-
-UmlOutputPin *UmlLoopNode::decider() const
-{
- // This is a read-write association end
-
- return _decider;
-}
-
-void UmlLoopNode::setDecider(UmlOutputPin *decider)
-{
- // This is a read-write association end
-
- if (_decider != decider) {
- _decider = decider;
- }
-}
-
-bool UmlLoopNode::isTestedFirst() const
-{
- // This is a read-write property
-
- return _isTestedFirst;
-}
-
-void UmlLoopNode::setTestedFirst(bool isTestedFirst)
-{
- // This is a read-write property
-
- if (_isTestedFirst != isTestedFirst) {
- _isTestedFirst = isTestedFirst;
- }
-}
-
-const QList<UmlOutputPin *> UmlLoopNode::loopVariable() const
-{
- // This is a read-write association end
-
- return _loopVariable;
-}
-
-void UmlLoopNode::addLoopVariable(UmlOutputPin *loopVariable)
-{
- // This is a read-write association end
-
- if (!_loopVariable.contains(loopVariable)) {
- _loopVariable.append(loopVariable);
- }
-}
-
-void UmlLoopNode::removeLoopVariable(UmlOutputPin *loopVariable)
-{
- // This is a read-write association end
-
- if (_loopVariable.contains(loopVariable)) {
- _loopVariable.removeAll(loopVariable);
- }
-}
-
-const QList<UmlInputPin *> UmlLoopNode::loopVariableInput() const
-{
- // This is a read-write association end
-
- return _loopVariableInput;
-}
-
-void UmlLoopNode::addLoopVariableInput(UmlInputPin *loopVariableInput)
-{
- // This is a read-write association end
-
- if (!_loopVariableInput.contains(loopVariableInput)) {
- _loopVariableInput.append(loopVariableInput);
- }
-}
-
-void UmlLoopNode::removeLoopVariableInput(UmlInputPin *loopVariableInput)
-{
- // This is a read-write association end
-
- if (_loopVariableInput.contains(loopVariableInput)) {
- _loopVariableInput.removeAll(loopVariableInput);
- }
-}
-
-const QList<UmlOutputPin *> UmlLoopNode::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlLoopNode::addResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (!_result.contains(result)) {
- _result.append(result);
- }
-}
-
-void UmlLoopNode::removeResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result.contains(result)) {
- _result.removeAll(result);
- }
-}
-
-const QSet<UmlExecutableNode *> UmlLoopNode::setupPart() const
-{
- // This is a read-write association end
-
- return _setupPart;
-}
-
-void UmlLoopNode::addSetupPart(UmlExecutableNode *setupPart)
-{
- // This is a read-write association end
-
- if (!_setupPart.contains(setupPart)) {
- _setupPart.insert(setupPart);
- }
-}
-
-void UmlLoopNode::removeSetupPart(UmlExecutableNode *setupPart)
-{
- // This is a read-write association end
-
- if (_setupPart.contains(setupPart)) {
- _setupPart.remove(setupPart);
- }
-}
-
-const QSet<UmlExecutableNode *> UmlLoopNode::test() const
-{
- // This is a read-write association end
-
- return _test;
-}
-
-void UmlLoopNode::addTest(UmlExecutableNode *test)
-{
- // This is a read-write association end
-
- if (!_test.contains(test)) {
- _test.insert(test);
- }
-}
-
-void UmlLoopNode::removeTest(UmlExecutableNode *test)
-{
- // This is a read-write association end
-
- if (_test.contains(test)) {
- _test.remove(test);
- }
-}
-
diff --git a/src/uml/internal/umlloopnode_p.h b/src/uml/internal/umlloopnode_p.h
deleted file mode 100644
index fd57c083..00000000
--- a/src/uml/internal/umlloopnode_p.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLLOOPNODE_H
-#define UMLLOOPNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuredactivitynode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlExecutableNode;
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlLoopNode : public UmlStructuredActivityNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlLoopNode();
-
- // Owned attributes
- const QList<UmlOutputPin *> bodyOutput() const;
- void addBodyOutput(UmlOutputPin *bodyOutput);
- void removeBodyOutput(UmlOutputPin *bodyOutput);
- const QSet<UmlExecutableNode *> bodyPart() const;
- void addBodyPart(UmlExecutableNode *bodyPart);
- void removeBodyPart(UmlExecutableNode *bodyPart);
- UmlOutputPin *decider() const;
- void setDecider(UmlOutputPin *decider);
- bool isTestedFirst() const;
- void setTestedFirst(bool isTestedFirst);
- const QList<UmlOutputPin *> loopVariable() const;
- void addLoopVariable(UmlOutputPin *loopVariable);
- void removeLoopVariable(UmlOutputPin *loopVariable);
- const QList<UmlInputPin *> loopVariableInput() const;
- void addLoopVariableInput(UmlInputPin *loopVariableInput);
- void removeLoopVariableInput(UmlInputPin *loopVariableInput);
- const QList<UmlOutputPin *> result() const;
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
- const QSet<UmlExecutableNode *> setupPart() const;
- void addSetupPart(UmlExecutableNode *setupPart);
- void removeSetupPart(UmlExecutableNode *setupPart);
- const QSet<UmlExecutableNode *> test() const;
- void addTest(UmlExecutableNode *test);
- void removeTest(UmlExecutableNode *test);
-
-protected:
- QList<UmlOutputPin *> _bodyOutput;
- QSet<UmlExecutableNode *> _bodyPart;
- UmlOutputPin *_decider;
- bool _isTestedFirst;
- QList<UmlOutputPin *> _loopVariable;
- QList<UmlInputPin *> _loopVariableInput;
- QList<UmlOutputPin *> _result;
- QSet<UmlExecutableNode *> _setupPart;
- QSet<UmlExecutableNode *> _test;
-};
-
-#endif // UMLLOOPNODE_H
-
diff --git a/src/uml/internal/umlmanifestation.cpp b/src/uml/internal/umlmanifestation.cpp
deleted file mode 100644
index 77239e26..00000000
--- a/src/uml/internal/umlmanifestation.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmanifestation_p.h"
-
-#include "private/umlpackageableelement_p.h"
-
-UmlManifestation::UmlManifestation() :
- _utilizedElement(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlPackageableElement *UmlManifestation::utilizedElement() const
-{
- // This is a read-write association end
-
- return _utilizedElement;
-}
-
-void UmlManifestation::setUtilizedElement(UmlPackageableElement *utilizedElement)
-{
- // This is a read-write association end
-
- if (_utilizedElement != utilizedElement) {
- // Adjust subsetted properties
- removeSupplier(_utilizedElement);
-
- _utilizedElement = utilizedElement;
-
- // Adjust subsetted properties
- if (utilizedElement) {
- addSupplier(utilizedElement);
- }
- }
-}
-
diff --git a/src/uml/internal/umlmanifestation_p.h b/src/uml/internal/umlmanifestation_p.h
deleted file mode 100644
index 751af5d6..00000000
--- a/src/uml/internal/umlmanifestation_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMANIFESTATION_H
-#define UMLMANIFESTATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlabstraction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlPackageableElement;
-
-class Q_UML_EXPORT UmlManifestation : public UmlAbstraction
-{
-public:
- Q_DECL_HIDDEN explicit UmlManifestation();
-
- // Owned attributes
- UmlPackageableElement *utilizedElement() const;
- void setUtilizedElement(UmlPackageableElement *utilizedElement);
-
-protected:
- UmlPackageableElement *_utilizedElement;
-};
-
-#endif // UMLMANIFESTATION_H
-
diff --git a/src/uml/internal/umlmergenode.cpp b/src/uml/internal/umlmergenode.cpp
deleted file mode 100644
index 8f61fa95..00000000
--- a/src/uml/internal/umlmergenode.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmergenode_p.h"
-
-UmlMergeNode::UmlMergeNode()
-{
-}
-
diff --git a/src/uml/internal/umlmergenode_p.h b/src/uml/internal/umlmergenode_p.h
deleted file mode 100644
index 56ab5663..00000000
--- a/src/uml/internal/umlmergenode_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMERGENODE_H
-#define UMLMERGENODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcontrolnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlMergeNode : public UmlControlNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlMergeNode();
-
-protected:
-};
-
-#endif // UMLMERGENODE_H
-
diff --git a/src/uml/internal/umlmessage.cpp b/src/uml/internal/umlmessage.cpp
deleted file mode 100644
index b1c2de05..00000000
--- a/src/uml/internal/umlmessage.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmessage_p.h"
-
-#include "private/umlconnector_p.h"
-#include "private/umlinteraction_p.h"
-#include "private/umlmessageend_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlMessage::UmlMessage() :
- _connector(0),
- _interaction(0),
- _messageSort(QtUml::MessageSortSynchCall),
- _receiveEvent(0),
- _sendEvent(0),
- _signature(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlValueSpecification *> UmlMessage::argument() const
-{
- // This is a read-write association end
-
- return _argument;
-}
-
-void UmlMessage::addArgument(UmlValueSpecification *argument)
-{
- // This is a read-write association end
-
- if (!_argument.contains(argument)) {
- _argument.append(argument);
-
- // Adjust subsetted properties
- addOwnedElement(argument);
- }
-}
-
-void UmlMessage::removeArgument(UmlValueSpecification *argument)
-{
- // This is a read-write association end
-
- if (_argument.contains(argument)) {
- _argument.removeAll(argument);
-
- // Adjust subsetted properties
- removeOwnedElement(argument);
- }
-}
-
-UmlConnector *UmlMessage::connector() const
-{
- // This is a read-write association end
-
- return _connector;
-}
-
-void UmlMessage::setConnector(UmlConnector *connector)
-{
- // This is a read-write association end
-
- if (_connector != connector) {
- _connector = connector;
- }
-}
-
-UmlInteraction *UmlMessage::interaction() const
-{
- // This is a read-write association end
-
- return _interaction;
-}
-
-void UmlMessage::setInteraction(UmlInteraction *interaction)
-{
- // This is a read-write association end
-
- if (_interaction != interaction) {
- // Adjust subsetted properties
-
- _interaction = interaction;
-
- // Adjust subsetted properties
- setNamespace(interaction);
- }
-}
-
-QtUml::MessageKind UmlMessage::messageKind() const
-{
- // This is a read-only derived property
-
- qWarning("UmlMessage::messageKind(): to be implemented (this is a derived property)");
-
- return QtUml::MessageKind();
-}
-
-void UmlMessage::setMessageKind(QtUml::MessageKind messageKind)
-{
- // This is a read-only derived property
-
- qWarning("UmlMessage::messageKind(): to be implemented (this is a derived property)");
- Q_UNUSED(messageKind);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-QtUml::MessageSort UmlMessage::messageSort() const
-{
- // This is a read-write property
-
- return _messageSort;
-}
-
-void UmlMessage::setMessageSort(QtUml::MessageSort messageSort)
-{
- // This is a read-write property
-
- if (_messageSort != messageSort) {
- _messageSort = messageSort;
- }
-}
-
-UmlMessageEnd *UmlMessage::receiveEvent() const
-{
- // This is a read-write association end
-
- return _receiveEvent;
-}
-
-void UmlMessage::setReceiveEvent(UmlMessageEnd *receiveEvent)
-{
- // This is a read-write association end
-
- if (_receiveEvent != receiveEvent) {
- _receiveEvent = receiveEvent;
- }
-}
-
-UmlMessageEnd *UmlMessage::sendEvent() const
-{
- // This is a read-write association end
-
- return _sendEvent;
-}
-
-void UmlMessage::setSendEvent(UmlMessageEnd *sendEvent)
-{
- // This is a read-write association end
-
- if (_sendEvent != sendEvent) {
- _sendEvent = sendEvent;
- }
-}
-
-UmlNamedElement *UmlMessage::signature() const
-{
- // This is a read-write association end
-
- return _signature;
-}
-
-void UmlMessage::setSignature(UmlNamedElement *signature)
-{
- // This is a read-write association end
-
- if (_signature != signature) {
- _signature = signature;
- }
-}
-
diff --git a/src/uml/internal/umlmessage_p.h b/src/uml/internal/umlmessage_p.h
deleted file mode 100644
index 7631986f..00000000
--- a/src/uml/internal/umlmessage_p.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMESSAGE_H
-#define UMLMESSAGE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlConnector;
-class UmlInteraction;
-class UmlMessageEnd;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlMessage : public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlMessage();
-
- // Owned attributes
- const QList<UmlValueSpecification *> argument() const;
- void addArgument(UmlValueSpecification *argument);
- void removeArgument(UmlValueSpecification *argument);
- UmlConnector *connector() const;
- void setConnector(UmlConnector *connector);
- UmlInteraction *interaction() const;
- void setInteraction(UmlInteraction *interaction);
- QtUml::MessageKind messageKind() const;
- Q_DECL_HIDDEN void setMessageKind(QtUml::MessageKind messageKind);
- QtUml::MessageSort messageSort() const;
- void setMessageSort(QtUml::MessageSort messageSort);
- UmlMessageEnd *receiveEvent() const;
- void setReceiveEvent(UmlMessageEnd *receiveEvent);
- UmlMessageEnd *sendEvent() const;
- void setSendEvent(UmlMessageEnd *sendEvent);
- UmlNamedElement *signature() const;
- void setSignature(UmlNamedElement *signature);
-
-protected:
- QList<UmlValueSpecification *> _argument;
- UmlConnector *_connector;
- UmlInteraction *_interaction;
- QtUml::MessageSort _messageSort;
- UmlMessageEnd *_receiveEvent;
- UmlMessageEnd *_sendEvent;
- UmlNamedElement *_signature;
-};
-
-#endif // UMLMESSAGE_H
-
diff --git a/src/uml/internal/umlmessageend.cpp b/src/uml/internal/umlmessageend.cpp
deleted file mode 100644
index 5704e290..00000000
--- a/src/uml/internal/umlmessageend.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmessageend_p.h"
-
-#include "private/umlmessage_p.h"
-
-UmlMessageEnd::UmlMessageEnd() :
- _message(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlMessage *UmlMessageEnd::message() const
-{
- // This is a read-write association end
-
- return _message;
-}
-
-void UmlMessageEnd::setMessage(UmlMessage *message)
-{
- // This is a read-write association end
-
- if (_message != message) {
- _message = message;
- }
-}
-
diff --git a/src/uml/internal/umlmessageend_p.h b/src/uml/internal/umlmessageend_p.h
deleted file mode 100644
index 7240c9e0..00000000
--- a/src/uml/internal/umlmessageend_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMESSAGEEND_H
-#define UMLMESSAGEEND_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlMessage;
-
-class Q_UML_EXPORT UmlMessageEnd : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlMessageEnd();
-
- // Owned attributes
- UmlMessage *message() const;
- void setMessage(UmlMessage *message);
-
-protected:
- UmlMessage *_message;
-};
-
-#endif // UMLMESSAGEEND_H
-
diff --git a/src/uml/internal/umlmessageevent.cpp b/src/uml/internal/umlmessageevent.cpp
deleted file mode 100644
index a3d7b930..00000000
--- a/src/uml/internal/umlmessageevent.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmessageevent_p.h"
-
-UmlMessageEvent::UmlMessageEvent()
-{
-}
-
diff --git a/src/uml/internal/umlmessageevent_p.h b/src/uml/internal/umlmessageevent_p.h
deleted file mode 100644
index 4e3d00ae..00000000
--- a/src/uml/internal/umlmessageevent_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMESSAGEEVENT_H
-#define UMLMESSAGEEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlevent_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlMessageEvent : public UmlEvent
-{
-public:
- Q_DECL_HIDDEN explicit UmlMessageEvent();
-
-protected:
-};
-
-#endif // UMLMESSAGEEVENT_H
-
diff --git a/src/uml/internal/umlmessageoccurrencespecification.cpp b/src/uml/internal/umlmessageoccurrencespecification.cpp
deleted file mode 100644
index 4fc2a78f..00000000
--- a/src/uml/internal/umlmessageoccurrencespecification.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmessageoccurrencespecification_p.h"
-
-UmlMessageOccurrenceSpecification::UmlMessageOccurrenceSpecification()
-{
-}
-
diff --git a/src/uml/internal/umlmessageoccurrencespecification_p.h b/src/uml/internal/umlmessageoccurrencespecification_p.h
deleted file mode 100644
index 5808f5df..00000000
--- a/src/uml/internal/umlmessageoccurrencespecification_p.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMESSAGEOCCURRENCESPECIFICATION_H
-#define UMLMESSAGEOCCURRENCESPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umloccurrencespecification_p.h"
-#include "private/umlmessageend_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlMessageOccurrenceSpecification : public UmlOccurrenceSpecification, public UmlMessageEnd
-{
-public:
- Q_DECL_HIDDEN explicit UmlMessageOccurrenceSpecification();
-
-protected:
-};
-
-#endif // UMLMESSAGEOCCURRENCESPECIFICATION_H
-
diff --git a/src/uml/internal/umlmodel.cpp b/src/uml/internal/umlmodel.cpp
deleted file mode 100644
index 2708fef7..00000000
--- a/src/uml/internal/umlmodel.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmodel_p.h"
-
-UmlModel::UmlModel()
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlModel::viewpoint() const
-{
- // This is a read-write property
-
- return _viewpoint;
-}
-
-void UmlModel::setViewpoint(QString viewpoint)
-{
- // This is a read-write property
-
- if (_viewpoint != viewpoint) {
- _viewpoint = viewpoint;
- }
-}
-
diff --git a/src/uml/internal/umlmodel_p.h b/src/uml/internal/umlmodel_p.h
deleted file mode 100644
index b9c7a9b6..00000000
--- a/src/uml/internal/umlmodel_p.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMODEL_H
-#define UMLMODEL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackage_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlModel : public UmlPackage
-{
-public:
- Q_DECL_HIDDEN explicit UmlModel();
-
- // Owned attributes
- QString viewpoint() const;
- void setViewpoint(QString viewpoint);
-
-protected:
- QString _viewpoint;
-};
-
-#endif // UMLMODEL_H
-
diff --git a/src/uml/internal/umlmultiplicityelement.cpp b/src/uml/internal/umlmultiplicityelement.cpp
deleted file mode 100644
index afee37de..00000000
--- a/src/uml/internal/umlmultiplicityelement.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlmultiplicityelement_p.h"
-
-#include "private/umlvaluespecification_p.h"
-
-UmlMultiplicityElement::UmlMultiplicityElement() :
- _isOrdered(false),
- _isUnique(true),
- _lowerValue(0),
- _upperValue(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlMultiplicityElement::isOrdered() const
-{
- // This is a read-write property
-
- return _isOrdered;
-}
-
-void UmlMultiplicityElement::setOrdered(bool isOrdered)
-{
- // This is a read-write property
-
- if (_isOrdered != isOrdered) {
- _isOrdered = isOrdered;
- }
-}
-
-bool UmlMultiplicityElement::isUnique() const
-{
- // This is a read-write property
-
- return _isUnique;
-}
-
-void UmlMultiplicityElement::setUnique(bool isUnique)
-{
- // This is a read-write property
-
- if (_isUnique != isUnique) {
- _isUnique = isUnique;
- }
-}
-
-int UmlMultiplicityElement::lower() const
-{
- // This is a read-write derived property
-
- qWarning("UmlMultiplicityElement::lower(): to be implemented (this is a derived property)");
-
- return int();
-}
-
-void UmlMultiplicityElement::setLower(int lower)
-{
- // This is a read-write derived property
-
- qWarning("UmlMultiplicityElement::lower(): to be implemented (this is a derived property)");
- Q_UNUSED(lower);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlValueSpecification *UmlMultiplicityElement::lowerValue() const
-{
- // This is a read-write association end
-
- return _lowerValue;
-}
-
-void UmlMultiplicityElement::setLowerValue(UmlValueSpecification *lowerValue)
-{
- // This is a read-write association end
-
- if (_lowerValue != lowerValue) {
- // Adjust subsetted properties
- removeOwnedElement(_lowerValue);
-
- _lowerValue = lowerValue;
-
- // Adjust subsetted properties
- if (lowerValue) {
- addOwnedElement(lowerValue);
- }
- }
-}
-
-int UmlMultiplicityElement::upper() const
-{
- // This is a read-write derived property
-
- qWarning("UmlMultiplicityElement::upper(): to be implemented (this is a derived property)");
-
- return int();
-}
-
-void UmlMultiplicityElement::setUpper(int upper)
-{
- // This is a read-write derived property
-
- qWarning("UmlMultiplicityElement::upper(): to be implemented (this is a derived property)");
- Q_UNUSED(upper);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlValueSpecification *UmlMultiplicityElement::upperValue() const
-{
- // This is a read-write association end
-
- return _upperValue;
-}
-
-void UmlMultiplicityElement::setUpperValue(UmlValueSpecification *upperValue)
-{
- // This is a read-write association end
-
- if (_upperValue != upperValue) {
- // Adjust subsetted properties
- removeOwnedElement(_upperValue);
-
- _upperValue = upperValue;
-
- // Adjust subsetted properties
- if (upperValue) {
- addOwnedElement(upperValue);
- }
- }
-}
-
-// OPERATIONS
-
-bool UmlMultiplicityElement::compatibleWith(
- UmlMultiplicityElement *other) const
-{
- qWarning("UmlMultiplicityElement::compatibleWith(): to be implemented (operation)");
-
- Q_UNUSED(other);
- return bool ();
-}
-
-bool UmlMultiplicityElement::includesCardinality(
- int C) const
-{
- qWarning("UmlMultiplicityElement::includesCardinality(): to be implemented (operation)");
-
- Q_UNUSED(C);
- return bool ();
-}
-
-bool UmlMultiplicityElement::includesMultiplicity(
- UmlMultiplicityElement *M) const
-{
- qWarning("UmlMultiplicityElement::includesMultiplicity(): to be implemented (operation)");
-
- Q_UNUSED(M);
- return bool ();
-}
-
-bool UmlMultiplicityElement::is(
- int lowerbound, int upperbound) const
-{
- qWarning("UmlMultiplicityElement::is(): to be implemented (operation)");
-
- Q_UNUSED(lowerbound);
- Q_UNUSED(upperbound);
- return bool ();
-}
-
-bool UmlMultiplicityElement::isMultivalued(
- ) const
-{
- qWarning("UmlMultiplicityElement::isMultivalued(): to be implemented (operation)");
-
- return bool ();
-}
-
-int UmlMultiplicityElement::lowerBound(
- ) const
-{
- qWarning("UmlMultiplicityElement::lowerBound(): to be implemented (operation)");
-
- return int ();
-}
-
-int UmlMultiplicityElement::upperBound(
- ) const
-{
- qWarning("UmlMultiplicityElement::upperBound(): to be implemented (operation)");
-
- return int ();
-}
-
diff --git a/src/uml/internal/umlmultiplicityelement_p.h b/src/uml/internal/umlmultiplicityelement_p.h
deleted file mode 100644
index f2953703..00000000
--- a/src/uml/internal/umlmultiplicityelement_p.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLMULTIPLICITYELEMENT_H
-#define UMLMULTIPLICITYELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlMultiplicityElement : public virtual UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlMultiplicityElement();
-
- // Owned attributes
- bool isOrdered() const;
- void setOrdered(bool isOrdered);
- bool isUnique() const;
- void setUnique(bool isUnique);
- int lower() const;
- void setLower(int lower);
- UmlValueSpecification *lowerValue() const;
- void setLowerValue(UmlValueSpecification *lowerValue);
- int upper() const;
- void setUpper(int upper);
- UmlValueSpecification *upperValue() const;
- void setUpperValue(UmlValueSpecification *upperValue);
-
- // Operations
- bool compatibleWith(UmlMultiplicityElement *other) const;
- bool includesCardinality(int C) const;
- bool includesMultiplicity(UmlMultiplicityElement *M) const;
- bool is(int lowerbound, int upperbound) const;
- bool isMultivalued() const;
- int lowerBound() const;
- int upperBound() const;
-
-protected:
- bool _isOrdered;
- bool _isUnique;
- UmlValueSpecification *_lowerValue;
- UmlValueSpecification *_upperValue;
-};
-
-#endif // UMLMULTIPLICITYELEMENT_H
-
diff --git a/src/uml/internal/umlnamedelement.cpp b/src/uml/internal/umlnamedelement.cpp
deleted file mode 100644
index 74b89b9b..00000000
--- a/src/uml/internal/umlnamedelement.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlnamedelement_p.h"
-
-#include "private/umldependency_p.h"
-#include "private/umlnamespace_p.h"
-#include "private/umlpackage_p.h"
-#include "private/umlstringexpression_p.h"
-
-UmlNamedElement::UmlNamedElement() :
- _nameExpression(0),
- _namespace_(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlDependency *> UmlNamedElement::clientDependency() const
-{
- // This is a read-write association end
-
- return _clientDependency;
-}
-
-void UmlNamedElement::addClientDependency(UmlDependency *clientDependency)
-{
- // This is a read-write association end
-
- if (!_clientDependency.contains(clientDependency)) {
- _clientDependency.insert(clientDependency);
-
- // Adjust opposite properties
- if (clientDependency) {
- clientDependency->addClient(this);
- }
- }
-}
-
-void UmlNamedElement::removeClientDependency(UmlDependency *clientDependency)
-{
- // This is a read-write association end
-
- if (_clientDependency.contains(clientDependency)) {
- _clientDependency.remove(clientDependency);
-
- // Adjust opposite properties
- if (clientDependency) {
- clientDependency->removeClient(this);
- }
- }
-}
-
-QString UmlNamedElement::name() const
-{
- // This is a read-write property
-
- return _name;
-}
-
-void UmlNamedElement::setName(QString name)
-{
- // This is a read-write property
-
- if (_name != name) {
- _name = name;
- }
-}
-
-UmlStringExpression *UmlNamedElement::nameExpression() const
-{
- // This is a read-write association end
-
- return _nameExpression;
-}
-
-void UmlNamedElement::setNameExpression(UmlStringExpression *nameExpression)
-{
- // This is a read-write association end
-
- if (_nameExpression != nameExpression) {
- // Adjust subsetted properties
- removeOwnedElement(_nameExpression);
-
- _nameExpression = nameExpression;
-
- // Adjust subsetted properties
- if (nameExpression) {
- addOwnedElement(nameExpression);
- }
- }
-}
-
-UmlNamespace *UmlNamedElement::namespace_() const
-{
- // This is a read-only derived union association end
-
- return _namespace_;
-}
-
-void UmlNamedElement::setNamespace(UmlNamespace *namespace_)
-{
- // This is a read-only derived union association end
-
- if (_namespace_ != namespace_) {
- // Adjust subsetted properties
-
- _namespace_ = namespace_;
-
- // Adjust subsetted properties
- setOwner(namespace_);
- }
-}
-
-QString UmlNamedElement::qualifiedName() const
-{
- // This is a read-only derived property
-
- qWarning("UmlNamedElement::qualifiedName(): to be implemented (this is a derived property)");
-
- return QString();
-}
-
-void UmlNamedElement::setQualifiedName(QString qualifiedName)
-{
- // This is a read-only derived property
-
- qWarning("UmlNamedElement::qualifiedName(): to be implemented (this is a derived property)");
- Q_UNUSED(qualifiedName);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-QtUml::VisibilityKind UmlNamedElement::visibility() const
-{
- // This is a read-write property
-
- return _visibility;
-}
-
-void UmlNamedElement::setVisibility(QtUml::VisibilityKind visibility)
-{
- // This is a read-write property
-
- if (_visibility != visibility) {
- _visibility = visibility;
- }
-}
-
-// OPERATIONS
-
-QList<UmlNamespace *> UmlNamedElement::allNamespaces(
- ) const
-{
- qWarning("UmlNamedElement::allNamespaces(): to be implemented (operation)");
-
- return QList<UmlNamespace *> ();
-}
-
-QSet<UmlPackage *> UmlNamedElement::allOwningPackages(
- ) const
-{
- qWarning("UmlNamedElement::allOwningPackages(): to be implemented (operation)");
-
- return QSet<UmlPackage *> ();
-}
-
-bool UmlNamedElement::isDistinguishableFrom(
- UmlNamedElement *n, UmlNamespace *ns) const
-{
- qWarning("UmlNamedElement::isDistinguishableFrom(): to be implemented (operation)");
-
- Q_UNUSED(n);
- Q_UNUSED(ns);
- return bool ();
-}
-
-QString UmlNamedElement::separator(
- ) const
-{
- qWarning("UmlNamedElement::separator(): to be implemented (operation)");
-
- return QString ();
-}
-
diff --git a/src/uml/internal/umlnamedelement_p.h b/src/uml/internal/umlnamedelement_p.h
deleted file mode 100644
index 3e21694f..00000000
--- a/src/uml/internal/umlnamedelement_p.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLNAMEDELEMENT_H
-#define UMLNAMEDELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlDependency;
-class UmlNamespace;
-class UmlPackage;
-class UmlStringExpression;
-
-class Q_UML_EXPORT UmlNamedElement : public virtual UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlNamedElement();
-
- // Owned attributes
- const QSet<UmlDependency *> clientDependency() const;
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- QString name() const;
- void setName(QString name);
- UmlStringExpression *nameExpression() const;
- void setNameExpression(UmlStringExpression *nameExpression);
- UmlNamespace *namespace_() const;
- Q_DECL_HIDDEN void setNamespace(UmlNamespace *namespace_);
- QString qualifiedName() const;
- Q_DECL_HIDDEN void setQualifiedName(QString qualifiedName);
- QtUml::VisibilityKind visibility() const;
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Operations
- QList<UmlNamespace *> allNamespaces() const;
- QSet<UmlPackage *> allOwningPackages() const;
- bool isDistinguishableFrom(UmlNamedElement *n, UmlNamespace *ns) const;
- QString separator() const;
-
-protected:
- QSet<UmlDependency *> _clientDependency;
- QString _name;
- UmlStringExpression *_nameExpression;
- UmlNamespace *_namespace_;
- QtUml::VisibilityKind _visibility;
-};
-
-#endif // UMLNAMEDELEMENT_H
-
diff --git a/src/uml/internal/umlnamespace.cpp b/src/uml/internal/umlnamespace.cpp
deleted file mode 100644
index a9ad8d8d..00000000
--- a/src/uml/internal/umlnamespace.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlnamespace_p.h"
-
-#include "private/umlconstraint_p.h"
-#include "private/umlelementimport_p.h"
-#include "private/umlpackageableelement_p.h"
-#include "private/umlpackageimport_p.h"
-
-UmlNamespace::UmlNamespace()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlElementImport *> UmlNamespace::elementImport() const
-{
- // This is a read-write association end
-
- return _elementImport;
-}
-
-void UmlNamespace::addElementImport(UmlElementImport *elementImport)
-{
- // This is a read-write association end
-
- if (!_elementImport.contains(elementImport)) {
- _elementImport.insert(elementImport);
-
- // Adjust subsetted properties
- addOwnedElement(elementImport);
-
- // Adjust opposite properties
- if (elementImport) {
- elementImport->setImportingNamespace(this);
- }
- }
-}
-
-void UmlNamespace::removeElementImport(UmlElementImport *elementImport)
-{
- // This is a read-write association end
-
- if (_elementImport.contains(elementImport)) {
- _elementImport.remove(elementImport);
-
- // Adjust subsetted properties
- removeOwnedElement(elementImport);
-
- // Adjust opposite properties
- if (elementImport) {
- elementImport->setImportingNamespace(0);
- }
- }
-}
-
-const QSet<UmlPackageableElement *> UmlNamespace::importedMember() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)");
-
- return QSet<UmlPackageableElement *>();
-}
-
-void UmlNamespace::addImportedMember(UmlPackageableElement *importedMember)
-{
- // This is a read-only derived association end
-
- qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)");
- Q_UNUSED(importedMember);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addMember(importedMember);
- }
-}
-
-void UmlNamespace::removeImportedMember(UmlPackageableElement *importedMember)
-{
- // This is a read-only derived association end
-
- qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)");
- Q_UNUSED(importedMember);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removeMember(importedMember);
- }
-}
-
-const QSet<UmlNamedElement *> UmlNamespace::member() const
-{
- // This is a read-only derived union association end
-
- return _member;
-}
-
-void UmlNamespace::addMember(UmlNamedElement *member)
-{
- // This is a read-only derived union association end
-
- if (!_member.contains(member)) {
- _member.insert(member);
- }
-}
-
-void UmlNamespace::removeMember(UmlNamedElement *member)
-{
- // This is a read-only derived union association end
-
- if (_member.contains(member)) {
- _member.remove(member);
- }
-}
-
-const QSet<UmlNamedElement *> UmlNamespace::ownedMember() const
-{
- // This is a read-only derived union association end
-
- return _ownedMember;
-}
-
-void UmlNamespace::addOwnedMember(UmlNamedElement *ownedMember)
-{
- // This is a read-only derived union association end
-
- if (!_ownedMember.contains(ownedMember)) {
- _ownedMember.insert(ownedMember);
-
- // Adjust subsetted properties
- addMember(ownedMember);
- addOwnedElement(ownedMember);
-
- // Adjust opposite properties
- if (ownedMember) {
- ownedMember->setNamespace(this);
- }
- }
-}
-
-void UmlNamespace::removeOwnedMember(UmlNamedElement *ownedMember)
-{
- // This is a read-only derived union association end
-
- if (_ownedMember.contains(ownedMember)) {
- _ownedMember.remove(ownedMember);
-
- // Adjust subsetted properties
- removeMember(ownedMember);
- removeOwnedElement(ownedMember);
-
- // Adjust opposite properties
- if (ownedMember) {
- ownedMember->setNamespace(0);
- }
- }
-}
-
-const QSet<UmlConstraint *> UmlNamespace::ownedRule() const
-{
- // This is a read-write association end
-
- return _ownedRule;
-}
-
-void UmlNamespace::addOwnedRule(UmlConstraint *ownedRule)
-{
- // This is a read-write association end
-
- if (!_ownedRule.contains(ownedRule)) {
- _ownedRule.insert(ownedRule);
-
- // Adjust subsetted properties
- addOwnedMember(ownedRule);
-
- // Adjust opposite properties
- if (ownedRule) {
- ownedRule->setContext(this);
- }
- }
-}
-
-void UmlNamespace::removeOwnedRule(UmlConstraint *ownedRule)
-{
- // This is a read-write association end
-
- if (_ownedRule.contains(ownedRule)) {
- _ownedRule.remove(ownedRule);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedRule);
-
- // Adjust opposite properties
- if (ownedRule) {
- ownedRule->setContext(0);
- }
- }
-}
-
-const QSet<UmlPackageImport *> UmlNamespace::packageImport() const
-{
- // This is a read-write association end
-
- return _packageImport;
-}
-
-void UmlNamespace::addPackageImport(UmlPackageImport *packageImport)
-{
- // This is a read-write association end
-
- if (!_packageImport.contains(packageImport)) {
- _packageImport.insert(packageImport);
-
- // Adjust subsetted properties
- addOwnedElement(packageImport);
-
- // Adjust opposite properties
- if (packageImport) {
- packageImport->setImportingNamespace(this);
- }
- }
-}
-
-void UmlNamespace::removePackageImport(UmlPackageImport *packageImport)
-{
- // This is a read-write association end
-
- if (_packageImport.contains(packageImport)) {
- _packageImport.remove(packageImport);
-
- // Adjust subsetted properties
- removeOwnedElement(packageImport);
-
- // Adjust opposite properties
- if (packageImport) {
- packageImport->setImportingNamespace(0);
- }
- }
-}
-
-// OPERATIONS
-
-QSet<UmlPackageableElement *> UmlNamespace::excludeCollisions(
- QSet<UmlPackageableElement *> imps) const
-{
- qWarning("UmlNamespace::excludeCollisions(): to be implemented (operation)");
-
- Q_UNUSED(imps);
- return QSet<UmlPackageableElement *> ();
-}
-
-QSet<QString> UmlNamespace::getNamesOfMember(
- UmlNamedElement *element) const
-{
- qWarning("UmlNamespace::getNamesOfMember(): to be implemented (operation)");
-
- Q_UNUSED(element);
- return QSet<QString> ();
-}
-
-QSet<UmlPackageableElement *> UmlNamespace::importMembers(
- QSet<UmlPackageableElement *> imps) const
-{
- qWarning("UmlNamespace::importMembers(): to be implemented (operation)");
-
- Q_UNUSED(imps);
- return QSet<UmlPackageableElement *> ();
-}
-
-bool UmlNamespace::membersAreDistinguishable(
- ) const
-{
- qWarning("UmlNamespace::membersAreDistinguishable(): to be implemented (operation)");
-
- return bool ();
-}
-
diff --git a/src/uml/internal/umlnamespace_p.h b/src/uml/internal/umlnamespace_p.h
deleted file mode 100644
index e77f0401..00000000
--- a/src/uml/internal/umlnamespace_p.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLNAMESPACE_H
-#define UMLNAMESPACE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConstraint;
-class UmlElementImport;
-class UmlPackageableElement;
-class UmlPackageImport;
-
-class Q_UML_EXPORT UmlNamespace : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlNamespace();
-
- // Owned attributes
- const QSet<UmlElementImport *> elementImport() const;
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- const QSet<UmlPackageableElement *> importedMember() const;
- Q_DECL_HIDDEN void addImportedMember(UmlPackageableElement *importedMember);
- Q_DECL_HIDDEN void removeImportedMember(UmlPackageableElement *importedMember);
- const QSet<UmlNamedElement *> member() const;
- Q_DECL_HIDDEN void addMember(UmlNamedElement *member);
- Q_DECL_HIDDEN void removeMember(UmlNamedElement *member);
- const QSet<UmlNamedElement *> ownedMember() const;
- Q_DECL_HIDDEN void addOwnedMember(UmlNamedElement *ownedMember);
- Q_DECL_HIDDEN void removeOwnedMember(UmlNamedElement *ownedMember);
- const QSet<UmlConstraint *> ownedRule() const;
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- const QSet<UmlPackageImport *> packageImport() const;
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Operations
- QSet<UmlPackageableElement *> excludeCollisions(QSet<UmlPackageableElement *> imps) const;
- QSet<QString> getNamesOfMember(UmlNamedElement *element) const;
- QSet<UmlPackageableElement *> importMembers(QSet<UmlPackageableElement *> imps) const;
- bool membersAreDistinguishable() const;
-
-protected:
- QSet<UmlElementImport *> _elementImport;
- QSet<UmlNamedElement *> _member;
- QSet<UmlNamedElement *> _ownedMember;
- QSet<UmlConstraint *> _ownedRule;
- QSet<UmlPackageImport *> _packageImport;
-};
-
-#endif // UMLNAMESPACE_H
-
diff --git a/src/uml/internal/umlnode.cpp b/src/uml/internal/umlnode.cpp
deleted file mode 100644
index 77b13201..00000000
--- a/src/uml/internal/umlnode.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlnode_p.h"
-
-UmlNode::UmlNode()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlNode *> UmlNode::nestedNode() const
-{
- // This is a read-write association end
-
- return _nestedNode;
-}
-
-void UmlNode::addNestedNode(UmlNode *nestedNode)
-{
- // This is a read-write association end
-
- if (!_nestedNode.contains(nestedNode)) {
- _nestedNode.insert(nestedNode);
-
- // Adjust subsetted properties
- addOwnedMember(nestedNode);
- }
-}
-
-void UmlNode::removeNestedNode(UmlNode *nestedNode)
-{
- // This is a read-write association end
-
- if (_nestedNode.contains(nestedNode)) {
- _nestedNode.remove(nestedNode);
-
- // Adjust subsetted properties
- removeOwnedMember(nestedNode);
- }
-}
-
diff --git a/src/uml/internal/umlnode_p.h b/src/uml/internal/umlnode_p.h
deleted file mode 100644
index cac015f6..00000000
--- a/src/uml/internal/umlnode_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLNODE_H
-#define UMLNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclass_p.h"
-#include "private/umldeploymenttarget_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlNode : public UmlClass, public UmlDeploymentTarget
-{
-public:
- Q_DECL_HIDDEN explicit UmlNode();
-
- // Owned attributes
- const QSet<UmlNode *> nestedNode() const;
- void addNestedNode(UmlNode *nestedNode);
- void removeNestedNode(UmlNode *nestedNode);
-
-protected:
- QSet<UmlNode *> _nestedNode;
-};
-
-#endif // UMLNODE_H
-
diff --git a/src/uml/internal/umlobjectflow.cpp b/src/uml/internal/umlobjectflow.cpp
deleted file mode 100644
index c20aa752..00000000
--- a/src/uml/internal/umlobjectflow.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlobjectflow_p.h"
-
-#include "private/umlbehavior_p.h"
-
-UmlObjectFlow::UmlObjectFlow() :
- _isMulticast(false),
- _isMultireceive(false),
- _selection(0),
- _transformation(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlObjectFlow::isMulticast() const
-{
- // This is a read-write property
-
- return _isMulticast;
-}
-
-void UmlObjectFlow::setMulticast(bool isMulticast)
-{
- // This is a read-write property
-
- if (_isMulticast != isMulticast) {
- _isMulticast = isMulticast;
- }
-}
-
-bool UmlObjectFlow::isMultireceive() const
-{
- // This is a read-write property
-
- return _isMultireceive;
-}
-
-void UmlObjectFlow::setMultireceive(bool isMultireceive)
-{
- // This is a read-write property
-
- if (_isMultireceive != isMultireceive) {
- _isMultireceive = isMultireceive;
- }
-}
-
-UmlBehavior *UmlObjectFlow::selection() const
-{
- // This is a read-write association end
-
- return _selection;
-}
-
-void UmlObjectFlow::setSelection(UmlBehavior *selection)
-{
- // This is a read-write association end
-
- if (_selection != selection) {
- _selection = selection;
- }
-}
-
-UmlBehavior *UmlObjectFlow::transformation() const
-{
- // This is a read-write association end
-
- return _transformation;
-}
-
-void UmlObjectFlow::setTransformation(UmlBehavior *transformation)
-{
- // This is a read-write association end
-
- if (_transformation != transformation) {
- _transformation = transformation;
- }
-}
-
diff --git a/src/uml/internal/umlobjectflow_p.h b/src/uml/internal/umlobjectflow_p.h
deleted file mode 100644
index 8bc3e8cb..00000000
--- a/src/uml/internal/umlobjectflow_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOBJECTFLOW_H
-#define UMLOBJECTFLOW_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivityedge_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-
-class Q_UML_EXPORT UmlObjectFlow : public UmlActivityEdge
-{
-public:
- Q_DECL_HIDDEN explicit UmlObjectFlow();
-
- // Owned attributes
- bool isMulticast() const;
- void setMulticast(bool isMulticast);
- bool isMultireceive() const;
- void setMultireceive(bool isMultireceive);
- UmlBehavior *selection() const;
- void setSelection(UmlBehavior *selection);
- UmlBehavior *transformation() const;
- void setTransformation(UmlBehavior *transformation);
-
-protected:
- bool _isMulticast;
- bool _isMultireceive;
- UmlBehavior *_selection;
- UmlBehavior *_transformation;
-};
-
-#endif // UMLOBJECTFLOW_H
-
diff --git a/src/uml/internal/umlobjectnode.cpp b/src/uml/internal/umlobjectnode.cpp
deleted file mode 100644
index 3291548e..00000000
--- a/src/uml/internal/umlobjectnode.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlobjectnode_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlstate_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlObjectNode::UmlObjectNode() :
- _isControlType(false),
- _ordering(QtUml::ObjectNodeOrderingKindFIFO),
- _selection(0),
- _upperBound(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlState *> UmlObjectNode::inState() const
-{
- // This is a read-write association end
-
- return _inState;
-}
-
-void UmlObjectNode::addInState(UmlState *inState)
-{
- // This is a read-write association end
-
- if (!_inState.contains(inState)) {
- _inState.insert(inState);
- }
-}
-
-void UmlObjectNode::removeInState(UmlState *inState)
-{
- // This is a read-write association end
-
- if (_inState.contains(inState)) {
- _inState.remove(inState);
- }
-}
-
-bool UmlObjectNode::isControlType() const
-{
- // This is a read-write property
-
- return _isControlType;
-}
-
-void UmlObjectNode::setControlType(bool isControlType)
-{
- // This is a read-write property
-
- if (_isControlType != isControlType) {
- _isControlType = isControlType;
- }
-}
-
-QtUml::ObjectNodeOrderingKind UmlObjectNode::ordering() const
-{
- // This is a read-write property
-
- return _ordering;
-}
-
-void UmlObjectNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- // This is a read-write property
-
- if (_ordering != ordering) {
- _ordering = ordering;
- }
-}
-
-UmlBehavior *UmlObjectNode::selection() const
-{
- // This is a read-write association end
-
- return _selection;
-}
-
-void UmlObjectNode::setSelection(UmlBehavior *selection)
-{
- // This is a read-write association end
-
- if (_selection != selection) {
- _selection = selection;
- }
-}
-
-UmlValueSpecification *UmlObjectNode::upperBound() const
-{
- // This is a read-write association end
-
- return _upperBound;
-}
-
-void UmlObjectNode::setUpperBound(UmlValueSpecification *upperBound)
-{
- // This is a read-write association end
-
- if (_upperBound != upperBound) {
- // Adjust subsetted properties
- removeOwnedElement(_upperBound);
-
- _upperBound = upperBound;
-
- // Adjust subsetted properties
- if (upperBound) {
- addOwnedElement(upperBound);
- }
- }
-}
-
diff --git a/src/uml/internal/umlobjectnode_p.h b/src/uml/internal/umlobjectnode_p.h
deleted file mode 100644
index 0384e42a..00000000
--- a/src/uml/internal/umlobjectnode_p.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOBJECTNODE_H
-#define UMLOBJECTNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlactivitynode_p.h"
-#include "private/umltypedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlBehavior;
-class UmlState;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlObjectNode : public UmlActivityNode, public UmlTypedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlObjectNode();
-
- // Owned attributes
- const QSet<UmlState *> inState() const;
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- bool isControlType() const;
- void setControlType(bool isControlType);
- QtUml::ObjectNodeOrderingKind ordering() const;
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- UmlBehavior *selection() const;
- void setSelection(UmlBehavior *selection);
- UmlValueSpecification *upperBound() const;
- void setUpperBound(UmlValueSpecification *upperBound);
-
-protected:
- QSet<UmlState *> _inState;
- bool _isControlType;
- QtUml::ObjectNodeOrderingKind _ordering;
- UmlBehavior *_selection;
- UmlValueSpecification *_upperBound;
-};
-
-#endif // UMLOBJECTNODE_H
-
diff --git a/src/uml/internal/umlobservation.cpp b/src/uml/internal/umlobservation.cpp
deleted file mode 100644
index 031c4d0e..00000000
--- a/src/uml/internal/umlobservation.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlobservation_p.h"
-
-UmlObservation::UmlObservation()
-{
-}
-
diff --git a/src/uml/internal/umlobservation_p.h b/src/uml/internal/umlobservation_p.h
deleted file mode 100644
index aaca4994..00000000
--- a/src/uml/internal/umlobservation_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOBSERVATION_H
-#define UMLOBSERVATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlObservation : public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlObservation();
-
-protected:
-};
-
-#endif // UMLOBSERVATION_H
-
diff --git a/src/uml/internal/umloccurrencespecification.cpp b/src/uml/internal/umloccurrencespecification.cpp
deleted file mode 100644
index c6be2c52..00000000
--- a/src/uml/internal/umloccurrencespecification.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umloccurrencespecification_p.h"
-
-#include "private/umlgeneralordering_p.h"
-#include "private/umllifeline_p.h"
-
-UmlOccurrenceSpecification::UmlOccurrenceSpecification() :
- _covered(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlLifeline *UmlOccurrenceSpecification::covered() const
-{
- // This is a read-write association end
-
- return _covered;
-}
-
-void UmlOccurrenceSpecification::setCovered(UmlLifeline *covered)
-{
- // This is a read-write association end
-
- if (_covered != covered) {
- _covered = covered;
- }
-}
-
-const QSet<UmlGeneralOrdering *> UmlOccurrenceSpecification::toAfter() const
-{
- // This is a read-write association end
-
- return _toAfter;
-}
-
-void UmlOccurrenceSpecification::addToAfter(UmlGeneralOrdering *toAfter)
-{
- // This is a read-write association end
-
- if (!_toAfter.contains(toAfter)) {
- _toAfter.insert(toAfter);
-
- // Adjust opposite properties
- if (toAfter) {
- toAfter->setBefore(this);
- }
- }
-}
-
-void UmlOccurrenceSpecification::removeToAfter(UmlGeneralOrdering *toAfter)
-{
- // This is a read-write association end
-
- if (_toAfter.contains(toAfter)) {
- _toAfter.remove(toAfter);
-
- // Adjust opposite properties
- if (toAfter) {
- toAfter->setBefore(0);
- }
- }
-}
-
-const QSet<UmlGeneralOrdering *> UmlOccurrenceSpecification::toBefore() const
-{
- // This is a read-write association end
-
- return _toBefore;
-}
-
-void UmlOccurrenceSpecification::addToBefore(UmlGeneralOrdering *toBefore)
-{
- // This is a read-write association end
-
- if (!_toBefore.contains(toBefore)) {
- _toBefore.insert(toBefore);
-
- // Adjust opposite properties
- if (toBefore) {
- toBefore->setAfter(this);
- }
- }
-}
-
-void UmlOccurrenceSpecification::removeToBefore(UmlGeneralOrdering *toBefore)
-{
- // This is a read-write association end
-
- if (_toBefore.contains(toBefore)) {
- _toBefore.remove(toBefore);
-
- // Adjust opposite properties
- if (toBefore) {
- toBefore->setAfter(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umloccurrencespecification_p.h b/src/uml/internal/umloccurrencespecification_p.h
deleted file mode 100644
index 00939300..00000000
--- a/src/uml/internal/umloccurrencespecification_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOCCURRENCESPECIFICATION_H
-#define UMLOCCURRENCESPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlGeneralOrdering;
-class UmlLifeline;
-
-class Q_UML_EXPORT UmlOccurrenceSpecification : public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlOccurrenceSpecification();
-
- // Owned attributes
- UmlLifeline *covered() const;
- void setCovered(UmlLifeline *covered);
- const QSet<UmlGeneralOrdering *> toAfter() const;
- void addToAfter(UmlGeneralOrdering *toAfter);
- void removeToAfter(UmlGeneralOrdering *toAfter);
- const QSet<UmlGeneralOrdering *> toBefore() const;
- void addToBefore(UmlGeneralOrdering *toBefore);
- void removeToBefore(UmlGeneralOrdering *toBefore);
-
-protected:
- UmlLifeline *_covered;
- QSet<UmlGeneralOrdering *> _toAfter;
- QSet<UmlGeneralOrdering *> _toBefore;
-};
-
-#endif // UMLOCCURRENCESPECIFICATION_H
-
diff --git a/src/uml/internal/umlopaqueaction.cpp b/src/uml/internal/umlopaqueaction.cpp
deleted file mode 100644
index 1ebe671d..00000000
--- a/src/uml/internal/umlopaqueaction.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlopaqueaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlOpaqueAction::UmlOpaqueAction()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<QString> UmlOpaqueAction::body() const
-{
- // This is a read-write property
-
- return _body;
-}
-
-void UmlOpaqueAction::addBody(QString body)
-{
- // This is a read-write property
-
- if (!_body.contains(body)) {
- _body.append(body);
- }
-}
-
-void UmlOpaqueAction::removeBody(QString body)
-{
- // This is a read-write property
-
- if (_body.contains(body)) {
- _body.removeAll(body);
- }
-}
-
-const QSet<UmlInputPin *> UmlOpaqueAction::inputValue() const
-{
- // This is a read-write association end
-
- return _inputValue;
-}
-
-void UmlOpaqueAction::addInputValue(UmlInputPin *inputValue)
-{
- // This is a read-write association end
-
- if (!_inputValue.contains(inputValue)) {
- _inputValue.insert(inputValue);
-
- // Adjust subsetted properties
- addInput(inputValue);
- }
-}
-
-void UmlOpaqueAction::removeInputValue(UmlInputPin *inputValue)
-{
- // This is a read-write association end
-
- if (_inputValue.contains(inputValue)) {
- _inputValue.remove(inputValue);
-
- // Adjust subsetted properties
- removeInput(inputValue);
- }
-}
-
-const QList<QString> UmlOpaqueAction::language() const
-{
- // This is a read-write property
-
- return _language;
-}
-
-void UmlOpaqueAction::addLanguage(QString language)
-{
- // This is a read-write property
-
- if (!_language.contains(language)) {
- _language.append(language);
- }
-}
-
-void UmlOpaqueAction::removeLanguage(QString language)
-{
- // This is a read-write property
-
- if (_language.contains(language)) {
- _language.removeAll(language);
- }
-}
-
-const QSet<UmlOutputPin *> UmlOpaqueAction::outputValue() const
-{
- // This is a read-write association end
-
- return _outputValue;
-}
-
-void UmlOpaqueAction::addOutputValue(UmlOutputPin *outputValue)
-{
- // This is a read-write association end
-
- if (!_outputValue.contains(outputValue)) {
- _outputValue.insert(outputValue);
-
- // Adjust subsetted properties
- addOutput(outputValue);
- }
-}
-
-void UmlOpaqueAction::removeOutputValue(UmlOutputPin *outputValue)
-{
- // This is a read-write association end
-
- if (_outputValue.contains(outputValue)) {
- _outputValue.remove(outputValue);
-
- // Adjust subsetted properties
- removeOutput(outputValue);
- }
-}
-
diff --git a/src/uml/internal/umlopaqueaction_p.h b/src/uml/internal/umlopaqueaction_p.h
deleted file mode 100644
index 6ef3e354..00000000
--- a/src/uml/internal/umlopaqueaction_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOPAQUEACTION_H
-#define UMLOPAQUEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlOpaqueAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlOpaqueAction();
-
- // Owned attributes
- const QList<QString> body() const;
- void addBody(QString body);
- void removeBody(QString body);
- const QSet<UmlInputPin *> inputValue() const;
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
- const QList<QString> language() const;
- void addLanguage(QString language);
- void removeLanguage(QString language);
- const QSet<UmlOutputPin *> outputValue() const;
- void addOutputValue(UmlOutputPin *outputValue);
- void removeOutputValue(UmlOutputPin *outputValue);
-
-protected:
- QList<QString> _body;
- QSet<UmlInputPin *> _inputValue;
- QList<QString> _language;
- QSet<UmlOutputPin *> _outputValue;
-};
-
-#endif // UMLOPAQUEACTION_H
-
diff --git a/src/uml/internal/umlopaquebehavior.cpp b/src/uml/internal/umlopaquebehavior.cpp
deleted file mode 100644
index 331f2832..00000000
--- a/src/uml/internal/umlopaquebehavior.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlopaquebehavior_p.h"
-
-UmlOpaqueBehavior::UmlOpaqueBehavior()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<QString> UmlOpaqueBehavior::body() const
-{
- // This is a read-write property
-
- return _body;
-}
-
-void UmlOpaqueBehavior::addBody(QString body)
-{
- // This is a read-write property
-
- if (!_body.contains(body)) {
- _body.append(body);
- }
-}
-
-void UmlOpaqueBehavior::removeBody(QString body)
-{
- // This is a read-write property
-
- if (_body.contains(body)) {
- _body.removeAll(body);
- }
-}
-
-const QList<QString> UmlOpaqueBehavior::language() const
-{
- // This is a read-write property
-
- return _language;
-}
-
-void UmlOpaqueBehavior::addLanguage(QString language)
-{
- // This is a read-write property
-
- if (!_language.contains(language)) {
- _language.append(language);
- }
-}
-
-void UmlOpaqueBehavior::removeLanguage(QString language)
-{
- // This is a read-write property
-
- if (_language.contains(language)) {
- _language.removeAll(language);
- }
-}
-
diff --git a/src/uml/internal/umlopaquebehavior_p.h b/src/uml/internal/umlopaquebehavior_p.h
deleted file mode 100644
index ed62894b..00000000
--- a/src/uml/internal/umlopaquebehavior_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOPAQUEBEHAVIOR_H
-#define UMLOPAQUEBEHAVIOR_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavior_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlOpaqueBehavior : public UmlBehavior
-{
-public:
- Q_DECL_HIDDEN explicit UmlOpaqueBehavior();
-
- // Owned attributes
- const QList<QString> body() const;
- void addBody(QString body);
- void removeBody(QString body);
- const QList<QString> language() const;
- void addLanguage(QString language);
- void removeLanguage(QString language);
-
-protected:
- QList<QString> _body;
- QList<QString> _language;
-};
-
-#endif // UMLOPAQUEBEHAVIOR_H
-
diff --git a/src/uml/internal/umlopaqueexpression.cpp b/src/uml/internal/umlopaqueexpression.cpp
deleted file mode 100644
index 87a87fd7..00000000
--- a/src/uml/internal/umlopaqueexpression.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlopaqueexpression_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlparameter_p.h"
-
-UmlOpaqueExpression::UmlOpaqueExpression() :
- _behavior(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlBehavior *UmlOpaqueExpression::behavior() const
-{
- // This is a read-write association end
-
- return _behavior;
-}
-
-void UmlOpaqueExpression::setBehavior(UmlBehavior *behavior)
-{
- // This is a read-write association end
-
- if (_behavior != behavior) {
- _behavior = behavior;
- }
-}
-
-const QList<QString> UmlOpaqueExpression::body() const
-{
- // This is a read-write property
-
- return _body;
-}
-
-void UmlOpaqueExpression::addBody(QString body)
-{
- // This is a read-write property
-
- if (!_body.contains(body)) {
- _body.append(body);
- }
-}
-
-void UmlOpaqueExpression::removeBody(QString body)
-{
- // This is a read-write property
-
- if (_body.contains(body)) {
- _body.removeAll(body);
- }
-}
-
-const QList<QString> UmlOpaqueExpression::language() const
-{
- // This is a read-write property
-
- return _language;
-}
-
-void UmlOpaqueExpression::addLanguage(QString language)
-{
- // This is a read-write property
-
- if (!_language.contains(language)) {
- _language.append(language);
- }
-}
-
-void UmlOpaqueExpression::removeLanguage(QString language)
-{
- // This is a read-write property
-
- if (_language.contains(language)) {
- _language.removeAll(language);
- }
-}
-
-UmlParameter *UmlOpaqueExpression::result() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlOpaqueExpression::result(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlOpaqueExpression::setResult(UmlParameter *result)
-{
- // This is a read-only derived association end
-
- qWarning("UmlOpaqueExpression::result(): to be implemented (this is a derived association end)");
- Q_UNUSED(result);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-// OPERATIONS
-
-bool UmlOpaqueExpression::isIntegral(
- ) const
-{
- qWarning("UmlOpaqueExpression::isIntegral(): to be implemented (operation)");
-
- return bool ();
-}
-
-bool UmlOpaqueExpression::isNonNegative(
- ) const
-{
- qWarning("UmlOpaqueExpression::isNonNegative(): to be implemented (operation)");
-
- return bool ();
-}
-
-bool UmlOpaqueExpression::isPositive(
- ) const
-{
- qWarning("UmlOpaqueExpression::isPositive(): to be implemented (operation)");
-
- return bool ();
-}
-
-int UmlOpaqueExpression::value(
- ) const
-{
- qWarning("UmlOpaqueExpression::value(): to be implemented (operation)");
-
- return int ();
-}
-
diff --git a/src/uml/internal/umlopaqueexpression_p.h b/src/uml/internal/umlopaqueexpression_p.h
deleted file mode 100644
index 4e5bd374..00000000
--- a/src/uml/internal/umlopaqueexpression_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOPAQUEEXPRESSION_H
-#define UMLOPAQUEEXPRESSION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-class UmlParameter;
-
-class Q_UML_EXPORT UmlOpaqueExpression : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlOpaqueExpression();
-
- // Owned attributes
- UmlBehavior *behavior() const;
- void setBehavior(UmlBehavior *behavior);
- const QList<QString> body() const;
- void addBody(QString body);
- void removeBody(QString body);
- const QList<QString> language() const;
- void addLanguage(QString language);
- void removeLanguage(QString language);
- UmlParameter *result() const;
- Q_DECL_HIDDEN void setResult(UmlParameter *result);
-
- // Operations
- bool isIntegral() const;
- bool isNonNegative() const;
- bool isPositive() const;
- int value() const;
-
-protected:
- UmlBehavior *_behavior;
- QList<QString> _body;
- QList<QString> _language;
-};
-
-#endif // UMLOPAQUEEXPRESSION_H
-
diff --git a/src/uml/internal/umloperation.cpp b/src/uml/internal/umloperation.cpp
deleted file mode 100644
index 0d9dc477..00000000
--- a/src/uml/internal/umloperation.cpp
+++ /dev/null
@@ -1,483 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umloperation_p.h"
-
-#include "private/umlclass_p.h"
-#include "private/umlconstraint_p.h"
-#include "private/umldatatype_p.h"
-#include "private/umlinterface_p.h"
-#include "private/umloperationtemplateparameter_p.h"
-#include "private/umlparameter_p.h"
-#include "private/umlredefinableelement_p.h"
-#include "private/umltype_p.h"
-
-UmlOperation::UmlOperation() :
- _bodyCondition(0),
- _class_(0),
- _datatype(0),
- _interface_(0),
- _isQuery(false),
- _templateParameter(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlConstraint *UmlOperation::bodyCondition() const
-{
- // This is a read-write association end
-
- return _bodyCondition;
-}
-
-void UmlOperation::setBodyCondition(UmlConstraint *bodyCondition)
-{
- // This is a read-write association end
-
- if (_bodyCondition != bodyCondition) {
- // Adjust subsetted properties
- removeOwnedRule(_bodyCondition);
-
- _bodyCondition = bodyCondition;
-
- // Adjust subsetted properties
- if (bodyCondition) {
- addOwnedRule(bodyCondition);
- }
- }
-}
-
-UmlClass *UmlOperation::class_() const
-{
- // This is a read-write association end
-
- return _class_;
-}
-
-void UmlOperation::setClass(UmlClass *class_)
-{
- // This is a read-write association end
-
- if (_class_ != class_) {
- // Adjust subsetted properties
- removeFeaturingClassifier(_class_);
- removeRedefinitionContext(_class_);
-
- _class_ = class_;
-
- // Adjust subsetted properties
- if (class_) {
- addFeaturingClassifier(class_);
- }
- if (class_) {
- addRedefinitionContext(class_);
- }
- setNamespace(class_);
- }
-}
-
-UmlDataType *UmlOperation::datatype() const
-{
- // This is a read-write association end
-
- return _datatype;
-}
-
-void UmlOperation::setDatatype(UmlDataType *datatype)
-{
- // This is a read-write association end
-
- if (_datatype != datatype) {
- // Adjust subsetted properties
- removeFeaturingClassifier(_datatype);
- removeRedefinitionContext(_datatype);
-
- _datatype = datatype;
-
- // Adjust subsetted properties
- if (datatype) {
- addFeaturingClassifier(datatype);
- }
- if (datatype) {
- addRedefinitionContext(datatype);
- }
- setNamespace(datatype);
- }
-}
-
-UmlInterface *UmlOperation::interface_() const
-{
- // This is a read-write association end
-
- return _interface_;
-}
-
-void UmlOperation::setInterface(UmlInterface *interface_)
-{
- // This is a read-write association end
-
- if (_interface_ != interface_) {
- // Adjust subsetted properties
- removeFeaturingClassifier(_interface_);
- removeRedefinitionContext(_interface_);
-
- _interface_ = interface_;
-
- // Adjust subsetted properties
- if (interface_) {
- addFeaturingClassifier(interface_);
- }
- if (interface_) {
- addRedefinitionContext(interface_);
- }
- setNamespace(interface_);
- }
-}
-
-bool UmlOperation::isOrdered() const
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::isOrdered(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlOperation::setOrdered(bool isOrdered)
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::isOrdered(): to be implemented (this is a derived property)");
- Q_UNUSED(isOrdered);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-bool UmlOperation::isQuery() const
-{
- // This is a read-write property
-
- return _isQuery;
-}
-
-void UmlOperation::setQuery(bool isQuery)
-{
- // This is a read-write property
-
- if (_isQuery != isQuery) {
- _isQuery = isQuery;
- }
-}
-
-bool UmlOperation::isUnique() const
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::isUnique(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlOperation::setUnique(bool isUnique)
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::isUnique(): to be implemented (this is a derived property)");
- Q_UNUSED(isUnique);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-int UmlOperation::lower() const
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::lower(): to be implemented (this is a derived property)");
-
- return int();
-}
-
-void UmlOperation::setLower(int lower)
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::lower(): to be implemented (this is a derived property)");
- Q_UNUSED(lower);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QList<UmlParameter *> UmlOperation::ownedParameter() const
-{
- // This is a read-write association end
-
- return _ownedParameter;
-}
-
-void UmlOperation::addOwnedParameter(UmlParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (!_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.append(ownedParameter);
-
- // Adjust opposite properties
- if (ownedParameter) {
- ownedParameter->setOperation(this);
- }
- }
-}
-
-void UmlOperation::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.removeAll(ownedParameter);
-
- // Adjust opposite properties
- if (ownedParameter) {
- ownedParameter->setOperation(0);
- }
- }
-}
-
-const QSet<UmlConstraint *> UmlOperation::postcondition() const
-{
- // This is a read-write association end
-
- return _postcondition;
-}
-
-void UmlOperation::addPostcondition(UmlConstraint *postcondition)
-{
- // This is a read-write association end
-
- if (!_postcondition.contains(postcondition)) {
- _postcondition.insert(postcondition);
-
- // Adjust subsetted properties
- addOwnedRule(postcondition);
- }
-}
-
-void UmlOperation::removePostcondition(UmlConstraint *postcondition)
-{
- // This is a read-write association end
-
- if (_postcondition.contains(postcondition)) {
- _postcondition.remove(postcondition);
-
- // Adjust subsetted properties
- removeOwnedRule(postcondition);
- }
-}
-
-const QSet<UmlConstraint *> UmlOperation::precondition() const
-{
- // This is a read-write association end
-
- return _precondition;
-}
-
-void UmlOperation::addPrecondition(UmlConstraint *precondition)
-{
- // This is a read-write association end
-
- if (!_precondition.contains(precondition)) {
- _precondition.insert(precondition);
-
- // Adjust subsetted properties
- addOwnedRule(precondition);
- }
-}
-
-void UmlOperation::removePrecondition(UmlConstraint *precondition)
-{
- // This is a read-write association end
-
- if (_precondition.contains(precondition)) {
- _precondition.remove(precondition);
-
- // Adjust subsetted properties
- removeOwnedRule(precondition);
- }
-}
-
-const QSet<UmlType *> UmlOperation::raisedException() const
-{
- // This is a read-write association end
-
- return _raisedException;
-}
-
-void UmlOperation::addRaisedException(UmlType *raisedException)
-{
- // This is a read-write association end
-
- if (!_raisedException.contains(raisedException)) {
- _raisedException.insert(raisedException);
- }
-}
-
-void UmlOperation::removeRaisedException(UmlType *raisedException)
-{
- // This is a read-write association end
-
- if (_raisedException.contains(raisedException)) {
- _raisedException.remove(raisedException);
- }
-}
-
-const QSet<UmlOperation *> UmlOperation::redefinedOperation() const
-{
- // This is a read-write association end
-
- return _redefinedOperation;
-}
-
-void UmlOperation::addRedefinedOperation(UmlOperation *redefinedOperation)
-{
- // This is a read-write association end
-
- if (!_redefinedOperation.contains(redefinedOperation)) {
- _redefinedOperation.insert(redefinedOperation);
-
- // Adjust subsetted properties
- addRedefinedElement(redefinedOperation);
- }
-}
-
-void UmlOperation::removeRedefinedOperation(UmlOperation *redefinedOperation)
-{
- // This is a read-write association end
-
- if (_redefinedOperation.contains(redefinedOperation)) {
- _redefinedOperation.remove(redefinedOperation);
-
- // Adjust subsetted properties
- removeRedefinedElement(redefinedOperation);
- }
-}
-
-UmlOperationTemplateParameter *UmlOperation::templateParameter() const
-{
- // This is a read-write association end
-
- return _templateParameter;
-}
-
-void UmlOperation::setTemplateParameter(UmlOperationTemplateParameter *templateParameter)
-{
- // This is a read-write association end
-
- if (_templateParameter != templateParameter) {
- _templateParameter = templateParameter;
- }
-}
-
-UmlType *UmlOperation::type() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlOperation::type(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlOperation::setType(UmlType *type)
-{
- // This is a read-only derived association end
-
- qWarning("UmlOperation::type(): to be implemented (this is a derived association end)");
- Q_UNUSED(type);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-int UmlOperation::upper() const
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::upper(): to be implemented (this is a derived property)");
-
- return int();
-}
-
-void UmlOperation::setUpper(int upper)
-{
- // This is a read-only derived property
-
- qWarning("UmlOperation::upper(): to be implemented (this is a derived property)");
- Q_UNUSED(upper);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-// OPERATIONS
-
-bool UmlOperation::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlOperation::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
-QSet<UmlParameter *> UmlOperation::returnResult(
- ) const
-{
- qWarning("UmlOperation::returnResult(): to be implemented (operation)");
-
- return QSet<UmlParameter *> ();
-}
-
diff --git a/src/uml/internal/umloperation_p.h b/src/uml/internal/umloperation_p.h
deleted file mode 100644
index 1101476f..00000000
--- a/src/uml/internal/umloperation_p.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOPERATION_H
-#define UMLOPERATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltemplateableelement_p.h"
-#include "private/umlbehavioralfeature_p.h"
-#include "private/umlparameterableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClass;
-class UmlConstraint;
-class UmlDataType;
-class UmlInterface;
-class UmlOperationTemplateParameter;
-class UmlParameter;
-class UmlRedefinableElement;
-class UmlType;
-
-class Q_UML_EXPORT UmlOperation : public UmlTemplateableElement, public UmlBehavioralFeature, public UmlParameterableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlOperation();
-
- // Owned attributes
- UmlConstraint *bodyCondition() const;
- void setBodyCondition(UmlConstraint *bodyCondition);
- UmlClass *class_() const;
- void setClass(UmlClass *class_);
- UmlDataType *datatype() const;
- void setDatatype(UmlDataType *datatype);
- UmlInterface *interface_() const;
- void setInterface(UmlInterface *interface_);
- bool isOrdered() const;
- Q_DECL_HIDDEN void setOrdered(bool isOrdered);
- bool isQuery() const;
- void setQuery(bool isQuery);
- bool isUnique() const;
- Q_DECL_HIDDEN void setUnique(bool isUnique);
- int lower() const;
- Q_DECL_HIDDEN void setLower(int lower);
- const QList<UmlParameter *> ownedParameter() const;
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- const QSet<UmlConstraint *> postcondition() const;
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- const QSet<UmlConstraint *> precondition() const;
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- const QSet<UmlType *> raisedException() const;
- void addRaisedException(UmlType *raisedException);
- void removeRaisedException(UmlType *raisedException);
- const QSet<UmlOperation *> redefinedOperation() const;
- void addRedefinedOperation(UmlOperation *redefinedOperation);
- void removeRedefinedOperation(UmlOperation *redefinedOperation);
- UmlOperationTemplateParameter *templateParameter() const;
- void setTemplateParameter(UmlOperationTemplateParameter *templateParameter);
- UmlType *type() const;
- Q_DECL_HIDDEN void setType(UmlType *type);
- int upper() const;
- Q_DECL_HIDDEN void setUpper(int upper);
-
- // Operations
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
- QSet<UmlParameter *> returnResult() const;
-
-protected:
- UmlConstraint *_bodyCondition;
- UmlClass *_class_;
- UmlDataType *_datatype;
- UmlInterface *_interface_;
- bool _isQuery;
- QList<UmlParameter *> _ownedParameter;
- QSet<UmlConstraint *> _postcondition;
- QSet<UmlConstraint *> _precondition;
- QSet<UmlType *> _raisedException;
- QSet<UmlOperation *> _redefinedOperation;
- UmlOperationTemplateParameter *_templateParameter;
-};
-
-#endif // UMLOPERATION_H
-
diff --git a/src/uml/internal/umloperationtemplateparameter.cpp b/src/uml/internal/umloperationtemplateparameter.cpp
deleted file mode 100644
index a57813a8..00000000
--- a/src/uml/internal/umloperationtemplateparameter.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umloperationtemplateparameter_p.h"
-
-#include "private/umloperation_p.h"
-
-UmlOperationTemplateParameter::UmlOperationTemplateParameter() :
- _parameteredElement(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOperation *UmlOperationTemplateParameter::parameteredElement() const
-{
- // This is a read-write association end
-
- return _parameteredElement;
-}
-
-void UmlOperationTemplateParameter::setParameteredElement(UmlOperation *parameteredElement)
-{
- // This is a read-write association end
-
- if (_parameteredElement != parameteredElement) {
- _parameteredElement = parameteredElement;
- }
-}
-
diff --git a/src/uml/internal/umloperationtemplateparameter_p.h b/src/uml/internal/umloperationtemplateparameter_p.h
deleted file mode 100644
index 07ca3142..00000000
--- a/src/uml/internal/umloperationtemplateparameter_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOPERATIONTEMPLATEPARAMETER_H
-#define UMLOPERATIONTEMPLATEPARAMETER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltemplateparameter_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOperation;
-
-class Q_UML_EXPORT UmlOperationTemplateParameter : public UmlTemplateParameter
-{
-public:
- Q_DECL_HIDDEN explicit UmlOperationTemplateParameter();
-
- // Owned attributes
- UmlOperation *parameteredElement() const;
- void setParameteredElement(UmlOperation *parameteredElement);
-
-protected:
- UmlOperation *_parameteredElement;
-};
-
-#endif // UMLOPERATIONTEMPLATEPARAMETER_H
-
diff --git a/src/uml/internal/umloutputpin.cpp b/src/uml/internal/umloutputpin.cpp
deleted file mode 100644
index c12cff04..00000000
--- a/src/uml/internal/umloutputpin.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umloutputpin_p.h"
-
-UmlOutputPin::UmlOutputPin()
-{
-}
-
diff --git a/src/uml/internal/umloutputpin_p.h b/src/uml/internal/umloutputpin_p.h
deleted file mode 100644
index 6c165050..00000000
--- a/src/uml/internal/umloutputpin_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLOUTPUTPIN_H
-#define UMLOUTPUTPIN_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpin_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlOutputPin : public UmlPin
-{
-public:
- Q_DECL_HIDDEN explicit UmlOutputPin();
-
-protected:
-};
-
-#endif // UMLOUTPUTPIN_H
-
diff --git a/src/uml/internal/umlpackage.cpp b/src/uml/internal/umlpackage.cpp
deleted file mode 100644
index dbd3b72e..00000000
--- a/src/uml/internal/umlpackage.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpackage_p.h"
-
-#include "private/umlnamedelement_p.h"
-#include "private/umlpackagemerge_p.h"
-#include "private/umlprofile_p.h"
-#include "private/umlprofileapplication_p.h"
-#include "private/umlstereotype_p.h"
-#include "private/umltype_p.h"
-
-UmlPackage::UmlPackage() :
- _nestingPackage(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlPackage::URI() const
-{
- // This is a read-write property
-
- return _URI;
-}
-
-void UmlPackage::setURI(QString URI)
-{
- // This is a read-write property
-
- if (_URI != URI) {
- _URI = URI;
- }
-}
-
-const QSet<UmlPackage *> UmlPackage::nestedPackage() const
-{
- // This is a read-write derived association end
-
- qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)");
-
- return QSet<UmlPackage *>();
-}
-
-void UmlPackage::addNestedPackage(UmlPackage *nestedPackage)
-{
- // This is a read-write derived association end
-
- qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)");
- Q_UNUSED(nestedPackage);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addPackagedElement(nestedPackage);
- }
-}
-
-void UmlPackage::removeNestedPackage(UmlPackage *nestedPackage)
-{
- // This is a read-write derived association end
-
- qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)");
- Q_UNUSED(nestedPackage);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removePackagedElement(nestedPackage);
- }
-}
-
-UmlPackage *UmlPackage::nestingPackage() const
-{
- // This is a read-write association end
-
- return _nestingPackage;
-}
-
-void UmlPackage::setNestingPackage(UmlPackage *nestingPackage)
-{
- // This is a read-write association end
-
- if (_nestingPackage != nestingPackage) {
- _nestingPackage = nestingPackage;
- }
-}
-
-const QSet<UmlStereotype *> UmlPackage::ownedStereotype() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)");
-
- return QSet<UmlStereotype *>();
-}
-
-void UmlPackage::addOwnedStereotype(UmlStereotype *ownedStereotype)
-{
- // This is a read-only derived association end
-
- qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)");
- Q_UNUSED(ownedStereotype);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addPackagedElement(ownedStereotype);
- }
-}
-
-void UmlPackage::removeOwnedStereotype(UmlStereotype *ownedStereotype)
-{
- // This is a read-only derived association end
-
- qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)");
- Q_UNUSED(ownedStereotype);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removePackagedElement(ownedStereotype);
- }
-}
-
-const QSet<UmlType *> UmlPackage::ownedType() const
-{
- // This is a read-write derived association end
-
- qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)");
-
- return QSet<UmlType *>();
-}
-
-void UmlPackage::addOwnedType(UmlType *ownedType)
-{
- // This is a read-write derived association end
-
- qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)");
- Q_UNUSED(ownedType);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addPackagedElement(ownedType);
-
- // Adjust opposite properties
- if (ownedType) {
- ownedType->setPackage(this);
- }
- }
-}
-
-void UmlPackage::removeOwnedType(UmlType *ownedType)
-{
- // This is a read-write derived association end
-
- qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)");
- Q_UNUSED(ownedType);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removePackagedElement(ownedType);
-
- // Adjust opposite properties
- if (ownedType) {
- ownedType->setPackage(0);
- }
- }
-}
-
-const QSet<UmlPackageMerge *> UmlPackage::packageMerge() const
-{
- // This is a read-write association end
-
- return _packageMerge;
-}
-
-void UmlPackage::addPackageMerge(UmlPackageMerge *packageMerge)
-{
- // This is a read-write association end
-
- if (!_packageMerge.contains(packageMerge)) {
- _packageMerge.insert(packageMerge);
-
- // Adjust subsetted properties
- addOwnedElement(packageMerge);
-
- // Adjust opposite properties
- if (packageMerge) {
- packageMerge->setReceivingPackage(this);
- }
- }
-}
-
-void UmlPackage::removePackageMerge(UmlPackageMerge *packageMerge)
-{
- // This is a read-write association end
-
- if (_packageMerge.contains(packageMerge)) {
- _packageMerge.remove(packageMerge);
-
- // Adjust subsetted properties
- removeOwnedElement(packageMerge);
-
- // Adjust opposite properties
- if (packageMerge) {
- packageMerge->setReceivingPackage(0);
- }
- }
-}
-
-const QSet<UmlPackageableElement *> UmlPackage::packagedElement() const
-{
- // This is a read-write association end
-
- return _packagedElement;
-}
-
-void UmlPackage::addPackagedElement(UmlPackageableElement *packagedElement)
-{
- // This is a read-write association end
-
- if (!_packagedElement.contains(packagedElement)) {
- _packagedElement.insert(packagedElement);
-
- // Adjust subsetted properties
- addOwnedMember(packagedElement);
- }
-}
-
-void UmlPackage::removePackagedElement(UmlPackageableElement *packagedElement)
-{
- // This is a read-write association end
-
- if (_packagedElement.contains(packagedElement)) {
- _packagedElement.remove(packagedElement);
-
- // Adjust subsetted properties
- removeOwnedMember(packagedElement);
- }
-}
-
-const QSet<UmlProfileApplication *> UmlPackage::profileApplication() const
-{
- // This is a read-write association end
-
- return _profileApplication;
-}
-
-void UmlPackage::addProfileApplication(UmlProfileApplication *profileApplication)
-{
- // This is a read-write association end
-
- if (!_profileApplication.contains(profileApplication)) {
- _profileApplication.insert(profileApplication);
-
- // Adjust subsetted properties
- addOwnedElement(profileApplication);
-
- // Adjust opposite properties
- if (profileApplication) {
- profileApplication->setApplyingPackage(this);
- }
- }
-}
-
-void UmlPackage::removeProfileApplication(UmlProfileApplication *profileApplication)
-{
- // This is a read-write association end
-
- if (_profileApplication.contains(profileApplication)) {
- _profileApplication.remove(profileApplication);
-
- // Adjust subsetted properties
- removeOwnedElement(profileApplication);
-
- // Adjust opposite properties
- if (profileApplication) {
- profileApplication->setApplyingPackage(0);
- }
- }
-}
-
-// OPERATIONS
-
-QSet<UmlStereotype *> UmlPackage::allApplicableStereotypes(
- ) const
-{
- qWarning("UmlPackage::allApplicableStereotypes(): to be implemented (operation)");
-
- return QSet<UmlStereotype *> ();
-}
-
-UmlProfile *UmlPackage::containingProfile(
- ) const
-{
- qWarning("UmlPackage::containingProfile(): to be implemented (operation)");
-
- return 0;
-}
-
-bool UmlPackage::makesVisible(
- UmlNamedElement *el) const
-{
- qWarning("UmlPackage::makesVisible(): to be implemented (operation)");
-
- Q_UNUSED(el);
- return bool ();
-}
-
-bool UmlPackage::mustBeOwned(
- ) const
-{
- qWarning("UmlPackage::mustBeOwned(): to be implemented (operation)");
-
- return bool ();
-}
-
-QSet<UmlPackageableElement *> UmlPackage::visibleMembers(
- ) const
-{
- qWarning("UmlPackage::visibleMembers(): to be implemented (operation)");
-
- return QSet<UmlPackageableElement *> ();
-}
-
diff --git a/src/uml/internal/umlpackage_p.h b/src/uml/internal/umlpackage_p.h
deleted file mode 100644
index 16894f29..00000000
--- a/src/uml/internal/umlpackage_p.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPACKAGE_H
-#define UMLPACKAGE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamespace_p.h"
-#include "private/umlpackageableelement_p.h"
-#include "private/umltemplateableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamedElement;
-class UmlPackageMerge;
-class UmlProfile;
-class UmlProfileApplication;
-class UmlStereotype;
-class UmlType;
-
-class Q_UML_EXPORT UmlPackage : public UmlNamespace, public UmlPackageableElement, public UmlTemplateableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlPackage();
-
- // Owned attributes
- QString URI() const;
- void setURI(QString URI);
- const QSet<UmlPackage *> nestedPackage() const;
- void addNestedPackage(UmlPackage *nestedPackage);
- void removeNestedPackage(UmlPackage *nestedPackage);
- UmlPackage *nestingPackage() const;
- void setNestingPackage(UmlPackage *nestingPackage);
- const QSet<UmlStereotype *> ownedStereotype() const;
- Q_DECL_HIDDEN void addOwnedStereotype(UmlStereotype *ownedStereotype);
- Q_DECL_HIDDEN void removeOwnedStereotype(UmlStereotype *ownedStereotype);
- const QSet<UmlType *> ownedType() const;
- void addOwnedType(UmlType *ownedType);
- void removeOwnedType(UmlType *ownedType);
- const QSet<UmlPackageMerge *> packageMerge() const;
- void addPackageMerge(UmlPackageMerge *packageMerge);
- void removePackageMerge(UmlPackageMerge *packageMerge);
- const QSet<UmlPackageableElement *> packagedElement() const;
- void addPackagedElement(UmlPackageableElement *packagedElement);
- void removePackagedElement(UmlPackageableElement *packagedElement);
- const QSet<UmlProfileApplication *> profileApplication() const;
- void addProfileApplication(UmlProfileApplication *profileApplication);
- void removeProfileApplication(UmlProfileApplication *profileApplication);
-
- // Operations
- QSet<UmlStereotype *> allApplicableStereotypes() const;
- UmlProfile *containingProfile() const;
- bool makesVisible(UmlNamedElement *el) const;
- bool mustBeOwned() const;
- QSet<UmlPackageableElement *> visibleMembers() const;
-
-protected:
- QString _URI;
- UmlPackage *_nestingPackage;
- QSet<UmlPackageMerge *> _packageMerge;
- QSet<UmlPackageableElement *> _packagedElement;
- QSet<UmlProfileApplication *> _profileApplication;
-};
-
-#endif // UMLPACKAGE_H
-
diff --git a/src/uml/internal/umlpackageableelement.cpp b/src/uml/internal/umlpackageableelement.cpp
deleted file mode 100644
index 055e122e..00000000
--- a/src/uml/internal/umlpackageableelement.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpackageableelement_p.h"
-
-UmlPackageableElement::UmlPackageableElement() :
- _visibility(QtUml::VisibilityKindPublic)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QtUml::VisibilityKind UmlPackageableElement::visibility() const
-{
- // This is a read-write property
-
- return _visibility;
-}
-
-void UmlPackageableElement::setVisibility(QtUml::VisibilityKind visibility)
-{
- // This is a read-write property
-
- if (_visibility != visibility) {
- _visibility = visibility;
- }
-}
-
diff --git a/src/uml/internal/umlpackageableelement_p.h b/src/uml/internal/umlpackageableelement_p.h
deleted file mode 100644
index 8b439ef9..00000000
--- a/src/uml/internal/umlpackageableelement_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPACKAGEABLEELEMENT_H
-#define UMLPACKAGEABLEELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlparameterableelement_p.h"
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class Q_UML_EXPORT UmlPackageableElement : public UmlParameterableElement, public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlPackageableElement();
-
- // Owned attributes
- QtUml::VisibilityKind visibility() const;
- void setVisibility(QtUml::VisibilityKind visibility);
-
-protected:
- QtUml::VisibilityKind _visibility;
-};
-
-#endif // UMLPACKAGEABLEELEMENT_H
-
diff --git a/src/uml/internal/umlpackageimport.cpp b/src/uml/internal/umlpackageimport.cpp
deleted file mode 100644
index 99965b75..00000000
--- a/src/uml/internal/umlpackageimport.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpackageimport_p.h"
-
-#include "private/umlnamespace_p.h"
-#include "private/umlpackage_p.h"
-
-UmlPackageImport::UmlPackageImport() :
- _importedPackage(0),
- _importingNamespace(0),
- _visibility(QtUml::VisibilityKindPublic)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlPackage *UmlPackageImport::importedPackage() const
-{
- // This is a read-write association end
-
- return _importedPackage;
-}
-
-void UmlPackageImport::setImportedPackage(UmlPackage *importedPackage)
-{
- // This is a read-write association end
-
- if (_importedPackage != importedPackage) {
- // Adjust subsetted properties
- removeTarget(_importedPackage);
-
- _importedPackage = importedPackage;
-
- // Adjust subsetted properties
- if (importedPackage) {
- addTarget(importedPackage);
- }
- }
-}
-
-UmlNamespace *UmlPackageImport::importingNamespace() const
-{
- // This is a read-write association end
-
- return _importingNamespace;
-}
-
-void UmlPackageImport::setImportingNamespace(UmlNamespace *importingNamespace)
-{
- // This is a read-write association end
-
- if (_importingNamespace != importingNamespace) {
- // Adjust subsetted properties
- removeSource(_importingNamespace);
-
- _importingNamespace = importingNamespace;
-
- // Adjust subsetted properties
- setOwner(importingNamespace);
- if (importingNamespace) {
- addSource(importingNamespace);
- }
- }
-}
-
-QtUml::VisibilityKind UmlPackageImport::visibility() const
-{
- // This is a read-write property
-
- return _visibility;
-}
-
-void UmlPackageImport::setVisibility(QtUml::VisibilityKind visibility)
-{
- // This is a read-write property
-
- if (_visibility != visibility) {
- _visibility = visibility;
- }
-}
-
diff --git a/src/uml/internal/umlpackageimport_p.h b/src/uml/internal/umlpackageimport_p.h
deleted file mode 100644
index f367a2a2..00000000
--- a/src/uml/internal/umlpackageimport_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPACKAGEIMPORT_H
-#define UMLPACKAGEIMPORT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlNamespace;
-class UmlPackage;
-
-class Q_UML_EXPORT UmlPackageImport : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlPackageImport();
-
- // Owned attributes
- UmlPackage *importedPackage() const;
- void setImportedPackage(UmlPackage *importedPackage);
- UmlNamespace *importingNamespace() const;
- void setImportingNamespace(UmlNamespace *importingNamespace);
- QtUml::VisibilityKind visibility() const;
- void setVisibility(QtUml::VisibilityKind visibility);
-
-protected:
- UmlPackage *_importedPackage;
- UmlNamespace *_importingNamespace;
- QtUml::VisibilityKind _visibility;
-};
-
-#endif // UMLPACKAGEIMPORT_H
-
diff --git a/src/uml/internal/umlpackagemerge.cpp b/src/uml/internal/umlpackagemerge.cpp
deleted file mode 100644
index 1cddfa77..00000000
--- a/src/uml/internal/umlpackagemerge.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpackagemerge_p.h"
-
-#include "private/umlpackage_p.h"
-
-UmlPackageMerge::UmlPackageMerge() :
- _mergedPackage(0),
- _receivingPackage(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlPackage *UmlPackageMerge::mergedPackage() const
-{
- // This is a read-write association end
-
- return _mergedPackage;
-}
-
-void UmlPackageMerge::setMergedPackage(UmlPackage *mergedPackage)
-{
- // This is a read-write association end
-
- if (_mergedPackage != mergedPackage) {
- // Adjust subsetted properties
- removeTarget(_mergedPackage);
-
- _mergedPackage = mergedPackage;
-
- // Adjust subsetted properties
- if (mergedPackage) {
- addTarget(mergedPackage);
- }
- }
-}
-
-UmlPackage *UmlPackageMerge::receivingPackage() const
-{
- // This is a read-write association end
-
- return _receivingPackage;
-}
-
-void UmlPackageMerge::setReceivingPackage(UmlPackage *receivingPackage)
-{
- // This is a read-write association end
-
- if (_receivingPackage != receivingPackage) {
- // Adjust subsetted properties
- removeSource(_receivingPackage);
-
- _receivingPackage = receivingPackage;
-
- // Adjust subsetted properties
- setOwner(receivingPackage);
- if (receivingPackage) {
- addSource(receivingPackage);
- }
- }
-}
-
diff --git a/src/uml/internal/umlpackagemerge_p.h b/src/uml/internal/umlpackagemerge_p.h
deleted file mode 100644
index 92871bd9..00000000
--- a/src/uml/internal/umlpackagemerge_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPACKAGEMERGE_H
-#define UMLPACKAGEMERGE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlPackage;
-
-class Q_UML_EXPORT UmlPackageMerge : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlPackageMerge();
-
- // Owned attributes
- UmlPackage *mergedPackage() const;
- void setMergedPackage(UmlPackage *mergedPackage);
- UmlPackage *receivingPackage() const;
- void setReceivingPackage(UmlPackage *receivingPackage);
-
-protected:
- UmlPackage *_mergedPackage;
- UmlPackage *_receivingPackage;
-};
-
-#endif // UMLPACKAGEMERGE_H
-
diff --git a/src/uml/internal/umlparameter.cpp b/src/uml/internal/umlparameter.cpp
deleted file mode 100644
index 4253c50e..00000000
--- a/src/uml/internal/umlparameter.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlparameter_p.h"
-
-#include "private/umloperation_p.h"
-#include "private/umlparameterset_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlParameter::UmlParameter() :
- _defaultValue(0),
- _direction(QtUml::ParameterDirectionKindIn),
- _isException(false),
- _isStream(false),
- _operation(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QString UmlParameter::default_() const
-{
- // This is a read-write derived property
-
- qWarning("UmlParameter::default_(): to be implemented (this is a derived property)");
-
- return QString();
-}
-
-void UmlParameter::setDefault(QString default_)
-{
- // This is a read-write derived property
-
- qWarning("UmlParameter::default_(): to be implemented (this is a derived property)");
- Q_UNUSED(default_);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlValueSpecification *UmlParameter::defaultValue() const
-{
- // This is a read-write association end
-
- return _defaultValue;
-}
-
-void UmlParameter::setDefaultValue(UmlValueSpecification *defaultValue)
-{
- // This is a read-write association end
-
- if (_defaultValue != defaultValue) {
- // Adjust subsetted properties
- removeOwnedElement(_defaultValue);
-
- _defaultValue = defaultValue;
-
- // Adjust subsetted properties
- if (defaultValue) {
- addOwnedElement(defaultValue);
- }
- }
-}
-
-QtUml::ParameterDirectionKind UmlParameter::direction() const
-{
- // This is a read-write property
-
- return _direction;
-}
-
-void UmlParameter::setDirection(QtUml::ParameterDirectionKind direction)
-{
- // This is a read-write property
-
- if (_direction != direction) {
- _direction = direction;
- }
-}
-
-QtUml::ParameterEffectKind UmlParameter::effect() const
-{
- // This is a read-write property
-
- return _effect;
-}
-
-void UmlParameter::setEffect(QtUml::ParameterEffectKind effect)
-{
- // This is a read-write property
-
- if (_effect != effect) {
- _effect = effect;
- }
-}
-
-bool UmlParameter::isException() const
-{
- // This is a read-write property
-
- return _isException;
-}
-
-void UmlParameter::setException(bool isException)
-{
- // This is a read-write property
-
- if (_isException != isException) {
- _isException = isException;
- }
-}
-
-bool UmlParameter::isStream() const
-{
- // This is a read-write property
-
- return _isStream;
-}
-
-void UmlParameter::setStream(bool isStream)
-{
- // This is a read-write property
-
- if (_isStream != isStream) {
- _isStream = isStream;
- }
-}
-
-UmlOperation *UmlParameter::operation() const
-{
- // This is a read-write association end
-
- return _operation;
-}
-
-void UmlParameter::setOperation(UmlOperation *operation)
-{
- // This is a read-write association end
-
- if (_operation != operation) {
- _operation = operation;
- }
-}
-
-const QSet<UmlParameterSet *> UmlParameter::parameterSet() const
-{
- // This is a read-write association end
-
- return _parameterSet;
-}
-
-void UmlParameter::addParameterSet(UmlParameterSet *parameterSet)
-{
- // This is a read-write association end
-
- if (!_parameterSet.contains(parameterSet)) {
- _parameterSet.insert(parameterSet);
-
- // Adjust opposite properties
- if (parameterSet) {
- parameterSet->addParameter(this);
- }
- }
-}
-
-void UmlParameter::removeParameterSet(UmlParameterSet *parameterSet)
-{
- // This is a read-write association end
-
- if (_parameterSet.contains(parameterSet)) {
- _parameterSet.remove(parameterSet);
-
- // Adjust opposite properties
- if (parameterSet) {
- parameterSet->removeParameter(this);
- }
- }
-}
-
diff --git a/src/uml/internal/umlparameter_p.h b/src/uml/internal/umlparameter_p.h
deleted file mode 100644
index 2e11b8bf..00000000
--- a/src/uml/internal/umlparameter_p.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPARAMETER_H
-#define UMLPARAMETER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmultiplicityelement_p.h"
-#include "private/umlconnectableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlOperation;
-class UmlParameterSet;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlParameter : public UmlMultiplicityElement, public UmlConnectableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlParameter();
-
- // Owned attributes
- QString default_() const;
- void setDefault(QString default_);
- UmlValueSpecification *defaultValue() const;
- void setDefaultValue(UmlValueSpecification *defaultValue);
- QtUml::ParameterDirectionKind direction() const;
- void setDirection(QtUml::ParameterDirectionKind direction);
- QtUml::ParameterEffectKind effect() const;
- void setEffect(QtUml::ParameterEffectKind effect);
- bool isException() const;
- void setException(bool isException);
- bool isStream() const;
- void setStream(bool isStream);
- UmlOperation *operation() const;
- void setOperation(UmlOperation *operation);
- const QSet<UmlParameterSet *> parameterSet() const;
- void addParameterSet(UmlParameterSet *parameterSet);
- void removeParameterSet(UmlParameterSet *parameterSet);
-
-protected:
- UmlValueSpecification *_defaultValue;
- QtUml::ParameterDirectionKind _direction;
- QtUml::ParameterEffectKind _effect;
- bool _isException;
- bool _isStream;
- UmlOperation *_operation;
- QSet<UmlParameterSet *> _parameterSet;
-};
-
-#endif // UMLPARAMETER_H
-
diff --git a/src/uml/internal/umlparameterableelement.cpp b/src/uml/internal/umlparameterableelement.cpp
deleted file mode 100644
index ae418836..00000000
--- a/src/uml/internal/umlparameterableelement.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlparameterableelement_p.h"
-
-#include "private/umltemplateparameter_p.h"
-
-UmlParameterableElement::UmlParameterableElement() :
- _owningTemplateParameter(0),
- _templateParameter(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlTemplateParameter *UmlParameterableElement::owningTemplateParameter() const
-{
- // This is a read-write association end
-
- return _owningTemplateParameter;
-}
-
-void UmlParameterableElement::setOwningTemplateParameter(UmlTemplateParameter *owningTemplateParameter)
-{
- // This is a read-write association end
-
- if (_owningTemplateParameter != owningTemplateParameter) {
- // Adjust subsetted properties
-
- _owningTemplateParameter = owningTemplateParameter;
-
- // Adjust subsetted properties
- setTemplateParameter(owningTemplateParameter);
- setOwner(owningTemplateParameter);
- }
-}
-
-UmlTemplateParameter *UmlParameterableElement::templateParameter() const
-{
- // This is a read-write association end
-
- return _templateParameter;
-}
-
-void UmlParameterableElement::setTemplateParameter(UmlTemplateParameter *templateParameter)
-{
- // This is a read-write association end
-
- if (_templateParameter != templateParameter) {
- _templateParameter = templateParameter;
- }
-}
-
-// OPERATIONS
-
-bool UmlParameterableElement::isCompatibleWith(
- UmlParameterableElement *p) const
-{
- qWarning("UmlParameterableElement::isCompatibleWith(): to be implemented (operation)");
-
- Q_UNUSED(p);
- return bool ();
-}
-
-bool UmlParameterableElement::isTemplateParameter(
- ) const
-{
- qWarning("UmlParameterableElement::isTemplateParameter(): to be implemented (operation)");
-
- return bool ();
-}
-
diff --git a/src/uml/internal/umlparameterableelement_p.h b/src/uml/internal/umlparameterableelement_p.h
deleted file mode 100644
index 1d74e003..00000000
--- a/src/uml/internal/umlparameterableelement_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPARAMETERABLEELEMENT_H
-#define UMLPARAMETERABLEELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlTemplateParameter;
-
-class Q_UML_EXPORT UmlParameterableElement : public virtual UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlParameterableElement();
-
- // Owned attributes
- UmlTemplateParameter *owningTemplateParameter() const;
- void setOwningTemplateParameter(UmlTemplateParameter *owningTemplateParameter);
- UmlTemplateParameter *templateParameter() const;
- void setTemplateParameter(UmlTemplateParameter *templateParameter);
-
- // Operations
- bool isCompatibleWith(UmlParameterableElement *p) const;
- bool isTemplateParameter() const;
-
-protected:
- UmlTemplateParameter *_owningTemplateParameter;
- UmlTemplateParameter *_templateParameter;
-};
-
-#endif // UMLPARAMETERABLEELEMENT_H
-
diff --git a/src/uml/internal/umlparameterset.cpp b/src/uml/internal/umlparameterset.cpp
deleted file mode 100644
index a2789674..00000000
--- a/src/uml/internal/umlparameterset.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlparameterset_p.h"
-
-#include "private/umlconstraint_p.h"
-#include "private/umlparameter_p.h"
-
-UmlParameterSet::UmlParameterSet()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlConstraint *> UmlParameterSet::condition() const
-{
- // This is a read-write association end
-
- return _condition;
-}
-
-void UmlParameterSet::addCondition(UmlConstraint *condition)
-{
- // This is a read-write association end
-
- if (!_condition.contains(condition)) {
- _condition.insert(condition);
-
- // Adjust subsetted properties
- addOwnedElement(condition);
- }
-}
-
-void UmlParameterSet::removeCondition(UmlConstraint *condition)
-{
- // This is a read-write association end
-
- if (_condition.contains(condition)) {
- _condition.remove(condition);
-
- // Adjust subsetted properties
- removeOwnedElement(condition);
- }
-}
-
-const QSet<UmlParameter *> UmlParameterSet::parameter() const
-{
- // This is a read-write association end
-
- return _parameter;
-}
-
-void UmlParameterSet::addParameter(UmlParameter *parameter)
-{
- // This is a read-write association end
-
- if (!_parameter.contains(parameter)) {
- _parameter.insert(parameter);
-
- // Adjust opposite properties
- if (parameter) {
- parameter->addParameterSet(this);
- }
- }
-}
-
-void UmlParameterSet::removeParameter(UmlParameter *parameter)
-{
- // This is a read-write association end
-
- if (_parameter.contains(parameter)) {
- _parameter.remove(parameter);
-
- // Adjust opposite properties
- if (parameter) {
- parameter->removeParameterSet(this);
- }
- }
-}
-
diff --git a/src/uml/internal/umlparameterset_p.h b/src/uml/internal/umlparameterset_p.h
deleted file mode 100644
index 24ceebcc..00000000
--- a/src/uml/internal/umlparameterset_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPARAMETERSET_H
-#define UMLPARAMETERSET_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConstraint;
-class UmlParameter;
-
-class Q_UML_EXPORT UmlParameterSet : public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlParameterSet();
-
- // Owned attributes
- const QSet<UmlConstraint *> condition() const;
- void addCondition(UmlConstraint *condition);
- void removeCondition(UmlConstraint *condition);
- const QSet<UmlParameter *> parameter() const;
- void addParameter(UmlParameter *parameter);
- void removeParameter(UmlParameter *parameter);
-
-protected:
- QSet<UmlConstraint *> _condition;
- QSet<UmlParameter *> _parameter;
-};
-
-#endif // UMLPARAMETERSET_H
-
diff --git a/src/uml/internal/umlpartdecomposition.cpp b/src/uml/internal/umlpartdecomposition.cpp
deleted file mode 100644
index 1a19e96d..00000000
--- a/src/uml/internal/umlpartdecomposition.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpartdecomposition_p.h"
-
-UmlPartDecomposition::UmlPartDecomposition()
-{
-}
-
diff --git a/src/uml/internal/umlpartdecomposition_p.h b/src/uml/internal/umlpartdecomposition_p.h
deleted file mode 100644
index c1aedf48..00000000
--- a/src/uml/internal/umlpartdecomposition_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPARTDECOMPOSITION_H
-#define UMLPARTDECOMPOSITION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionuse_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlPartDecomposition : public UmlInteractionUse
-{
-public:
- Q_DECL_HIDDEN explicit UmlPartDecomposition();
-
-protected:
-};
-
-#endif // UMLPARTDECOMPOSITION_H
-
diff --git a/src/uml/internal/umlpin.cpp b/src/uml/internal/umlpin.cpp
deleted file mode 100644
index 39452ebc..00000000
--- a/src/uml/internal/umlpin.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpin_p.h"
-
-UmlPin::UmlPin() :
- _isControl(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlPin::isControl() const
-{
- // This is a read-write property
-
- return _isControl;
-}
-
-void UmlPin::setControl(bool isControl)
-{
- // This is a read-write property
-
- if (_isControl != isControl) {
- _isControl = isControl;
- }
-}
-
diff --git a/src/uml/internal/umlpin_p.h b/src/uml/internal/umlpin_p.h
deleted file mode 100644
index e117213a..00000000
--- a/src/uml/internal/umlpin_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPIN_H
-#define UMLPIN_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmultiplicityelement_p.h"
-#include "private/umlobjectnode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlPin : public UmlMultiplicityElement, public UmlObjectNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlPin();
-
- // Owned attributes
- bool isControl() const;
- void setControl(bool isControl);
-
-protected:
- bool _isControl;
-};
-
-#endif // UMLPIN_H
-
diff --git a/src/uml/internal/umlport.cpp b/src/uml/internal/umlport.cpp
deleted file mode 100644
index fe823d74..00000000
--- a/src/uml/internal/umlport.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlport_p.h"
-
-#include "private/umlinterface_p.h"
-#include "private/umlprotocolstatemachine_p.h"
-
-UmlPort::UmlPort() :
- _isBehavior(false),
- _isConjugated(false),
- _isService(true),
- _protocol(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlPort::isBehavior() const
-{
- // This is a read-write property
-
- return _isBehavior;
-}
-
-void UmlPort::setBehavior(bool isBehavior)
-{
- // This is a read-write property
-
- if (_isBehavior != isBehavior) {
- _isBehavior = isBehavior;
- }
-}
-
-bool UmlPort::isConjugated() const
-{
- // This is a read-write property
-
- return _isConjugated;
-}
-
-void UmlPort::setConjugated(bool isConjugated)
-{
- // This is a read-write property
-
- if (_isConjugated != isConjugated) {
- _isConjugated = isConjugated;
- }
-}
-
-bool UmlPort::isService() const
-{
- // This is a read-write property
-
- return _isService;
-}
-
-void UmlPort::setService(bool isService)
-{
- // This is a read-write property
-
- if (_isService != isService) {
- _isService = isService;
- }
-}
-
-UmlProtocolStateMachine *UmlPort::protocol() const
-{
- // This is a read-write association end
-
- return _protocol;
-}
-
-void UmlPort::setProtocol(UmlProtocolStateMachine *protocol)
-{
- // This is a read-write association end
-
- if (_protocol != protocol) {
- _protocol = protocol;
- }
-}
-
-const QSet<UmlInterface *> UmlPort::provided() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlPort::provided(): to be implemented (this is a derived association end)");
-
- return QSet<UmlInterface *>();
-}
-
-void UmlPort::addProvided(UmlInterface *provided)
-{
- // This is a read-only derived association end
-
- qWarning("UmlPort::provided(): to be implemented (this is a derived association end)");
- Q_UNUSED(provided);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlPort::removeProvided(UmlInterface *provided)
-{
- // This is a read-only derived association end
-
- qWarning("UmlPort::provided(): to be implemented (this is a derived association end)");
- Q_UNUSED(provided);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlPort *> UmlPort::redefinedPort() const
-{
- // This is a read-write association end
-
- return _redefinedPort;
-}
-
-void UmlPort::addRedefinedPort(UmlPort *redefinedPort)
-{
- // This is a read-write association end
-
- if (!_redefinedPort.contains(redefinedPort)) {
- _redefinedPort.insert(redefinedPort);
-
- // Adjust subsetted properties
- addRedefinedProperty(redefinedPort);
- }
-}
-
-void UmlPort::removeRedefinedPort(UmlPort *redefinedPort)
-{
- // This is a read-write association end
-
- if (_redefinedPort.contains(redefinedPort)) {
- _redefinedPort.remove(redefinedPort);
-
- // Adjust subsetted properties
- removeRedefinedProperty(redefinedPort);
- }
-}
-
-const QSet<UmlInterface *> UmlPort::required() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlPort::required(): to be implemented (this is a derived association end)");
-
- return QSet<UmlInterface *>();
-}
-
-void UmlPort::addRequired(UmlInterface *required)
-{
- // This is a read-only derived association end
-
- qWarning("UmlPort::required(): to be implemented (this is a derived association end)");
- Q_UNUSED(required);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlPort::removeRequired(UmlInterface *required)
-{
- // This is a read-only derived association end
-
- qWarning("UmlPort::required(): to be implemented (this is a derived association end)");
- Q_UNUSED(required);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
diff --git a/src/uml/internal/umlport_p.h b/src/uml/internal/umlport_p.h
deleted file mode 100644
index dfb21141..00000000
--- a/src/uml/internal/umlport_p.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPORT_H
-#define UMLPORT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlproperty_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInterface;
-class UmlProtocolStateMachine;
-
-class Q_UML_EXPORT UmlPort : public UmlProperty
-{
-public:
- Q_DECL_HIDDEN explicit UmlPort();
-
- // Owned attributes
- bool isBehavior() const;
- void setBehavior(bool isBehavior);
- bool isConjugated() const;
- void setConjugated(bool isConjugated);
- bool isService() const;
- void setService(bool isService);
- UmlProtocolStateMachine *protocol() const;
- void setProtocol(UmlProtocolStateMachine *protocol);
- const QSet<UmlInterface *> provided() const;
- Q_DECL_HIDDEN void addProvided(UmlInterface *provided);
- Q_DECL_HIDDEN void removeProvided(UmlInterface *provided);
- const QSet<UmlPort *> redefinedPort() const;
- void addRedefinedPort(UmlPort *redefinedPort);
- void removeRedefinedPort(UmlPort *redefinedPort);
- const QSet<UmlInterface *> required() const;
- Q_DECL_HIDDEN void addRequired(UmlInterface *required);
- Q_DECL_HIDDEN void removeRequired(UmlInterface *required);
-
-protected:
- bool _isBehavior;
- bool _isConjugated;
- bool _isService;
- UmlProtocolStateMachine *_protocol;
- QSet<UmlPort *> _redefinedPort;
-};
-
-#endif // UMLPORT_H
-
diff --git a/src/uml/internal/umlprimitivetype.cpp b/src/uml/internal/umlprimitivetype.cpp
deleted file mode 100644
index 7cbbdfc9..00000000
--- a/src/uml/internal/umlprimitivetype.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlprimitivetype_p.h"
-
-UmlPrimitiveType::UmlPrimitiveType()
-{
-}
-
diff --git a/src/uml/internal/umlprimitivetype_p.h b/src/uml/internal/umlprimitivetype_p.h
deleted file mode 100644
index c7e6ccd3..00000000
--- a/src/uml/internal/umlprimitivetype_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPRIMITIVETYPE_H
-#define UMLPRIMITIVETYPE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldatatype_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlPrimitiveType : public UmlDataType
-{
-public:
- Q_DECL_HIDDEN explicit UmlPrimitiveType();
-
-protected:
-};
-
-#endif // UMLPRIMITIVETYPE_H
-
diff --git a/src/uml/internal/umlprofile.cpp b/src/uml/internal/umlprofile.cpp
deleted file mode 100644
index 4dbef7ad..00000000
--- a/src/uml/internal/umlprofile.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlprofile_p.h"
-
-#include "private/umlelementimport_p.h"
-#include "private/umlpackageimport_p.h"
-
-UmlProfile::UmlProfile()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlElementImport *> UmlProfile::metaclassReference() const
-{
- // This is a read-write association end
-
- return _metaclassReference;
-}
-
-void UmlProfile::addMetaclassReference(UmlElementImport *metaclassReference)
-{
- // This is a read-write association end
-
- if (!_metaclassReference.contains(metaclassReference)) {
- _metaclassReference.insert(metaclassReference);
-
- // Adjust subsetted properties
- addElementImport(metaclassReference);
- }
-}
-
-void UmlProfile::removeMetaclassReference(UmlElementImport *metaclassReference)
-{
- // This is a read-write association end
-
- if (_metaclassReference.contains(metaclassReference)) {
- _metaclassReference.remove(metaclassReference);
-
- // Adjust subsetted properties
- removeElementImport(metaclassReference);
- }
-}
-
-const QSet<UmlPackageImport *> UmlProfile::metamodelReference() const
-{
- // This is a read-write association end
-
- return _metamodelReference;
-}
-
-void UmlProfile::addMetamodelReference(UmlPackageImport *metamodelReference)
-{
- // This is a read-write association end
-
- if (!_metamodelReference.contains(metamodelReference)) {
- _metamodelReference.insert(metamodelReference);
-
- // Adjust subsetted properties
- addPackageImport(metamodelReference);
- }
-}
-
-void UmlProfile::removeMetamodelReference(UmlPackageImport *metamodelReference)
-{
- // This is a read-write association end
-
- if (_metamodelReference.contains(metamodelReference)) {
- _metamodelReference.remove(metamodelReference);
-
- // Adjust subsetted properties
- removePackageImport(metamodelReference);
- }
-}
-
diff --git a/src/uml/internal/umlprofile_p.h b/src/uml/internal/umlprofile_p.h
deleted file mode 100644
index b4514ea1..00000000
--- a/src/uml/internal/umlprofile_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPROFILE_H
-#define UMLPROFILE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackage_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlElementImport;
-class UmlPackageImport;
-
-class Q_UML_EXPORT UmlProfile : public UmlPackage
-{
-public:
- Q_DECL_HIDDEN explicit UmlProfile();
-
- // Owned attributes
- const QSet<UmlElementImport *> metaclassReference() const;
- void addMetaclassReference(UmlElementImport *metaclassReference);
- void removeMetaclassReference(UmlElementImport *metaclassReference);
- const QSet<UmlPackageImport *> metamodelReference() const;
- void addMetamodelReference(UmlPackageImport *metamodelReference);
- void removeMetamodelReference(UmlPackageImport *metamodelReference);
-
-protected:
- QSet<UmlElementImport *> _metaclassReference;
- QSet<UmlPackageImport *> _metamodelReference;
-};
-
-#endif // UMLPROFILE_H
-
diff --git a/src/uml/internal/umlprofileapplication.cpp b/src/uml/internal/umlprofileapplication.cpp
deleted file mode 100644
index f969fe19..00000000
--- a/src/uml/internal/umlprofileapplication.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlprofileapplication_p.h"
-
-#include "private/umlpackage_p.h"
-#include "private/umlprofile_p.h"
-
-UmlProfileApplication::UmlProfileApplication() :
- _appliedProfile(0),
- _applyingPackage(0),
- _isStrict(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlProfile *UmlProfileApplication::appliedProfile() const
-{
- // This is a read-write association end
-
- return _appliedProfile;
-}
-
-void UmlProfileApplication::setAppliedProfile(UmlProfile *appliedProfile)
-{
- // This is a read-write association end
-
- if (_appliedProfile != appliedProfile) {
- // Adjust subsetted properties
- removeTarget(_appliedProfile);
-
- _appliedProfile = appliedProfile;
-
- // Adjust subsetted properties
- if (appliedProfile) {
- addTarget(appliedProfile);
- }
- }
-}
-
-UmlPackage *UmlProfileApplication::applyingPackage() const
-{
- // This is a read-write association end
-
- return _applyingPackage;
-}
-
-void UmlProfileApplication::setApplyingPackage(UmlPackage *applyingPackage)
-{
- // This is a read-write association end
-
- if (_applyingPackage != applyingPackage) {
- // Adjust subsetted properties
- removeSource(_applyingPackage);
-
- _applyingPackage = applyingPackage;
-
- // Adjust subsetted properties
- setOwner(applyingPackage);
- if (applyingPackage) {
- addSource(applyingPackage);
- }
- }
-}
-
-bool UmlProfileApplication::isStrict() const
-{
- // This is a read-write property
-
- return _isStrict;
-}
-
-void UmlProfileApplication::setStrict(bool isStrict)
-{
- // This is a read-write property
-
- if (_isStrict != isStrict) {
- _isStrict = isStrict;
- }
-}
-
diff --git a/src/uml/internal/umlprofileapplication_p.h b/src/uml/internal/umlprofileapplication_p.h
deleted file mode 100644
index d64142bd..00000000
--- a/src/uml/internal/umlprofileapplication_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPROFILEAPPLICATION_H
-#define UMLPROFILEAPPLICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlPackage;
-class UmlProfile;
-
-class Q_UML_EXPORT UmlProfileApplication : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlProfileApplication();
-
- // Owned attributes
- UmlProfile *appliedProfile() const;
- void setAppliedProfile(UmlProfile *appliedProfile);
- UmlPackage *applyingPackage() const;
- void setApplyingPackage(UmlPackage *applyingPackage);
- bool isStrict() const;
- void setStrict(bool isStrict);
-
-protected:
- UmlProfile *_appliedProfile;
- UmlPackage *_applyingPackage;
- bool _isStrict;
-};
-
-#endif // UMLPROFILEAPPLICATION_H
-
diff --git a/src/uml/internal/umlproperty.cpp b/src/uml/internal/umlproperty.cpp
deleted file mode 100644
index 1c5f23f3..00000000
--- a/src/uml/internal/umlproperty.cpp
+++ /dev/null
@@ -1,498 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlproperty_p.h"
-
-#include "private/umlassociation_p.h"
-#include "private/umlclass_p.h"
-#include "private/umldatatype_p.h"
-#include "private/umlinterface_p.h"
-#include "private/umlparameterableelement_p.h"
-#include "private/umlredefinableelement_p.h"
-#include "private/umltype_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlProperty::UmlProperty() :
- _aggregation(QtUml::AggregationKindNone),
- _association(0),
- _associationEnd(0),
- _class_(0),
- _datatype(0),
- _defaultValue(0),
- _interface_(0),
- _isDerived(false),
- _isDerivedUnion(false),
- _isID(false),
- _isReadOnly(false),
- _owningAssociation(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QtUml::AggregationKind UmlProperty::aggregation() const
-{
- // This is a read-write property
-
- return _aggregation;
-}
-
-void UmlProperty::setAggregation(QtUml::AggregationKind aggregation)
-{
- // This is a read-write property
-
- if (_aggregation != aggregation) {
- _aggregation = aggregation;
- }
-}
-
-UmlAssociation *UmlProperty::association() const
-{
- // This is a read-write association end
-
- return _association;
-}
-
-void UmlProperty::setAssociation(UmlAssociation *association)
-{
- // This is a read-write association end
-
- if (_association != association) {
- _association = association;
- }
-}
-
-UmlProperty *UmlProperty::associationEnd() const
-{
- // This is a read-write association end
-
- return _associationEnd;
-}
-
-void UmlProperty::setAssociationEnd(UmlProperty *associationEnd)
-{
- // This is a read-write association end
-
- if (_associationEnd != associationEnd) {
- // Adjust subsetted properties
-
- _associationEnd = associationEnd;
-
- // Adjust subsetted properties
- setOwner(associationEnd);
- }
-}
-
-UmlClass *UmlProperty::class_() const
-{
- // This is a read-write association end
-
- return _class_;
-}
-
-void UmlProperty::setClass(UmlClass *class_)
-{
- // This is a read-write association end
-
- if (_class_ != class_) {
- // Adjust subsetted properties
-
- _class_ = class_;
-
- // Adjust subsetted properties
- setNamespace(class_);
- }
-}
-
-UmlDataType *UmlProperty::datatype() const
-{
- // This is a read-write association end
-
- return _datatype;
-}
-
-void UmlProperty::setDatatype(UmlDataType *datatype)
-{
- // This is a read-write association end
-
- if (_datatype != datatype) {
- // Adjust subsetted properties
-
- _datatype = datatype;
-
- // Adjust subsetted properties
- setNamespace(datatype);
- }
-}
-
-QString UmlProperty::default_() const
-{
- // This is a read-write derived property
-
- qWarning("UmlProperty::default_(): to be implemented (this is a derived property)");
-
- return QString();
-}
-
-void UmlProperty::setDefault(QString default_)
-{
- // This is a read-write derived property
-
- qWarning("UmlProperty::default_(): to be implemented (this is a derived property)");
- Q_UNUSED(default_);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlValueSpecification *UmlProperty::defaultValue() const
-{
- // This is a read-write association end
-
- return _defaultValue;
-}
-
-void UmlProperty::setDefaultValue(UmlValueSpecification *defaultValue)
-{
- // This is a read-write association end
-
- if (_defaultValue != defaultValue) {
- // Adjust subsetted properties
- removeOwnedElement(_defaultValue);
-
- _defaultValue = defaultValue;
-
- // Adjust subsetted properties
- if (defaultValue) {
- addOwnedElement(defaultValue);
- }
- }
-}
-
-UmlInterface *UmlProperty::interface_() const
-{
- // This is a read-write association end
-
- return _interface_;
-}
-
-void UmlProperty::setInterface(UmlInterface *interface_)
-{
- // This is a read-write association end
-
- if (_interface_ != interface_) {
- // Adjust subsetted properties
-
- _interface_ = interface_;
-
- // Adjust subsetted properties
- setNamespace(interface_);
- }
-}
-
-bool UmlProperty::isComposite() const
-{
- // This is a read-write derived property
-
- qWarning("UmlProperty::isComposite(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlProperty::setComposite(bool isComposite)
-{
- // This is a read-write derived property
-
- qWarning("UmlProperty::isComposite(): to be implemented (this is a derived property)");
- Q_UNUSED(isComposite);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-bool UmlProperty::isDerived() const
-{
- // This is a read-write property
-
- return _isDerived;
-}
-
-void UmlProperty::setDerived(bool isDerived)
-{
- // This is a read-write property
-
- if (_isDerived != isDerived) {
- _isDerived = isDerived;
- }
-}
-
-bool UmlProperty::isDerivedUnion() const
-{
- // This is a read-write property
-
- return _isDerivedUnion;
-}
-
-void UmlProperty::setDerivedUnion(bool isDerivedUnion)
-{
- // This is a read-write property
-
- if (_isDerivedUnion != isDerivedUnion) {
- _isDerivedUnion = isDerivedUnion;
- }
-}
-
-bool UmlProperty::isID() const
-{
- // This is a read-write property
-
- return _isID;
-}
-
-void UmlProperty::setID(bool isID)
-{
- // This is a read-write property
-
- if (_isID != isID) {
- _isID = isID;
- }
-}
-
-bool UmlProperty::isReadOnly() const
-{
- // This is a read-write property
-
- return _isReadOnly;
-}
-
-void UmlProperty::setReadOnly(bool isReadOnly)
-{
- // This is a read-write property
-
- if (_isReadOnly != isReadOnly) {
- _isReadOnly = isReadOnly;
- }
-}
-
-UmlProperty *UmlProperty::opposite() const
-{
- // This is a read-write derived association end
-
- qWarning("UmlProperty::opposite(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlProperty::setOpposite(UmlProperty *opposite)
-{
- // This is a read-write derived association end
-
- qWarning("UmlProperty::opposite(): to be implemented (this is a derived association end)");
- Q_UNUSED(opposite);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlAssociation *UmlProperty::owningAssociation() const
-{
- // This is a read-write association end
-
- return _owningAssociation;
-}
-
-void UmlProperty::setOwningAssociation(UmlAssociation *owningAssociation)
-{
- // This is a read-write association end
-
- if (_owningAssociation != owningAssociation) {
- // Adjust subsetted properties
- removeFeaturingClassifier(_owningAssociation);
- removeRedefinitionContext(_owningAssociation);
-
- _owningAssociation = owningAssociation;
-
- // Adjust subsetted properties
- if (owningAssociation) {
- addFeaturingClassifier(owningAssociation);
- }
- if (owningAssociation) {
- addRedefinitionContext(owningAssociation);
- }
- setNamespace(owningAssociation);
- setAssociation(owningAssociation);
- }
-}
-
-const QList<UmlProperty *> UmlProperty::qualifier() const
-{
- // This is a read-write association end
-
- return _qualifier;
-}
-
-void UmlProperty::addQualifier(UmlProperty *qualifier)
-{
- // This is a read-write association end
-
- if (!_qualifier.contains(qualifier)) {
- _qualifier.append(qualifier);
-
- // Adjust subsetted properties
- addOwnedElement(qualifier);
- }
-}
-
-void UmlProperty::removeQualifier(UmlProperty *qualifier)
-{
- // This is a read-write association end
-
- if (_qualifier.contains(qualifier)) {
- _qualifier.removeAll(qualifier);
-
- // Adjust subsetted properties
- removeOwnedElement(qualifier);
- }
-}
-
-const QSet<UmlProperty *> UmlProperty::redefinedProperty() const
-{
- // This is a read-write association end
-
- return _redefinedProperty;
-}
-
-void UmlProperty::addRedefinedProperty(UmlProperty *redefinedProperty)
-{
- // This is a read-write association end
-
- if (!_redefinedProperty.contains(redefinedProperty)) {
- _redefinedProperty.insert(redefinedProperty);
-
- // Adjust subsetted properties
- addRedefinedElement(redefinedProperty);
- }
-}
-
-void UmlProperty::removeRedefinedProperty(UmlProperty *redefinedProperty)
-{
- // This is a read-write association end
-
- if (_redefinedProperty.contains(redefinedProperty)) {
- _redefinedProperty.remove(redefinedProperty);
-
- // Adjust subsetted properties
- removeRedefinedElement(redefinedProperty);
- }
-}
-
-const QSet<UmlProperty *> UmlProperty::subsettedProperty() const
-{
- // This is a read-write association end
-
- return _subsettedProperty;
-}
-
-void UmlProperty::addSubsettedProperty(UmlProperty *subsettedProperty)
-{
- // This is a read-write association end
-
- if (!_subsettedProperty.contains(subsettedProperty)) {
- _subsettedProperty.insert(subsettedProperty);
- }
-}
-
-void UmlProperty::removeSubsettedProperty(UmlProperty *subsettedProperty)
-{
- // This is a read-write association end
-
- if (_subsettedProperty.contains(subsettedProperty)) {
- _subsettedProperty.remove(subsettedProperty);
- }
-}
-
-// OPERATIONS
-
-bool UmlProperty::isAttribute(
- UmlProperty *p) const
-{
- qWarning("UmlProperty::isAttribute(): to be implemented (operation)");
-
- Q_UNUSED(p);
- return bool ();
-}
-
-bool UmlProperty::isCompatibleWith(
- UmlParameterableElement *p) const
-{
- qWarning("UmlProperty::isCompatibleWith(): to be implemented (operation)");
-
- Q_UNUSED(p);
- return bool ();
-}
-
-bool UmlProperty::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlProperty::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
-bool UmlProperty::isNavigable(
- ) const
-{
- qWarning("UmlProperty::isNavigable(): to be implemented (operation)");
-
- return bool ();
-}
-
-QSet<UmlType *> UmlProperty::subsettingContext(
- ) const
-{
- qWarning("UmlProperty::subsettingContext(): to be implemented (operation)");
-
- return QSet<UmlType *> ();
-}
-
diff --git a/src/uml/internal/umlproperty_p.h b/src/uml/internal/umlproperty_p.h
deleted file mode 100644
index a342d7f0..00000000
--- a/src/uml/internal/umlproperty_p.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPROPERTY_H
-#define UMLPROPERTY_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuralfeature_p.h"
-#include "private/umlconnectableelement_p.h"
-#include "private/umldeploymenttarget_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlAssociation;
-class UmlClass;
-class UmlDataType;
-class UmlInterface;
-class UmlParameterableElement;
-class UmlRedefinableElement;
-class UmlType;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlProperty : public UmlStructuralFeature, public UmlConnectableElement, public UmlDeploymentTarget
-{
-public:
- Q_DECL_HIDDEN explicit UmlProperty();
-
- // Owned attributes
- QtUml::AggregationKind aggregation() const;
- void setAggregation(QtUml::AggregationKind aggregation);
- UmlAssociation *association() const;
- void setAssociation(UmlAssociation *association);
- UmlProperty *associationEnd() const;
- void setAssociationEnd(UmlProperty *associationEnd);
- UmlClass *class_() const;
- void setClass(UmlClass *class_);
- UmlDataType *datatype() const;
- void setDatatype(UmlDataType *datatype);
- QString default_() const;
- void setDefault(QString default_);
- UmlValueSpecification *defaultValue() const;
- void setDefaultValue(UmlValueSpecification *defaultValue);
- UmlInterface *interface_() const;
- void setInterface(UmlInterface *interface_);
- bool isComposite() const;
- void setComposite(bool isComposite);
- bool isDerived() const;
- void setDerived(bool isDerived);
- bool isDerivedUnion() const;
- void setDerivedUnion(bool isDerivedUnion);
- bool isID() const;
- void setID(bool isID);
- bool isReadOnly() const;
- void setReadOnly(bool isReadOnly);
- UmlProperty *opposite() const;
- void setOpposite(UmlProperty *opposite);
- UmlAssociation *owningAssociation() const;
- void setOwningAssociation(UmlAssociation *owningAssociation);
- const QList<UmlProperty *> qualifier() const;
- void addQualifier(UmlProperty *qualifier);
- void removeQualifier(UmlProperty *qualifier);
- const QSet<UmlProperty *> redefinedProperty() const;
- void addRedefinedProperty(UmlProperty *redefinedProperty);
- void removeRedefinedProperty(UmlProperty *redefinedProperty);
- const QSet<UmlProperty *> subsettedProperty() const;
- void addSubsettedProperty(UmlProperty *subsettedProperty);
- void removeSubsettedProperty(UmlProperty *subsettedProperty);
-
- // Operations
- bool isAttribute(UmlProperty *p) const;
- bool isCompatibleWith(UmlParameterableElement *p) const;
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
- bool isNavigable() const;
- QSet<UmlType *> subsettingContext() const;
-
-protected:
- QtUml::AggregationKind _aggregation;
- UmlAssociation *_association;
- UmlProperty *_associationEnd;
- UmlClass *_class_;
- UmlDataType *_datatype;
- UmlValueSpecification *_defaultValue;
- UmlInterface *_interface_;
- bool _isDerived;
- bool _isDerivedUnion;
- bool _isID;
- bool _isReadOnly;
- UmlAssociation *_owningAssociation;
- QList<UmlProperty *> _qualifier;
- QSet<UmlProperty *> _redefinedProperty;
- QSet<UmlProperty *> _subsettedProperty;
-};
-
-#endif // UMLPROPERTY_H
-
diff --git a/src/uml/internal/umlprotocolconformance.cpp b/src/uml/internal/umlprotocolconformance.cpp
deleted file mode 100644
index ed162526..00000000
--- a/src/uml/internal/umlprotocolconformance.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlprotocolconformance_p.h"
-
-#include "private/umlprotocolstatemachine_p.h"
-
-UmlProtocolConformance::UmlProtocolConformance() :
- _generalMachine(0),
- _specificMachine(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlProtocolStateMachine *UmlProtocolConformance::generalMachine() const
-{
- // This is a read-write association end
-
- return _generalMachine;
-}
-
-void UmlProtocolConformance::setGeneralMachine(UmlProtocolStateMachine *generalMachine)
-{
- // This is a read-write association end
-
- if (_generalMachine != generalMachine) {
- // Adjust subsetted properties
- removeTarget(_generalMachine);
-
- _generalMachine = generalMachine;
-
- // Adjust subsetted properties
- if (generalMachine) {
- addTarget(generalMachine);
- }
- }
-}
-
-UmlProtocolStateMachine *UmlProtocolConformance::specificMachine() const
-{
- // This is a read-write association end
-
- return _specificMachine;
-}
-
-void UmlProtocolConformance::setSpecificMachine(UmlProtocolStateMachine *specificMachine)
-{
- // This is a read-write association end
-
- if (_specificMachine != specificMachine) {
- // Adjust subsetted properties
- removeSource(_specificMachine);
-
- _specificMachine = specificMachine;
-
- // Adjust subsetted properties
- setOwner(specificMachine);
- if (specificMachine) {
- addSource(specificMachine);
- }
- }
-}
-
diff --git a/src/uml/internal/umlprotocolconformance_p.h b/src/uml/internal/umlprotocolconformance_p.h
deleted file mode 100644
index eaf6b2a0..00000000
--- a/src/uml/internal/umlprotocolconformance_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPROTOCOLCONFORMANCE_H
-#define UMLPROTOCOLCONFORMANCE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlProtocolStateMachine;
-
-class Q_UML_EXPORT UmlProtocolConformance : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlProtocolConformance();
-
- // Owned attributes
- UmlProtocolStateMachine *generalMachine() const;
- void setGeneralMachine(UmlProtocolStateMachine *generalMachine);
- UmlProtocolStateMachine *specificMachine() const;
- void setSpecificMachine(UmlProtocolStateMachine *specificMachine);
-
-protected:
- UmlProtocolStateMachine *_generalMachine;
- UmlProtocolStateMachine *_specificMachine;
-};
-
-#endif // UMLPROTOCOLCONFORMANCE_H
-
diff --git a/src/uml/internal/umlprotocolstatemachine.cpp b/src/uml/internal/umlprotocolstatemachine.cpp
deleted file mode 100644
index 7a89e07f..00000000
--- a/src/uml/internal/umlprotocolstatemachine.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlprotocolstatemachine_p.h"
-
-#include "private/umlprotocolconformance_p.h"
-
-UmlProtocolStateMachine::UmlProtocolStateMachine()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlProtocolConformance *> UmlProtocolStateMachine::conformance() const
-{
- // This is a read-write association end
-
- return _conformance;
-}
-
-void UmlProtocolStateMachine::addConformance(UmlProtocolConformance *conformance)
-{
- // This is a read-write association end
-
- if (!_conformance.contains(conformance)) {
- _conformance.insert(conformance);
-
- // Adjust subsetted properties
- addOwnedElement(conformance);
-
- // Adjust opposite properties
- if (conformance) {
- conformance->setSpecificMachine(this);
- }
- }
-}
-
-void UmlProtocolStateMachine::removeConformance(UmlProtocolConformance *conformance)
-{
- // This is a read-write association end
-
- if (_conformance.contains(conformance)) {
- _conformance.remove(conformance);
-
- // Adjust subsetted properties
- removeOwnedElement(conformance);
-
- // Adjust opposite properties
- if (conformance) {
- conformance->setSpecificMachine(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlprotocolstatemachine_p.h b/src/uml/internal/umlprotocolstatemachine_p.h
deleted file mode 100644
index 677bb91e..00000000
--- a/src/uml/internal/umlprotocolstatemachine_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPROTOCOLSTATEMACHINE_H
-#define UMLPROTOCOLSTATEMACHINE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstatemachine_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlProtocolConformance;
-
-class Q_UML_EXPORT UmlProtocolStateMachine : public UmlStateMachine
-{
-public:
- Q_DECL_HIDDEN explicit UmlProtocolStateMachine();
-
- // Owned attributes
- const QSet<UmlProtocolConformance *> conformance() const;
- void addConformance(UmlProtocolConformance *conformance);
- void removeConformance(UmlProtocolConformance *conformance);
-
-protected:
- QSet<UmlProtocolConformance *> _conformance;
-};
-
-#endif // UMLPROTOCOLSTATEMACHINE_H
-
diff --git a/src/uml/internal/umlprotocoltransition.cpp b/src/uml/internal/umlprotocoltransition.cpp
deleted file mode 100644
index 9c0dfee4..00000000
--- a/src/uml/internal/umlprotocoltransition.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlprotocoltransition_p.h"
-
-#include "private/umlconstraint_p.h"
-#include "private/umloperation_p.h"
-
-UmlProtocolTransition::UmlProtocolTransition() :
- _postCondition(0),
- _preCondition(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlConstraint *UmlProtocolTransition::postCondition() const
-{
- // This is a read-write association end
-
- return _postCondition;
-}
-
-void UmlProtocolTransition::setPostCondition(UmlConstraint *postCondition)
-{
- // This is a read-write association end
-
- if (_postCondition != postCondition) {
- // Adjust subsetted properties
- removeOwnedRule(_postCondition);
-
- _postCondition = postCondition;
-
- // Adjust subsetted properties
- if (postCondition) {
- addOwnedRule(postCondition);
- }
- }
-}
-
-UmlConstraint *UmlProtocolTransition::preCondition() const
-{
- // This is a read-write association end
-
- return _preCondition;
-}
-
-void UmlProtocolTransition::setPreCondition(UmlConstraint *preCondition)
-{
- // This is a read-write association end
-
- if (_preCondition != preCondition) {
- // Adjust subsetted properties
-
- _preCondition = preCondition;
-
- // Adjust subsetted properties
- setGuard(preCondition);
- }
-}
-
-const QSet<UmlOperation *> UmlProtocolTransition::referred() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlProtocolTransition::referred(): to be implemented (this is a derived association end)");
-
- return QSet<UmlOperation *>();
-}
-
-void UmlProtocolTransition::addReferred(UmlOperation *referred)
-{
- // This is a read-only derived association end
-
- qWarning("UmlProtocolTransition::referred(): to be implemented (this is a derived association end)");
- Q_UNUSED(referred);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlProtocolTransition::removeReferred(UmlOperation *referred)
-{
- // This is a read-only derived association end
-
- qWarning("UmlProtocolTransition::referred(): to be implemented (this is a derived association end)");
- Q_UNUSED(referred);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
diff --git a/src/uml/internal/umlprotocoltransition_p.h b/src/uml/internal/umlprotocoltransition_p.h
deleted file mode 100644
index 65ac4200..00000000
--- a/src/uml/internal/umlprotocoltransition_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPROTOCOLTRANSITION_H
-#define UMLPROTOCOLTRANSITION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltransition_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConstraint;
-class UmlOperation;
-
-class Q_UML_EXPORT UmlProtocolTransition : public UmlTransition
-{
-public:
- Q_DECL_HIDDEN explicit UmlProtocolTransition();
-
- // Owned attributes
- UmlConstraint *postCondition() const;
- void setPostCondition(UmlConstraint *postCondition);
- UmlConstraint *preCondition() const;
- void setPreCondition(UmlConstraint *preCondition);
- const QSet<UmlOperation *> referred() const;
- Q_DECL_HIDDEN void addReferred(UmlOperation *referred);
- Q_DECL_HIDDEN void removeReferred(UmlOperation *referred);
-
-protected:
- UmlConstraint *_postCondition;
- UmlConstraint *_preCondition;
-};
-
-#endif // UMLPROTOCOLTRANSITION_H
-
diff --git a/src/uml/internal/umlpseudostate.cpp b/src/uml/internal/umlpseudostate.cpp
deleted file mode 100644
index 1187eb6c..00000000
--- a/src/uml/internal/umlpseudostate.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlpseudostate_p.h"
-
-#include "private/umlstate_p.h"
-#include "private/umlstatemachine_p.h"
-
-UmlPseudostate::UmlPseudostate() :
- _kind(QtUml::PseudostateKindInitial),
- _state(0),
- _stateMachine(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-QtUml::PseudostateKind UmlPseudostate::kind() const
-{
- // This is a read-write property
-
- return _kind;
-}
-
-void UmlPseudostate::setKind(QtUml::PseudostateKind kind)
-{
- // This is a read-write property
-
- if (_kind != kind) {
- _kind = kind;
- }
-}
-
-UmlState *UmlPseudostate::state() const
-{
- // This is a read-write association end
-
- return _state;
-}
-
-void UmlPseudostate::setState(UmlState *state)
-{
- // This is a read-write association end
-
- if (_state != state) {
- // Adjust subsetted properties
-
- _state = state;
-
- // Adjust subsetted properties
- setNamespace(state);
- }
-}
-
-UmlStateMachine *UmlPseudostate::stateMachine() const
-{
- // This is a read-write association end
-
- return _stateMachine;
-}
-
-void UmlPseudostate::setStateMachine(UmlStateMachine *stateMachine)
-{
- // This is a read-write association end
-
- if (_stateMachine != stateMachine) {
- // Adjust subsetted properties
-
- _stateMachine = stateMachine;
-
- // Adjust subsetted properties
- setNamespace(stateMachine);
- }
-}
-
diff --git a/src/uml/internal/umlpseudostate_p.h b/src/uml/internal/umlpseudostate_p.h
deleted file mode 100644
index 0848071a..00000000
--- a/src/uml/internal/umlpseudostate_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLPSEUDOSTATE_H
-#define UMLPSEUDOSTATE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvertex_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlState;
-class UmlStateMachine;
-
-class Q_UML_EXPORT UmlPseudostate : public UmlVertex
-{
-public:
- Q_DECL_HIDDEN explicit UmlPseudostate();
-
- // Owned attributes
- QtUml::PseudostateKind kind() const;
- void setKind(QtUml::PseudostateKind kind);
- UmlState *state() const;
- void setState(UmlState *state);
- UmlStateMachine *stateMachine() const;
- void setStateMachine(UmlStateMachine *stateMachine);
-
-protected:
- QtUml::PseudostateKind _kind;
- UmlState *_state;
- UmlStateMachine *_stateMachine;
-};
-
-#endif // UMLPSEUDOSTATE_H
-
diff --git a/src/uml/internal/umlqualifiervalue.cpp b/src/uml/internal/umlqualifiervalue.cpp
deleted file mode 100644
index cb49502c..00000000
--- a/src/uml/internal/umlqualifiervalue.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlqualifiervalue_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umlproperty_p.h"
-
-UmlQualifierValue::UmlQualifierValue() :
- _qualifier(0),
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlProperty *UmlQualifierValue::qualifier() const
-{
- // This is a read-write association end
-
- return _qualifier;
-}
-
-void UmlQualifierValue::setQualifier(UmlProperty *qualifier)
-{
- // This is a read-write association end
-
- if (_qualifier != qualifier) {
- _qualifier = qualifier;
- }
-}
-
-UmlInputPin *UmlQualifierValue::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlQualifierValue::setValue(UmlInputPin *value)
-{
- // This is a read-write association end
-
- if (_value != value) {
- _value = value;
- }
-}
-
diff --git a/src/uml/internal/umlqualifiervalue_p.h b/src/uml/internal/umlqualifiervalue_p.h
deleted file mode 100644
index e21b613f..00000000
--- a/src/uml/internal/umlqualifiervalue_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLQUALIFIERVALUE_H
-#define UMLQUALIFIERVALUE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlQualifierValue : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlQualifierValue();
-
- // Owned attributes
- UmlProperty *qualifier() const;
- void setQualifier(UmlProperty *qualifier);
- UmlInputPin *value() const;
- void setValue(UmlInputPin *value);
-
-protected:
- UmlProperty *_qualifier;
- UmlInputPin *_value;
-};
-
-#endif // UMLQUALIFIERVALUE_H
-
diff --git a/src/uml/internal/umlraiseexceptionaction.cpp b/src/uml/internal/umlraiseexceptionaction.cpp
deleted file mode 100644
index e9976281..00000000
--- a/src/uml/internal/umlraiseexceptionaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlraiseexceptionaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlRaiseExceptionAction::UmlRaiseExceptionAction() :
- _exception(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlRaiseExceptionAction::exception() const
-{
- // This is a read-write association end
-
- return _exception;
-}
-
-void UmlRaiseExceptionAction::setException(UmlInputPin *exception)
-{
- // This is a read-write association end
-
- if (_exception != exception) {
- // Adjust subsetted properties
- removeInput(_exception);
-
- _exception = exception;
-
- // Adjust subsetted properties
- if (exception) {
- addInput(exception);
- }
- }
-}
-
diff --git a/src/uml/internal/umlraiseexceptionaction_p.h b/src/uml/internal/umlraiseexceptionaction_p.h
deleted file mode 100644
index e5a3fcc0..00000000
--- a/src/uml/internal/umlraiseexceptionaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLRAISEEXCEPTIONACTION_H
-#define UMLRAISEEXCEPTIONACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlRaiseExceptionAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlRaiseExceptionAction();
-
- // Owned attributes
- UmlInputPin *exception() const;
- void setException(UmlInputPin *exception);
-
-protected:
- UmlInputPin *_exception;
-};
-
-#endif // UMLRAISEEXCEPTIONACTION_H
-
diff --git a/src/uml/internal/umlreadextentaction.cpp b/src/uml/internal/umlreadextentaction.cpp
deleted file mode 100644
index b5525e66..00000000
--- a/src/uml/internal/umlreadextentaction.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadextentaction_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlReadExtentAction::UmlReadExtentAction() :
- _classifier(0),
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlReadExtentAction::classifier() const
-{
- // This is a read-write association end
-
- return _classifier;
-}
-
-void UmlReadExtentAction::setClassifier(UmlClassifier *classifier)
-{
- // This is a read-write association end
-
- if (_classifier != classifier) {
- _classifier = classifier;
- }
-}
-
-UmlOutputPin *UmlReadExtentAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadExtentAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadextentaction_p.h b/src/uml/internal/umlreadextentaction_p.h
deleted file mode 100644
index 2ab71227..00000000
--- a/src/uml/internal/umlreadextentaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADEXTENTACTION_H
-#define UMLREADEXTENTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReadExtentAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadExtentAction();
-
- // Owned attributes
- UmlClassifier *classifier() const;
- void setClassifier(UmlClassifier *classifier);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlClassifier *_classifier;
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADEXTENTACTION_H
-
diff --git a/src/uml/internal/umlreadisclassifiedobjectaction.cpp b/src/uml/internal/umlreadisclassifiedobjectaction.cpp
deleted file mode 100644
index e87ede3a..00000000
--- a/src/uml/internal/umlreadisclassifiedobjectaction.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadisclassifiedobjectaction_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlReadIsClassifiedObjectAction::UmlReadIsClassifiedObjectAction() :
- _classifier(0),
- _isDirect(false),
- _object(0),
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlReadIsClassifiedObjectAction::classifier() const
-{
- // This is a read-write association end
-
- return _classifier;
-}
-
-void UmlReadIsClassifiedObjectAction::setClassifier(UmlClassifier *classifier)
-{
- // This is a read-write association end
-
- if (_classifier != classifier) {
- _classifier = classifier;
- }
-}
-
-bool UmlReadIsClassifiedObjectAction::isDirect() const
-{
- // This is a read-write property
-
- return _isDirect;
-}
-
-void UmlReadIsClassifiedObjectAction::setDirect(bool isDirect)
-{
- // This is a read-write property
-
- if (_isDirect != isDirect) {
- _isDirect = isDirect;
- }
-}
-
-UmlInputPin *UmlReadIsClassifiedObjectAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlReadIsClassifiedObjectAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
-UmlOutputPin *UmlReadIsClassifiedObjectAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadIsClassifiedObjectAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadisclassifiedobjectaction_p.h b/src/uml/internal/umlreadisclassifiedobjectaction_p.h
deleted file mode 100644
index daf5b420..00000000
--- a/src/uml/internal/umlreadisclassifiedobjectaction_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADISCLASSIFIEDOBJECTACTION_H
-#define UMLREADISCLASSIFIEDOBJECTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReadIsClassifiedObjectAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadIsClassifiedObjectAction();
-
- // Owned attributes
- UmlClassifier *classifier() const;
- void setClassifier(UmlClassifier *classifier);
- bool isDirect() const;
- void setDirect(bool isDirect);
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlClassifier *_classifier;
- bool _isDirect;
- UmlInputPin *_object;
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADISCLASSIFIEDOBJECTACTION_H
-
diff --git a/src/uml/internal/umlreadlinkaction.cpp b/src/uml/internal/umlreadlinkaction.cpp
deleted file mode 100644
index a22a8e0d..00000000
--- a/src/uml/internal/umlreadlinkaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadlinkaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlReadLinkAction::UmlReadLinkAction() :
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlReadLinkAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadLinkAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadlinkaction_p.h b/src/uml/internal/umlreadlinkaction_p.h
deleted file mode 100644
index a1a47a92..00000000
--- a/src/uml/internal/umlreadlinkaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADLINKACTION_H
-#define UMLREADLINKACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umllinkaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReadLinkAction : public UmlLinkAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadLinkAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADLINKACTION_H
-
diff --git a/src/uml/internal/umlreadlinkobjectendaction.cpp b/src/uml/internal/umlreadlinkobjectendaction.cpp
deleted file mode 100644
index 902b81d5..00000000
--- a/src/uml/internal/umlreadlinkobjectendaction.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadlinkobjectendaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-#include "private/umlproperty_p.h"
-
-UmlReadLinkObjectEndAction::UmlReadLinkObjectEndAction() :
- _end(0),
- _object(0),
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlProperty *UmlReadLinkObjectEndAction::end() const
-{
- // This is a read-write association end
-
- return _end;
-}
-
-void UmlReadLinkObjectEndAction::setEnd(UmlProperty *end)
-{
- // This is a read-write association end
-
- if (_end != end) {
- _end = end;
- }
-}
-
-UmlInputPin *UmlReadLinkObjectEndAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlReadLinkObjectEndAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
-UmlOutputPin *UmlReadLinkObjectEndAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadLinkObjectEndAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadlinkobjectendaction_p.h b/src/uml/internal/umlreadlinkobjectendaction_p.h
deleted file mode 100644
index 41a35229..00000000
--- a/src/uml/internal/umlreadlinkobjectendaction_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADLINKOBJECTENDACTION_H
-#define UMLREADLINKOBJECTENDACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlOutputPin;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlReadLinkObjectEndAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadLinkObjectEndAction();
-
- // Owned attributes
- UmlProperty *end() const;
- void setEnd(UmlProperty *end);
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlProperty *_end;
- UmlInputPin *_object;
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADLINKOBJECTENDACTION_H
-
diff --git a/src/uml/internal/umlreadlinkobjectendqualifieraction.cpp b/src/uml/internal/umlreadlinkobjectendqualifieraction.cpp
deleted file mode 100644
index 7b313087..00000000
--- a/src/uml/internal/umlreadlinkobjectendqualifieraction.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadlinkobjectendqualifieraction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-#include "private/umlproperty_p.h"
-
-UmlReadLinkObjectEndQualifierAction::UmlReadLinkObjectEndQualifierAction() :
- _object(0),
- _qualifier(0),
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlReadLinkObjectEndQualifierAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlReadLinkObjectEndQualifierAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
-UmlProperty *UmlReadLinkObjectEndQualifierAction::qualifier() const
-{
- // This is a read-write association end
-
- return _qualifier;
-}
-
-void UmlReadLinkObjectEndQualifierAction::setQualifier(UmlProperty *qualifier)
-{
- // This is a read-write association end
-
- if (_qualifier != qualifier) {
- _qualifier = qualifier;
- }
-}
-
-UmlOutputPin *UmlReadLinkObjectEndQualifierAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadLinkObjectEndQualifierAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadlinkobjectendqualifieraction_p.h b/src/uml/internal/umlreadlinkobjectendqualifieraction_p.h
deleted file mode 100644
index 2922b683..00000000
--- a/src/uml/internal/umlreadlinkobjectendqualifieraction_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADLINKOBJECTENDQUALIFIERACTION_H
-#define UMLREADLINKOBJECTENDQUALIFIERACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlOutputPin;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlReadLinkObjectEndQualifierAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadLinkObjectEndQualifierAction();
-
- // Owned attributes
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
- UmlProperty *qualifier() const;
- void setQualifier(UmlProperty *qualifier);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlInputPin *_object;
- UmlProperty *_qualifier;
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADLINKOBJECTENDQUALIFIERACTION_H
-
diff --git a/src/uml/internal/umlreadselfaction.cpp b/src/uml/internal/umlreadselfaction.cpp
deleted file mode 100644
index a6d9e757..00000000
--- a/src/uml/internal/umlreadselfaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadselfaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlReadSelfAction::UmlReadSelfAction() :
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlReadSelfAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadSelfAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadselfaction_p.h b/src/uml/internal/umlreadselfaction_p.h
deleted file mode 100644
index 545ada1d..00000000
--- a/src/uml/internal/umlreadselfaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADSELFACTION_H
-#define UMLREADSELFACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReadSelfAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadSelfAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADSELFACTION_H
-
diff --git a/src/uml/internal/umlreadstructuralfeatureaction.cpp b/src/uml/internal/umlreadstructuralfeatureaction.cpp
deleted file mode 100644
index 3c37bc7f..00000000
--- a/src/uml/internal/umlreadstructuralfeatureaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadstructuralfeatureaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlReadStructuralFeatureAction::UmlReadStructuralFeatureAction() :
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlReadStructuralFeatureAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadStructuralFeatureAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadstructuralfeatureaction_p.h b/src/uml/internal/umlreadstructuralfeatureaction_p.h
deleted file mode 100644
index 339e2a50..00000000
--- a/src/uml/internal/umlreadstructuralfeatureaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADSTRUCTURALFEATUREACTION_H
-#define UMLREADSTRUCTURALFEATUREACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuralfeatureaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReadStructuralFeatureAction : public UmlStructuralFeatureAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadStructuralFeatureAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADSTRUCTURALFEATUREACTION_H
-
diff --git a/src/uml/internal/umlreadvariableaction.cpp b/src/uml/internal/umlreadvariableaction.cpp
deleted file mode 100644
index e35bc798..00000000
--- a/src/uml/internal/umlreadvariableaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreadvariableaction_p.h"
-
-#include "private/umloutputpin_p.h"
-
-UmlReadVariableAction::UmlReadVariableAction() :
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlReadVariableAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReadVariableAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreadvariableaction_p.h b/src/uml/internal/umlreadvariableaction_p.h
deleted file mode 100644
index ed8d119c..00000000
--- a/src/uml/internal/umlreadvariableaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREADVARIABLEACTION_H
-#define UMLREADVARIABLEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvariableaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReadVariableAction : public UmlVariableAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReadVariableAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlOutputPin *_result;
-};
-
-#endif // UMLREADVARIABLEACTION_H
-
diff --git a/src/uml/internal/umlrealization.cpp b/src/uml/internal/umlrealization.cpp
deleted file mode 100644
index 8bf24965..00000000
--- a/src/uml/internal/umlrealization.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlrealization_p.h"
-
-UmlRealization::UmlRealization()
-{
-}
-
diff --git a/src/uml/internal/umlrealization_p.h b/src/uml/internal/umlrealization_p.h
deleted file mode 100644
index 55b0fc36..00000000
--- a/src/uml/internal/umlrealization_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREALIZATION_H
-#define UMLREALIZATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlabstraction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlRealization : public UmlAbstraction
-{
-public:
- Q_DECL_HIDDEN explicit UmlRealization();
-
-protected:
-};
-
-#endif // UMLREALIZATION_H
-
diff --git a/src/uml/internal/umlreception.cpp b/src/uml/internal/umlreception.cpp
deleted file mode 100644
index d8628784..00000000
--- a/src/uml/internal/umlreception.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreception_p.h"
-
-#include "private/umlsignal_p.h"
-
-UmlReception::UmlReception() :
- _signal(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlSignal *UmlReception::signal() const
-{
- // This is a read-write association end
-
- return _signal;
-}
-
-void UmlReception::setSignal(UmlSignal *signal)
-{
- // This is a read-write association end
-
- if (_signal != signal) {
- _signal = signal;
- }
-}
-
diff --git a/src/uml/internal/umlreception_p.h b/src/uml/internal/umlreception_p.h
deleted file mode 100644
index 72c20aac..00000000
--- a/src/uml/internal/umlreception_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLRECEPTION_H
-#define UMLRECEPTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavioralfeature_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlSignal;
-
-class Q_UML_EXPORT UmlReception : public UmlBehavioralFeature
-{
-public:
- Q_DECL_HIDDEN explicit UmlReception();
-
- // Owned attributes
- UmlSignal *signal() const;
- void setSignal(UmlSignal *signal);
-
-protected:
- UmlSignal *_signal;
-};
-
-#endif // UMLRECEPTION_H
-
diff --git a/src/uml/internal/umlreclassifyobjectaction.cpp b/src/uml/internal/umlreclassifyobjectaction.cpp
deleted file mode 100644
index 4513eeb3..00000000
--- a/src/uml/internal/umlreclassifyobjectaction.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreclassifyobjectaction_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlinputpin_p.h"
-
-UmlReclassifyObjectAction::UmlReclassifyObjectAction() :
- _isReplaceAll(false),
- _object(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlReclassifyObjectAction::isReplaceAll() const
-{
- // This is a read-write property
-
- return _isReplaceAll;
-}
-
-void UmlReclassifyObjectAction::setReplaceAll(bool isReplaceAll)
-{
- // This is a read-write property
-
- if (_isReplaceAll != isReplaceAll) {
- _isReplaceAll = isReplaceAll;
- }
-}
-
-const QSet<UmlClassifier *> UmlReclassifyObjectAction::newClassifier() const
-{
- // This is a read-write association end
-
- return _newClassifier;
-}
-
-void UmlReclassifyObjectAction::addNewClassifier(UmlClassifier *newClassifier)
-{
- // This is a read-write association end
-
- if (!_newClassifier.contains(newClassifier)) {
- _newClassifier.insert(newClassifier);
- }
-}
-
-void UmlReclassifyObjectAction::removeNewClassifier(UmlClassifier *newClassifier)
-{
- // This is a read-write association end
-
- if (_newClassifier.contains(newClassifier)) {
- _newClassifier.remove(newClassifier);
- }
-}
-
-UmlInputPin *UmlReclassifyObjectAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlReclassifyObjectAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
-const QSet<UmlClassifier *> UmlReclassifyObjectAction::oldClassifier() const
-{
- // This is a read-write association end
-
- return _oldClassifier;
-}
-
-void UmlReclassifyObjectAction::addOldClassifier(UmlClassifier *oldClassifier)
-{
- // This is a read-write association end
-
- if (!_oldClassifier.contains(oldClassifier)) {
- _oldClassifier.insert(oldClassifier);
- }
-}
-
-void UmlReclassifyObjectAction::removeOldClassifier(UmlClassifier *oldClassifier)
-{
- // This is a read-write association end
-
- if (_oldClassifier.contains(oldClassifier)) {
- _oldClassifier.remove(oldClassifier);
- }
-}
-
diff --git a/src/uml/internal/umlreclassifyobjectaction_p.h b/src/uml/internal/umlreclassifyobjectaction_p.h
deleted file mode 100644
index c30b2edf..00000000
--- a/src/uml/internal/umlreclassifyobjectaction_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLRECLASSIFYOBJECTACTION_H
-#define UMLRECLASSIFYOBJECTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlReclassifyObjectAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReclassifyObjectAction();
-
- // Owned attributes
- bool isReplaceAll() const;
- void setReplaceAll(bool isReplaceAll);
- const QSet<UmlClassifier *> newClassifier() const;
- void addNewClassifier(UmlClassifier *newClassifier);
- void removeNewClassifier(UmlClassifier *newClassifier);
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
- const QSet<UmlClassifier *> oldClassifier() const;
- void addOldClassifier(UmlClassifier *oldClassifier);
- void removeOldClassifier(UmlClassifier *oldClassifier);
-
-protected:
- bool _isReplaceAll;
- QSet<UmlClassifier *> _newClassifier;
- UmlInputPin *_object;
- QSet<UmlClassifier *> _oldClassifier;
-};
-
-#endif // UMLRECLASSIFYOBJECTACTION_H
-
diff --git a/src/uml/internal/umlredefinableelement.cpp b/src/uml/internal/umlredefinableelement.cpp
deleted file mode 100644
index 1674c2c5..00000000
--- a/src/uml/internal/umlredefinableelement.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlredefinableelement_p.h"
-
-#include "private/umlclassifier_p.h"
-
-UmlRedefinableElement::UmlRedefinableElement() :
- _isLeaf(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlRedefinableElement::isLeaf() const
-{
- // This is a read-write property
-
- return _isLeaf;
-}
-
-void UmlRedefinableElement::setLeaf(bool isLeaf)
-{
- // This is a read-write property
-
- if (_isLeaf != isLeaf) {
- _isLeaf = isLeaf;
- }
-}
-
-const QSet<UmlRedefinableElement *> UmlRedefinableElement::redefinedElement() const
-{
- // This is a read-only derived union association end
-
- return _redefinedElement;
-}
-
-void UmlRedefinableElement::addRedefinedElement(UmlRedefinableElement *redefinedElement)
-{
- // This is a read-only derived union association end
-
- if (!_redefinedElement.contains(redefinedElement)) {
- _redefinedElement.insert(redefinedElement);
- }
-}
-
-void UmlRedefinableElement::removeRedefinedElement(UmlRedefinableElement *redefinedElement)
-{
- // This is a read-only derived union association end
-
- if (_redefinedElement.contains(redefinedElement)) {
- _redefinedElement.remove(redefinedElement);
- }
-}
-
-const QSet<UmlClassifier *> UmlRedefinableElement::redefinitionContext() const
-{
- // This is a read-only derived union association end
-
- return _redefinitionContext;
-}
-
-void UmlRedefinableElement::addRedefinitionContext(UmlClassifier *redefinitionContext)
-{
- // This is a read-only derived union association end
-
- if (!_redefinitionContext.contains(redefinitionContext)) {
- _redefinitionContext.insert(redefinitionContext);
- }
-}
-
-void UmlRedefinableElement::removeRedefinitionContext(UmlClassifier *redefinitionContext)
-{
- // This is a read-only derived union association end
-
- if (_redefinitionContext.contains(redefinitionContext)) {
- _redefinitionContext.remove(redefinitionContext);
- }
-}
-
-// OPERATIONS
-
-bool UmlRedefinableElement::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlRedefinableElement::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
-bool UmlRedefinableElement::isRedefinitionContextValid(
- UmlRedefinableElement *redefined) const
-{
- qWarning("UmlRedefinableElement::isRedefinitionContextValid(): to be implemented (operation)");
-
- Q_UNUSED(redefined);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlredefinableelement_p.h b/src/uml/internal/umlredefinableelement_p.h
deleted file mode 100644
index 5e5080a9..00000000
--- a/src/uml/internal/umlredefinableelement_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREDEFINABLEELEMENT_H
-#define UMLREDEFINABLEELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-
-class Q_UML_EXPORT UmlRedefinableElement : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlRedefinableElement();
-
- // Owned attributes
- bool isLeaf() const;
- void setLeaf(bool isLeaf);
- const QSet<UmlRedefinableElement *> redefinedElement() const;
- Q_DECL_HIDDEN void addRedefinedElement(UmlRedefinableElement *redefinedElement);
- Q_DECL_HIDDEN void removeRedefinedElement(UmlRedefinableElement *redefinedElement);
- const QSet<UmlClassifier *> redefinitionContext() const;
- Q_DECL_HIDDEN void addRedefinitionContext(UmlClassifier *redefinitionContext);
- Q_DECL_HIDDEN void removeRedefinitionContext(UmlClassifier *redefinitionContext);
-
- // Operations
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
- bool isRedefinitionContextValid(UmlRedefinableElement *redefined) const;
-
-protected:
- bool _isLeaf;
- QSet<UmlRedefinableElement *> _redefinedElement;
- QSet<UmlClassifier *> _redefinitionContext;
-};
-
-#endif // UMLREDEFINABLEELEMENT_H
-
diff --git a/src/uml/internal/umlredefinabletemplatesignature.cpp b/src/uml/internal/umlredefinabletemplatesignature.cpp
deleted file mode 100644
index fff0ff97..00000000
--- a/src/uml/internal/umlredefinabletemplatesignature.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlredefinabletemplatesignature_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umltemplateparameter_p.h"
-
-UmlRedefinableTemplateSignature::UmlRedefinableTemplateSignature() :
- _classifier(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlRedefinableTemplateSignature::classifier() const
-{
- // This is a read-write association end
-
- return _classifier;
-}
-
-void UmlRedefinableTemplateSignature::setClassifier(UmlClassifier *classifier)
-{
- // This is a read-write association end
-
- if (_classifier != classifier) {
- // Adjust subsetted properties
- removeRedefinitionContext(_classifier);
-
- _classifier = classifier;
-
- // Adjust subsetted properties
- if (classifier) {
- addRedefinitionContext(classifier);
- }
- }
-}
-
-const QSet<UmlRedefinableTemplateSignature *> UmlRedefinableTemplateSignature::extendedSignature() const
-{
- // This is a read-write association end
-
- return _extendedSignature;
-}
-
-void UmlRedefinableTemplateSignature::addExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature)
-{
- // This is a read-write association end
-
- if (!_extendedSignature.contains(extendedSignature)) {
- _extendedSignature.insert(extendedSignature);
-
- // Adjust subsetted properties
- addRedefinedElement(extendedSignature);
- }
-}
-
-void UmlRedefinableTemplateSignature::removeExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature)
-{
- // This is a read-write association end
-
- if (_extendedSignature.contains(extendedSignature)) {
- _extendedSignature.remove(extendedSignature);
-
- // Adjust subsetted properties
- removeRedefinedElement(extendedSignature);
- }
-}
-
-const QSet<UmlTemplateParameter *> UmlRedefinableTemplateSignature::inheritedParameter() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlRedefinableTemplateSignature::inheritedParameter(): to be implemented (this is a derived association end)");
-
- return QSet<UmlTemplateParameter *>();
-}
-
-void UmlRedefinableTemplateSignature::addInheritedParameter(UmlTemplateParameter *inheritedParameter)
-{
- // This is a read-only derived association end
-
- qWarning("UmlRedefinableTemplateSignature::inheritedParameter(): to be implemented (this is a derived association end)");
- Q_UNUSED(inheritedParameter);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- addParameter(inheritedParameter);
- }
-}
-
-void UmlRedefinableTemplateSignature::removeInheritedParameter(UmlTemplateParameter *inheritedParameter)
-{
- // This is a read-only derived association end
-
- qWarning("UmlRedefinableTemplateSignature::inheritedParameter(): to be implemented (this is a derived association end)");
- Q_UNUSED(inheritedParameter);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust subsetted properties
- removeParameter(inheritedParameter);
- }
-}
-
-// OPERATIONS
-
-bool UmlRedefinableTemplateSignature::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlRedefinableTemplateSignature::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlredefinabletemplatesignature_p.h b/src/uml/internal/umlredefinabletemplatesignature_p.h
deleted file mode 100644
index d9caa1fc..00000000
--- a/src/uml/internal/umlredefinabletemplatesignature_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREDEFINABLETEMPLATESIGNATURE_H
-#define UMLREDEFINABLETEMPLATESIGNATURE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltemplatesignature_p.h"
-#include "private/umlredefinableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlTemplateParameter;
-
-class Q_UML_EXPORT UmlRedefinableTemplateSignature : public UmlTemplateSignature, public UmlRedefinableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlRedefinableTemplateSignature();
-
- // Owned attributes
- UmlClassifier *classifier() const;
- void setClassifier(UmlClassifier *classifier);
- const QSet<UmlRedefinableTemplateSignature *> extendedSignature() const;
- void addExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature);
- void removeExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature);
- const QSet<UmlTemplateParameter *> inheritedParameter() const;
- Q_DECL_HIDDEN void addInheritedParameter(UmlTemplateParameter *inheritedParameter);
- Q_DECL_HIDDEN void removeInheritedParameter(UmlTemplateParameter *inheritedParameter);
-
- // Operations
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
-
-protected:
- UmlClassifier *_classifier;
- QSet<UmlRedefinableTemplateSignature *> _extendedSignature;
-};
-
-#endif // UMLREDEFINABLETEMPLATESIGNATURE_H
-
diff --git a/src/uml/internal/umlreduceaction.cpp b/src/uml/internal/umlreduceaction.cpp
deleted file mode 100644
index a1ad6575..00000000
--- a/src/uml/internal/umlreduceaction.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreduceaction_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlReduceAction::UmlReduceAction() :
- _collection(0),
- _isOrdered(false),
- _reducer(0),
- _result(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlReduceAction::collection() const
-{
- // This is a read-write association end
-
- return _collection;
-}
-
-void UmlReduceAction::setCollection(UmlInputPin *collection)
-{
- // This is a read-write association end
-
- if (_collection != collection) {
- // Adjust subsetted properties
- removeInput(_collection);
-
- _collection = collection;
-
- // Adjust subsetted properties
- if (collection) {
- addInput(collection);
- }
- }
-}
-
-bool UmlReduceAction::isOrdered() const
-{
- // This is a read-write property
-
- return _isOrdered;
-}
-
-void UmlReduceAction::setOrdered(bool isOrdered)
-{
- // This is a read-write property
-
- if (_isOrdered != isOrdered) {
- _isOrdered = isOrdered;
- }
-}
-
-UmlBehavior *UmlReduceAction::reducer() const
-{
- // This is a read-write association end
-
- return _reducer;
-}
-
-void UmlReduceAction::setReducer(UmlBehavior *reducer)
-{
- // This is a read-write association end
-
- if (_reducer != reducer) {
- _reducer = reducer;
- }
-}
-
-UmlOutputPin *UmlReduceAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlReduceAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreduceaction_p.h b/src/uml/internal/umlreduceaction_p.h
deleted file mode 100644
index f212d479..00000000
--- a/src/uml/internal/umlreduceaction_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREDUCEACTION_H
-#define UMLREDUCEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlReduceAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReduceAction();
-
- // Owned attributes
- UmlInputPin *collection() const;
- void setCollection(UmlInputPin *collection);
- bool isOrdered() const;
- void setOrdered(bool isOrdered);
- UmlBehavior *reducer() const;
- void setReducer(UmlBehavior *reducer);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
-
-protected:
- UmlInputPin *_collection;
- bool _isOrdered;
- UmlBehavior *_reducer;
- UmlOutputPin *_result;
-};
-
-#endif // UMLREDUCEACTION_H
-
diff --git a/src/uml/internal/umlregion.cpp b/src/uml/internal/umlregion.cpp
deleted file mode 100644
index 76cc1baf..00000000
--- a/src/uml/internal/umlregion.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlregion_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlstate_p.h"
-#include "private/umlstatemachine_p.h"
-#include "private/umltransition_p.h"
-#include "private/umlvertex_p.h"
-
-UmlRegion::UmlRegion() :
- _extendedRegion(0),
- _state(0),
- _stateMachine(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlRegion *UmlRegion::extendedRegion() const
-{
- // This is a read-write association end
-
- return _extendedRegion;
-}
-
-void UmlRegion::setExtendedRegion(UmlRegion *extendedRegion)
-{
- // This is a read-write association end
-
- if (_extendedRegion != extendedRegion) {
- // Adjust subsetted properties
- removeRedefinedElement(_extendedRegion);
-
- _extendedRegion = extendedRegion;
-
- // Adjust subsetted properties
- if (extendedRegion) {
- addRedefinedElement(extendedRegion);
- }
- }
-}
-
-UmlClassifier *UmlRegion::redefinitionContext() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlRegion::redefinitionContext(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlRegion::setRedefinitionContext(UmlClassifier *redefinitionContext)
-{
- // This is a read-only derived association end
-
- qWarning("UmlRegion::redefinitionContext(): to be implemented (this is a derived association end)");
- Q_UNUSED(redefinitionContext);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlState *UmlRegion::state() const
-{
- // This is a read-write association end
-
- return _state;
-}
-
-void UmlRegion::setState(UmlState *state)
-{
- // This is a read-write association end
-
- if (_state != state) {
- // Adjust subsetted properties
-
- _state = state;
-
- // Adjust subsetted properties
- setNamespace(state);
- }
-}
-
-UmlStateMachine *UmlRegion::stateMachine() const
-{
- // This is a read-write association end
-
- return _stateMachine;
-}
-
-void UmlRegion::setStateMachine(UmlStateMachine *stateMachine)
-{
- // This is a read-write association end
-
- if (_stateMachine != stateMachine) {
- // Adjust subsetted properties
-
- _stateMachine = stateMachine;
-
- // Adjust subsetted properties
- setNamespace(stateMachine);
- }
-}
-
-const QSet<UmlVertex *> UmlRegion::subvertex() const
-{
- // This is a read-write association end
-
- return _subvertex;
-}
-
-void UmlRegion::addSubvertex(UmlVertex *subvertex)
-{
- // This is a read-write association end
-
- if (!_subvertex.contains(subvertex)) {
- _subvertex.insert(subvertex);
-
- // Adjust subsetted properties
- addOwnedMember(subvertex);
-
- // Adjust opposite properties
- if (subvertex) {
- subvertex->setContainer(this);
- }
- }
-}
-
-void UmlRegion::removeSubvertex(UmlVertex *subvertex)
-{
- // This is a read-write association end
-
- if (_subvertex.contains(subvertex)) {
- _subvertex.remove(subvertex);
-
- // Adjust subsetted properties
- removeOwnedMember(subvertex);
-
- // Adjust opposite properties
- if (subvertex) {
- subvertex->setContainer(0);
- }
- }
-}
-
-const QSet<UmlTransition *> UmlRegion::transition() const
-{
- // This is a read-write association end
-
- return _transition;
-}
-
-void UmlRegion::addTransition(UmlTransition *transition)
-{
- // This is a read-write association end
-
- if (!_transition.contains(transition)) {
- _transition.insert(transition);
-
- // Adjust subsetted properties
- addOwnedMember(transition);
-
- // Adjust opposite properties
- if (transition) {
- transition->setContainer(this);
- }
- }
-}
-
-void UmlRegion::removeTransition(UmlTransition *transition)
-{
- // This is a read-write association end
-
- if (_transition.contains(transition)) {
- _transition.remove(transition);
-
- // Adjust subsetted properties
- removeOwnedMember(transition);
-
- // Adjust opposite properties
- if (transition) {
- transition->setContainer(0);
- }
- }
-}
-
-// OPERATIONS
-
-bool UmlRegion::belongsToPSM(
- ) const
-{
- qWarning("UmlRegion::belongsToPSM(): to be implemented (operation)");
-
- return bool ();
-}
-
-UmlStateMachine *UmlRegion::containingStateMachine(
- ) const
-{
- qWarning("UmlRegion::containingStateMachine(): to be implemented (operation)");
-
- return 0;
-}
-
-bool UmlRegion::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlRegion::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
-bool UmlRegion::isRedefinitionContextValid(
- UmlRegion *redefined) const
-{
- qWarning("UmlRegion::isRedefinitionContextValid(): to be implemented (operation)");
-
- Q_UNUSED(redefined);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlregion_p.h b/src/uml/internal/umlregion_p.h
deleted file mode 100644
index f9d17b6f..00000000
--- a/src/uml/internal/umlregion_p.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREGION_H
-#define UMLREGION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlredefinableelement_p.h"
-#include "private/umlnamespace_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlState;
-class UmlStateMachine;
-class UmlTransition;
-class UmlVertex;
-
-class Q_UML_EXPORT UmlRegion : public UmlRedefinableElement, public UmlNamespace
-{
-public:
- Q_DECL_HIDDEN explicit UmlRegion();
-
- // Owned attributes
- UmlRegion *extendedRegion() const;
- void setExtendedRegion(UmlRegion *extendedRegion);
- UmlClassifier *redefinitionContext() const;
- Q_DECL_HIDDEN void setRedefinitionContext(UmlClassifier *redefinitionContext);
- UmlState *state() const;
- void setState(UmlState *state);
- UmlStateMachine *stateMachine() const;
- void setStateMachine(UmlStateMachine *stateMachine);
- const QSet<UmlVertex *> subvertex() const;
- void addSubvertex(UmlVertex *subvertex);
- void removeSubvertex(UmlVertex *subvertex);
- const QSet<UmlTransition *> transition() const;
- void addTransition(UmlTransition *transition);
- void removeTransition(UmlTransition *transition);
-
- // Operations
- bool belongsToPSM() const;
- UmlStateMachine *containingStateMachine() const;
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
- bool isRedefinitionContextValid(UmlRegion *redefined) const;
-
-protected:
- UmlRegion *_extendedRegion;
- UmlState *_state;
- UmlStateMachine *_stateMachine;
- QSet<UmlVertex *> _subvertex;
- QSet<UmlTransition *> _transition;
-};
-
-#endif // UMLREGION_H
-
diff --git a/src/uml/internal/umlrelationship.cpp b/src/uml/internal/umlrelationship.cpp
deleted file mode 100644
index 727bb9f9..00000000
--- a/src/uml/internal/umlrelationship.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlrelationship_p.h"
-
-UmlRelationship::UmlRelationship()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlElement *> UmlRelationship::relatedElement() const
-{
- // This is a read-only derived union association end
-
- return _relatedElement;
-}
-
-void UmlRelationship::addRelatedElement(UmlElement *relatedElement)
-{
- // This is a read-only derived union association end
-
- if (!_relatedElement.contains(relatedElement)) {
- _relatedElement.insert(relatedElement);
- }
-}
-
-void UmlRelationship::removeRelatedElement(UmlElement *relatedElement)
-{
- // This is a read-only derived union association end
-
- if (_relatedElement.contains(relatedElement)) {
- _relatedElement.remove(relatedElement);
- }
-}
-
diff --git a/src/uml/internal/umlrelationship_p.h b/src/uml/internal/umlrelationship_p.h
deleted file mode 100644
index 3d990037..00000000
--- a/src/uml/internal/umlrelationship_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLRELATIONSHIP_H
-#define UMLRELATIONSHIP_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlRelationship : public virtual UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlRelationship();
-
- // Owned attributes
- const QSet<UmlElement *> relatedElement() const;
- Q_DECL_HIDDEN void addRelatedElement(UmlElement *relatedElement);
- Q_DECL_HIDDEN void removeRelatedElement(UmlElement *relatedElement);
-
-protected:
- QSet<UmlElement *> _relatedElement;
-};
-
-#endif // UMLRELATIONSHIP_H
-
diff --git a/src/uml/internal/umlremovestructuralfeaturevalueaction.cpp b/src/uml/internal/umlremovestructuralfeaturevalueaction.cpp
deleted file mode 100644
index 18a50bf2..00000000
--- a/src/uml/internal/umlremovestructuralfeaturevalueaction.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlremovestructuralfeaturevalueaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlRemoveStructuralFeatureValueAction::UmlRemoveStructuralFeatureValueAction() :
- _isRemoveDuplicates(false),
- _removeAt(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlRemoveStructuralFeatureValueAction::isRemoveDuplicates() const
-{
- // This is a read-write property
-
- return _isRemoveDuplicates;
-}
-
-void UmlRemoveStructuralFeatureValueAction::setRemoveDuplicates(bool isRemoveDuplicates)
-{
- // This is a read-write property
-
- if (_isRemoveDuplicates != isRemoveDuplicates) {
- _isRemoveDuplicates = isRemoveDuplicates;
- }
-}
-
-UmlInputPin *UmlRemoveStructuralFeatureValueAction::removeAt() const
-{
- // This is a read-write association end
-
- return _removeAt;
-}
-
-void UmlRemoveStructuralFeatureValueAction::setRemoveAt(UmlInputPin *removeAt)
-{
- // This is a read-write association end
-
- if (_removeAt != removeAt) {
- // Adjust subsetted properties
- removeInput(_removeAt);
-
- _removeAt = removeAt;
-
- // Adjust subsetted properties
- if (removeAt) {
- addInput(removeAt);
- }
- }
-}
-
diff --git a/src/uml/internal/umlremovestructuralfeaturevalueaction_p.h b/src/uml/internal/umlremovestructuralfeaturevalueaction_p.h
deleted file mode 100644
index 72f0a267..00000000
--- a/src/uml/internal/umlremovestructuralfeaturevalueaction_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREMOVESTRUCTURALFEATUREVALUEACTION_H
-#define UMLREMOVESTRUCTURALFEATUREVALUEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlwritestructuralfeatureaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlRemoveStructuralFeatureValueAction : public UmlWriteStructuralFeatureAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlRemoveStructuralFeatureValueAction();
-
- // Owned attributes
- bool isRemoveDuplicates() const;
- void setRemoveDuplicates(bool isRemoveDuplicates);
- UmlInputPin *removeAt() const;
- void setRemoveAt(UmlInputPin *removeAt);
-
-protected:
- bool _isRemoveDuplicates;
- UmlInputPin *_removeAt;
-};
-
-#endif // UMLREMOVESTRUCTURALFEATUREVALUEACTION_H
-
diff --git a/src/uml/internal/umlremovevariablevalueaction.cpp b/src/uml/internal/umlremovevariablevalueaction.cpp
deleted file mode 100644
index edde511f..00000000
--- a/src/uml/internal/umlremovevariablevalueaction.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlremovevariablevalueaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlRemoveVariableValueAction::UmlRemoveVariableValueAction() :
- _isRemoveDuplicates(false),
- _removeAt(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlRemoveVariableValueAction::isRemoveDuplicates() const
-{
- // This is a read-write property
-
- return _isRemoveDuplicates;
-}
-
-void UmlRemoveVariableValueAction::setRemoveDuplicates(bool isRemoveDuplicates)
-{
- // This is a read-write property
-
- if (_isRemoveDuplicates != isRemoveDuplicates) {
- _isRemoveDuplicates = isRemoveDuplicates;
- }
-}
-
-UmlInputPin *UmlRemoveVariableValueAction::removeAt() const
-{
- // This is a read-write association end
-
- return _removeAt;
-}
-
-void UmlRemoveVariableValueAction::setRemoveAt(UmlInputPin *removeAt)
-{
- // This is a read-write association end
-
- if (_removeAt != removeAt) {
- // Adjust subsetted properties
- removeInput(_removeAt);
-
- _removeAt = removeAt;
-
- // Adjust subsetted properties
- if (removeAt) {
- addInput(removeAt);
- }
- }
-}
-
diff --git a/src/uml/internal/umlremovevariablevalueaction_p.h b/src/uml/internal/umlremovevariablevalueaction_p.h
deleted file mode 100644
index fe95b044..00000000
--- a/src/uml/internal/umlremovevariablevalueaction_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREMOVEVARIABLEVALUEACTION_H
-#define UMLREMOVEVARIABLEVALUEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlwritevariableaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlRemoveVariableValueAction : public UmlWriteVariableAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlRemoveVariableValueAction();
-
- // Owned attributes
- bool isRemoveDuplicates() const;
- void setRemoveDuplicates(bool isRemoveDuplicates);
- UmlInputPin *removeAt() const;
- void setRemoveAt(UmlInputPin *removeAt);
-
-protected:
- bool _isRemoveDuplicates;
- UmlInputPin *_removeAt;
-};
-
-#endif // UMLREMOVEVARIABLEVALUEACTION_H
-
diff --git a/src/uml/internal/umlreplyaction.cpp b/src/uml/internal/umlreplyaction.cpp
deleted file mode 100644
index da2bf324..00000000
--- a/src/uml/internal/umlreplyaction.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlreplyaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umltrigger_p.h"
-
-UmlReplyAction::UmlReplyAction() :
- _replyToCall(0),
- _returnInformation(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlTrigger *UmlReplyAction::replyToCall() const
-{
- // This is a read-write association end
-
- return _replyToCall;
-}
-
-void UmlReplyAction::setReplyToCall(UmlTrigger *replyToCall)
-{
- // This is a read-write association end
-
- if (_replyToCall != replyToCall) {
- _replyToCall = replyToCall;
- }
-}
-
-const QSet<UmlInputPin *> UmlReplyAction::replyValue() const
-{
- // This is a read-write association end
-
- return _replyValue;
-}
-
-void UmlReplyAction::addReplyValue(UmlInputPin *replyValue)
-{
- // This is a read-write association end
-
- if (!_replyValue.contains(replyValue)) {
- _replyValue.insert(replyValue);
-
- // Adjust subsetted properties
- addInput(replyValue);
- }
-}
-
-void UmlReplyAction::removeReplyValue(UmlInputPin *replyValue)
-{
- // This is a read-write association end
-
- if (_replyValue.contains(replyValue)) {
- _replyValue.remove(replyValue);
-
- // Adjust subsetted properties
- removeInput(replyValue);
- }
-}
-
-UmlInputPin *UmlReplyAction::returnInformation() const
-{
- // This is a read-write association end
-
- return _returnInformation;
-}
-
-void UmlReplyAction::setReturnInformation(UmlInputPin *returnInformation)
-{
- // This is a read-write association end
-
- if (_returnInformation != returnInformation) {
- // Adjust subsetted properties
- removeInput(_returnInformation);
-
- _returnInformation = returnInformation;
-
- // Adjust subsetted properties
- if (returnInformation) {
- addInput(returnInformation);
- }
- }
-}
-
diff --git a/src/uml/internal/umlreplyaction_p.h b/src/uml/internal/umlreplyaction_p.h
deleted file mode 100644
index b6e66481..00000000
--- a/src/uml/internal/umlreplyaction_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLREPLYACTION_H
-#define UMLREPLYACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlTrigger;
-
-class Q_UML_EXPORT UmlReplyAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlReplyAction();
-
- // Owned attributes
- UmlTrigger *replyToCall() const;
- void setReplyToCall(UmlTrigger *replyToCall);
- const QSet<UmlInputPin *> replyValue() const;
- void addReplyValue(UmlInputPin *replyValue);
- void removeReplyValue(UmlInputPin *replyValue);
- UmlInputPin *returnInformation() const;
- void setReturnInformation(UmlInputPin *returnInformation);
-
-protected:
- UmlTrigger *_replyToCall;
- QSet<UmlInputPin *> _replyValue;
- UmlInputPin *_returnInformation;
-};
-
-#endif // UMLREPLYACTION_H
-
diff --git a/src/uml/internal/umlsendobjectaction.cpp b/src/uml/internal/umlsendobjectaction.cpp
deleted file mode 100644
index 4d89b7f9..00000000
--- a/src/uml/internal/umlsendobjectaction.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlsendobjectaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlSendObjectAction::UmlSendObjectAction() :
- _request(0),
- _target(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlSendObjectAction::request() const
-{
- // This is a read-write association end
-
- return _request;
-}
-
-void UmlSendObjectAction::setRequest(UmlInputPin *request)
-{
- // This is a read-write association end
-
- if (_request != request) {
- _request = request;
- }
-}
-
-UmlInputPin *UmlSendObjectAction::target() const
-{
- // This is a read-write association end
-
- return _target;
-}
-
-void UmlSendObjectAction::setTarget(UmlInputPin *target)
-{
- // This is a read-write association end
-
- if (_target != target) {
- // Adjust subsetted properties
- removeInput(_target);
-
- _target = target;
-
- // Adjust subsetted properties
- if (target) {
- addInput(target);
- }
- }
-}
-
diff --git a/src/uml/internal/umlsendobjectaction_p.h b/src/uml/internal/umlsendobjectaction_p.h
deleted file mode 100644
index c49d8ef7..00000000
--- a/src/uml/internal/umlsendobjectaction_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSENDOBJECTACTION_H
-#define UMLSENDOBJECTACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinvocationaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlSendObjectAction : public UmlInvocationAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlSendObjectAction();
-
- // Owned attributes
- UmlInputPin *request() const;
- void setRequest(UmlInputPin *request);
- UmlInputPin *target() const;
- void setTarget(UmlInputPin *target);
-
-protected:
- UmlInputPin *_request;
- UmlInputPin *_target;
-};
-
-#endif // UMLSENDOBJECTACTION_H
-
diff --git a/src/uml/internal/umlsendsignalaction.cpp b/src/uml/internal/umlsendsignalaction.cpp
deleted file mode 100644
index 164c86be..00000000
--- a/src/uml/internal/umlsendsignalaction.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlsendsignalaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umlsignal_p.h"
-
-UmlSendSignalAction::UmlSendSignalAction() :
- _signal(0),
- _target(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlSignal *UmlSendSignalAction::signal() const
-{
- // This is a read-write association end
-
- return _signal;
-}
-
-void UmlSendSignalAction::setSignal(UmlSignal *signal)
-{
- // This is a read-write association end
-
- if (_signal != signal) {
- _signal = signal;
- }
-}
-
-UmlInputPin *UmlSendSignalAction::target() const
-{
- // This is a read-write association end
-
- return _target;
-}
-
-void UmlSendSignalAction::setTarget(UmlInputPin *target)
-{
- // This is a read-write association end
-
- if (_target != target) {
- // Adjust subsetted properties
- removeInput(_target);
-
- _target = target;
-
- // Adjust subsetted properties
- if (target) {
- addInput(target);
- }
- }
-}
-
diff --git a/src/uml/internal/umlsendsignalaction_p.h b/src/uml/internal/umlsendsignalaction_p.h
deleted file mode 100644
index d6fc59a5..00000000
--- a/src/uml/internal/umlsendsignalaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSENDSIGNALACTION_H
-#define UMLSENDSIGNALACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinvocationaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlSignal;
-
-class Q_UML_EXPORT UmlSendSignalAction : public UmlInvocationAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlSendSignalAction();
-
- // Owned attributes
- UmlSignal *signal() const;
- void setSignal(UmlSignal *signal);
- UmlInputPin *target() const;
- void setTarget(UmlInputPin *target);
-
-protected:
- UmlSignal *_signal;
- UmlInputPin *_target;
-};
-
-#endif // UMLSENDSIGNALACTION_H
-
diff --git a/src/uml/internal/umlsequencenode.cpp b/src/uml/internal/umlsequencenode.cpp
deleted file mode 100644
index 005a3f9a..00000000
--- a/src/uml/internal/umlsequencenode.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlsequencenode_p.h"
-
-#include "private/umlexecutablenode_p.h"
-
-UmlSequenceNode::UmlSequenceNode()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlExecutableNode *> UmlSequenceNode::executableNode() const
-{
- // This is a read-write association end
-
- return _executableNode;
-}
-
-void UmlSequenceNode::addExecutableNode(UmlExecutableNode *executableNode)
-{
- // This is a read-write association end
-
- if (!_executableNode.contains(executableNode)) {
- _executableNode.append(executableNode);
- }
-}
-
-void UmlSequenceNode::removeExecutableNode(UmlExecutableNode *executableNode)
-{
- // This is a read-write association end
-
- if (_executableNode.contains(executableNode)) {
- _executableNode.removeAll(executableNode);
- }
-}
-
diff --git a/src/uml/internal/umlsequencenode_p.h b/src/uml/internal/umlsequencenode_p.h
deleted file mode 100644
index 979ca7fe..00000000
--- a/src/uml/internal/umlsequencenode_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSEQUENCENODE_H
-#define UMLSEQUENCENODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuredactivitynode_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlExecutableNode;
-
-class Q_UML_EXPORT UmlSequenceNode : public UmlStructuredActivityNode
-{
-public:
- Q_DECL_HIDDEN explicit UmlSequenceNode();
-
- // Owned attributes
- const QList<UmlExecutableNode *> executableNode() const;
- void addExecutableNode(UmlExecutableNode *executableNode);
- void removeExecutableNode(UmlExecutableNode *executableNode);
-
-protected:
- QList<UmlExecutableNode *> _executableNode;
-};
-
-#endif // UMLSEQUENCENODE_H
-
diff --git a/src/uml/internal/umlsignal.cpp b/src/uml/internal/umlsignal.cpp
deleted file mode 100644
index 63d07577..00000000
--- a/src/uml/internal/umlsignal.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlsignal_p.h"
-
-#include "private/umlproperty_p.h"
-
-UmlSignal::UmlSignal()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlProperty *> UmlSignal::ownedAttribute() const
-{
- // This is a read-write association end
-
- return _ownedAttribute;
-}
-
-void UmlSignal::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (!_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.append(ownedAttribute);
-
- // Adjust subsetted properties
- addOwnedMember(ownedAttribute);
- addAttribute(ownedAttribute);
- }
-}
-
-void UmlSignal::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.removeAll(ownedAttribute);
-
- // Adjust subsetted properties
- removeOwnedMember(ownedAttribute);
- removeAttribute(ownedAttribute);
- }
-}
-
diff --git a/src/uml/internal/umlsignal_p.h b/src/uml/internal/umlsignal_p.h
deleted file mode 100644
index e9c15694..00000000
--- a/src/uml/internal/umlsignal_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSIGNAL_H
-#define UMLSIGNAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlProperty;
-
-class Q_UML_EXPORT UmlSignal : public UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlSignal();
-
- // Owned attributes
- const QList<UmlProperty *> ownedAttribute() const;
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
-
-protected:
- QList<UmlProperty *> _ownedAttribute;
-};
-
-#endif // UMLSIGNAL_H
-
diff --git a/src/uml/internal/umlsignalevent.cpp b/src/uml/internal/umlsignalevent.cpp
deleted file mode 100644
index bc63ecc9..00000000
--- a/src/uml/internal/umlsignalevent.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlsignalevent_p.h"
-
-#include "private/umlsignal_p.h"
-
-UmlSignalEvent::UmlSignalEvent() :
- _signal(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlSignal *UmlSignalEvent::signal() const
-{
- // This is a read-write association end
-
- return _signal;
-}
-
-void UmlSignalEvent::setSignal(UmlSignal *signal)
-{
- // This is a read-write association end
-
- if (_signal != signal) {
- _signal = signal;
- }
-}
-
diff --git a/src/uml/internal/umlsignalevent_p.h b/src/uml/internal/umlsignalevent_p.h
deleted file mode 100644
index ad5024de..00000000
--- a/src/uml/internal/umlsignalevent_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSIGNALEVENT_H
-#define UMLSIGNALEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmessageevent_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlSignal;
-
-class Q_UML_EXPORT UmlSignalEvent : public UmlMessageEvent
-{
-public:
- Q_DECL_HIDDEN explicit UmlSignalEvent();
-
- // Owned attributes
- UmlSignal *signal() const;
- void setSignal(UmlSignal *signal);
-
-protected:
- UmlSignal *_signal;
-};
-
-#endif // UMLSIGNALEVENT_H
-
diff --git a/src/uml/internal/umlslot.cpp b/src/uml/internal/umlslot.cpp
deleted file mode 100644
index d14cd800..00000000
--- a/src/uml/internal/umlslot.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlslot_p.h"
-
-#include "private/umlinstancespecification_p.h"
-#include "private/umlstructuralfeature_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlSlot::UmlSlot() :
- _definingFeature(0),
- _owningInstance(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlStructuralFeature *UmlSlot::definingFeature() const
-{
- // This is a read-write association end
-
- return _definingFeature;
-}
-
-void UmlSlot::setDefiningFeature(UmlStructuralFeature *definingFeature)
-{
- // This is a read-write association end
-
- if (_definingFeature != definingFeature) {
- _definingFeature = definingFeature;
- }
-}
-
-UmlInstanceSpecification *UmlSlot::owningInstance() const
-{
- // This is a read-write association end
-
- return _owningInstance;
-}
-
-void UmlSlot::setOwningInstance(UmlInstanceSpecification *owningInstance)
-{
- // This is a read-write association end
-
- if (_owningInstance != owningInstance) {
- // Adjust subsetted properties
-
- _owningInstance = owningInstance;
-
- // Adjust subsetted properties
- setOwner(owningInstance);
- }
-}
-
-const QList<UmlValueSpecification *> UmlSlot::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlSlot::addValue(UmlValueSpecification *value)
-{
- // This is a read-write association end
-
- if (!_value.contains(value)) {
- _value.append(value);
-
- // Adjust subsetted properties
- addOwnedElement(value);
- }
-}
-
-void UmlSlot::removeValue(UmlValueSpecification *value)
-{
- // This is a read-write association end
-
- if (_value.contains(value)) {
- _value.removeAll(value);
-
- // Adjust subsetted properties
- removeOwnedElement(value);
- }
-}
-
diff --git a/src/uml/internal/umlslot_p.h b/src/uml/internal/umlslot_p.h
deleted file mode 100644
index b9acc743..00000000
--- a/src/uml/internal/umlslot_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSLOT_H
-#define UMLSLOT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInstanceSpecification;
-class UmlStructuralFeature;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlSlot : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlSlot();
-
- // Owned attributes
- UmlStructuralFeature *definingFeature() const;
- void setDefiningFeature(UmlStructuralFeature *definingFeature);
- UmlInstanceSpecification *owningInstance() const;
- void setOwningInstance(UmlInstanceSpecification *owningInstance);
- const QList<UmlValueSpecification *> value() const;
- void addValue(UmlValueSpecification *value);
- void removeValue(UmlValueSpecification *value);
-
-protected:
- UmlStructuralFeature *_definingFeature;
- UmlInstanceSpecification *_owningInstance;
- QList<UmlValueSpecification *> _value;
-};
-
-#endif // UMLSLOT_H
-
diff --git a/src/uml/internal/umlstartclassifierbehavioraction.cpp b/src/uml/internal/umlstartclassifierbehavioraction.cpp
deleted file mode 100644
index 23beab16..00000000
--- a/src/uml/internal/umlstartclassifierbehavioraction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstartclassifierbehavioraction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlStartClassifierBehaviorAction::UmlStartClassifierBehaviorAction() :
- _object(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlStartClassifierBehaviorAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlStartClassifierBehaviorAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
diff --git a/src/uml/internal/umlstartclassifierbehavioraction_p.h b/src/uml/internal/umlstartclassifierbehavioraction_p.h
deleted file mode 100644
index c74da6e0..00000000
--- a/src/uml/internal/umlstartclassifierbehavioraction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTARTCLASSIFIERBEHAVIORACTION_H
-#define UMLSTARTCLASSIFIERBEHAVIORACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlStartClassifierBehaviorAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlStartClassifierBehaviorAction();
-
- // Owned attributes
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
-
-protected:
- UmlInputPin *_object;
-};
-
-#endif // UMLSTARTCLASSIFIERBEHAVIORACTION_H
-
diff --git a/src/uml/internal/umlstartobjectbehavioraction.cpp b/src/uml/internal/umlstartobjectbehavioraction.cpp
deleted file mode 100644
index 5d811ddb..00000000
--- a/src/uml/internal/umlstartobjectbehavioraction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstartobjectbehavioraction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlStartObjectBehaviorAction::UmlStartObjectBehaviorAction() :
- _object(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlStartObjectBehaviorAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlStartObjectBehaviorAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
diff --git a/src/uml/internal/umlstartobjectbehavioraction_p.h b/src/uml/internal/umlstartobjectbehavioraction_p.h
deleted file mode 100644
index 9bbdf177..00000000
--- a/src/uml/internal/umlstartobjectbehavioraction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTARTOBJECTBEHAVIORACTION_H
-#define UMLSTARTOBJECTBEHAVIORACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlcallaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlStartObjectBehaviorAction : public UmlCallAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlStartObjectBehaviorAction();
-
- // Owned attributes
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
-
-protected:
- UmlInputPin *_object;
-};
-
-#endif // UMLSTARTOBJECTBEHAVIORACTION_H
-
diff --git a/src/uml/internal/umlstate.cpp b/src/uml/internal/umlstate.cpp
deleted file mode 100644
index 5790e476..00000000
--- a/src/uml/internal/umlstate.cpp
+++ /dev/null
@@ -1,486 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstate_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlclassifier_p.h"
-#include "private/umlconnectionpointreference_p.h"
-#include "private/umlconstraint_p.h"
-#include "private/umlpseudostate_p.h"
-#include "private/umlregion_p.h"
-#include "private/umlstatemachine_p.h"
-#include "private/umltrigger_p.h"
-
-UmlState::UmlState() :
- _doActivity(0),
- _entry(0),
- _exit(0),
- _redefinedState(0),
- _stateInvariant(0),
- _submachine(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlConnectionPointReference *> UmlState::connection() const
-{
- // This is a read-write association end
-
- return _connection;
-}
-
-void UmlState::addConnection(UmlConnectionPointReference *connection)
-{
- // This is a read-write association end
-
- if (!_connection.contains(connection)) {
- _connection.insert(connection);
-
- // Adjust subsetted properties
- addOwnedMember(connection);
-
- // Adjust opposite properties
- if (connection) {
- connection->setState(this);
- }
- }
-}
-
-void UmlState::removeConnection(UmlConnectionPointReference *connection)
-{
- // This is a read-write association end
-
- if (_connection.contains(connection)) {
- _connection.remove(connection);
-
- // Adjust subsetted properties
- removeOwnedMember(connection);
-
- // Adjust opposite properties
- if (connection) {
- connection->setState(0);
- }
- }
-}
-
-const QSet<UmlPseudostate *> UmlState::connectionPoint() const
-{
- // This is a read-write association end
-
- return _connectionPoint;
-}
-
-void UmlState::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- // This is a read-write association end
-
- if (!_connectionPoint.contains(connectionPoint)) {
- _connectionPoint.insert(connectionPoint);
-
- // Adjust subsetted properties
- addOwnedMember(connectionPoint);
-
- // Adjust opposite properties
- if (connectionPoint) {
- connectionPoint->setState(this);
- }
- }
-}
-
-void UmlState::removeConnectionPoint(UmlPseudostate *connectionPoint)
-{
- // This is a read-write association end
-
- if (_connectionPoint.contains(connectionPoint)) {
- _connectionPoint.remove(connectionPoint);
-
- // Adjust subsetted properties
- removeOwnedMember(connectionPoint);
-
- // Adjust opposite properties
- if (connectionPoint) {
- connectionPoint->setState(0);
- }
- }
-}
-
-const QSet<UmlTrigger *> UmlState::deferrableTrigger() const
-{
- // This is a read-write association end
-
- return _deferrableTrigger;
-}
-
-void UmlState::addDeferrableTrigger(UmlTrigger *deferrableTrigger)
-{
- // This is a read-write association end
-
- if (!_deferrableTrigger.contains(deferrableTrigger)) {
- _deferrableTrigger.insert(deferrableTrigger);
-
- // Adjust subsetted properties
- addOwnedElement(deferrableTrigger);
- }
-}
-
-void UmlState::removeDeferrableTrigger(UmlTrigger *deferrableTrigger)
-{
- // This is a read-write association end
-
- if (_deferrableTrigger.contains(deferrableTrigger)) {
- _deferrableTrigger.remove(deferrableTrigger);
-
- // Adjust subsetted properties
- removeOwnedElement(deferrableTrigger);
- }
-}
-
-UmlBehavior *UmlState::doActivity() const
-{
- // This is a read-write association end
-
- return _doActivity;
-}
-
-void UmlState::setDoActivity(UmlBehavior *doActivity)
-{
- // This is a read-write association end
-
- if (_doActivity != doActivity) {
- // Adjust subsetted properties
- removeOwnedElement(_doActivity);
-
- _doActivity = doActivity;
-
- // Adjust subsetted properties
- if (doActivity) {
- addOwnedElement(doActivity);
- }
- }
-}
-
-UmlBehavior *UmlState::entry() const
-{
- // This is a read-write association end
-
- return _entry;
-}
-
-void UmlState::setEntry(UmlBehavior *entry)
-{
- // This is a read-write association end
-
- if (_entry != entry) {
- // Adjust subsetted properties
- removeOwnedElement(_entry);
-
- _entry = entry;
-
- // Adjust subsetted properties
- if (entry) {
- addOwnedElement(entry);
- }
- }
-}
-
-UmlBehavior *UmlState::exit() const
-{
- // This is a read-write association end
-
- return _exit;
-}
-
-void UmlState::setExit(UmlBehavior *exit)
-{
- // This is a read-write association end
-
- if (_exit != exit) {
- // Adjust subsetted properties
- removeOwnedElement(_exit);
-
- _exit = exit;
-
- // Adjust subsetted properties
- if (exit) {
- addOwnedElement(exit);
- }
- }
-}
-
-bool UmlState::isComposite() const
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isComposite(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlState::setComposite(bool isComposite)
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isComposite(): to be implemented (this is a derived property)");
- Q_UNUSED(isComposite);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-bool UmlState::isOrthogonal() const
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isOrthogonal(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlState::setOrthogonal(bool isOrthogonal)
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isOrthogonal(): to be implemented (this is a derived property)");
- Q_UNUSED(isOrthogonal);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-bool UmlState::isSimple() const
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isSimple(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlState::setSimple(bool isSimple)
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isSimple(): to be implemented (this is a derived property)");
- Q_UNUSED(isSimple);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-bool UmlState::isSubmachineState() const
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isSubmachineState(): to be implemented (this is a derived property)");
-
- return bool();
-}
-
-void UmlState::setSubmachineState(bool isSubmachineState)
-{
- // This is a read-only derived property
-
- qWarning("UmlState::isSubmachineState(): to be implemented (this is a derived property)");
- Q_UNUSED(isSubmachineState);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlState *UmlState::redefinedState() const
-{
- // This is a read-write association end
-
- return _redefinedState;
-}
-
-void UmlState::setRedefinedState(UmlState *redefinedState)
-{
- // This is a read-write association end
-
- if (_redefinedState != redefinedState) {
- // Adjust subsetted properties
- removeRedefinedElement(_redefinedState);
-
- _redefinedState = redefinedState;
-
- // Adjust subsetted properties
- if (redefinedState) {
- addRedefinedElement(redefinedState);
- }
- }
-}
-
-UmlClassifier *UmlState::redefinitionContext() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlState::redefinitionContext(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlState::setRedefinitionContext(UmlClassifier *redefinitionContext)
-{
- // This is a read-only derived association end
-
- qWarning("UmlState::redefinitionContext(): to be implemented (this is a derived association end)");
- Q_UNUSED(redefinitionContext);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlRegion *> UmlState::region() const
-{
- // This is a read-write association end
-
- return _region;
-}
-
-void UmlState::addRegion(UmlRegion *region)
-{
- // This is a read-write association end
-
- if (!_region.contains(region)) {
- _region.insert(region);
-
- // Adjust subsetted properties
- addOwnedMember(region);
-
- // Adjust opposite properties
- if (region) {
- region->setState(this);
- }
- }
-}
-
-void UmlState::removeRegion(UmlRegion *region)
-{
- // This is a read-write association end
-
- if (_region.contains(region)) {
- _region.remove(region);
-
- // Adjust subsetted properties
- removeOwnedMember(region);
-
- // Adjust opposite properties
- if (region) {
- region->setState(0);
- }
- }
-}
-
-UmlConstraint *UmlState::stateInvariant() const
-{
- // This is a read-write association end
-
- return _stateInvariant;
-}
-
-void UmlState::setStateInvariant(UmlConstraint *stateInvariant)
-{
- // This is a read-write association end
-
- if (_stateInvariant != stateInvariant) {
- // Adjust subsetted properties
- removeOwnedRule(_stateInvariant);
-
- _stateInvariant = stateInvariant;
-
- // Adjust subsetted properties
- if (stateInvariant) {
- addOwnedRule(stateInvariant);
- }
- }
-}
-
-UmlStateMachine *UmlState::submachine() const
-{
- // This is a read-write association end
-
- return _submachine;
-}
-
-void UmlState::setSubmachine(UmlStateMachine *submachine)
-{
- // This is a read-write association end
-
- if (_submachine != submachine) {
- _submachine = submachine;
- }
-}
-
-// OPERATIONS
-
-UmlStateMachine *UmlState::containingStateMachine(
- ) const
-{
- qWarning("UmlState::containingStateMachine(): to be implemented (operation)");
-
- return 0;
-}
-
-bool UmlState::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlState::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
-bool UmlState::isRedefinitionContextValid(
- UmlState *redefined) const
-{
- qWarning("UmlState::isRedefinitionContextValid(): to be implemented (operation)");
-
- Q_UNUSED(redefined);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlstate_p.h b/src/uml/internal/umlstate_p.h
deleted file mode 100644
index 3f278c06..00000000
--- a/src/uml/internal/umlstate_p.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTATE_H
-#define UMLSTATE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamespace_p.h"
-#include "private/umlredefinableelement_p.h"
-#include "private/umlvertex_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlBehavior;
-class UmlClassifier;
-class UmlConnectionPointReference;
-class UmlConstraint;
-class UmlPseudostate;
-class UmlRegion;
-class UmlStateMachine;
-class UmlTrigger;
-
-class Q_UML_EXPORT UmlState : public UmlNamespace, public UmlRedefinableElement, public UmlVertex
-{
-public:
- Q_DECL_HIDDEN explicit UmlState();
-
- // Owned attributes
- const QSet<UmlConnectionPointReference *> connection() const;
- void addConnection(UmlConnectionPointReference *connection);
- void removeConnection(UmlConnectionPointReference *connection);
- const QSet<UmlPseudostate *> connectionPoint() const;
- void addConnectionPoint(UmlPseudostate *connectionPoint);
- void removeConnectionPoint(UmlPseudostate *connectionPoint);
- const QSet<UmlTrigger *> deferrableTrigger() const;
- void addDeferrableTrigger(UmlTrigger *deferrableTrigger);
- void removeDeferrableTrigger(UmlTrigger *deferrableTrigger);
- UmlBehavior *doActivity() const;
- void setDoActivity(UmlBehavior *doActivity);
- UmlBehavior *entry() const;
- void setEntry(UmlBehavior *entry);
- UmlBehavior *exit() const;
- void setExit(UmlBehavior *exit);
- bool isComposite() const;
- Q_DECL_HIDDEN void setComposite(bool isComposite);
- bool isOrthogonal() const;
- Q_DECL_HIDDEN void setOrthogonal(bool isOrthogonal);
- bool isSimple() const;
- Q_DECL_HIDDEN void setSimple(bool isSimple);
- bool isSubmachineState() const;
- Q_DECL_HIDDEN void setSubmachineState(bool isSubmachineState);
- UmlState *redefinedState() const;
- void setRedefinedState(UmlState *redefinedState);
- UmlClassifier *redefinitionContext() const;
- Q_DECL_HIDDEN void setRedefinitionContext(UmlClassifier *redefinitionContext);
- const QSet<UmlRegion *> region() const;
- void addRegion(UmlRegion *region);
- void removeRegion(UmlRegion *region);
- UmlConstraint *stateInvariant() const;
- void setStateInvariant(UmlConstraint *stateInvariant);
- UmlStateMachine *submachine() const;
- void setSubmachine(UmlStateMachine *submachine);
-
- // Operations
- UmlStateMachine *containingStateMachine() const;
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
- bool isRedefinitionContextValid(UmlState *redefined) const;
-
-protected:
- QSet<UmlConnectionPointReference *> _connection;
- QSet<UmlPseudostate *> _connectionPoint;
- QSet<UmlTrigger *> _deferrableTrigger;
- UmlBehavior *_doActivity;
- UmlBehavior *_entry;
- UmlBehavior *_exit;
- UmlState *_redefinedState;
- QSet<UmlRegion *> _region;
- UmlConstraint *_stateInvariant;
- UmlStateMachine *_submachine;
-};
-
-#endif // UMLSTATE_H
-
diff --git a/src/uml/internal/umlstateinvariant.cpp b/src/uml/internal/umlstateinvariant.cpp
deleted file mode 100644
index 63c1f514..00000000
--- a/src/uml/internal/umlstateinvariant.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstateinvariant_p.h"
-
-#include "private/umlconstraint_p.h"
-#include "private/umllifeline_p.h"
-
-UmlStateInvariant::UmlStateInvariant() :
- _covered(0),
- _invariant(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlLifeline *UmlStateInvariant::covered() const
-{
- // This is a read-write association end
-
- return _covered;
-}
-
-void UmlStateInvariant::setCovered(UmlLifeline *covered)
-{
- // This is a read-write association end
-
- if (_covered != covered) {
- _covered = covered;
- }
-}
-
-UmlConstraint *UmlStateInvariant::invariant() const
-{
- // This is a read-write association end
-
- return _invariant;
-}
-
-void UmlStateInvariant::setInvariant(UmlConstraint *invariant)
-{
- // This is a read-write association end
-
- if (_invariant != invariant) {
- // Adjust subsetted properties
- removeOwnedElement(_invariant);
-
- _invariant = invariant;
-
- // Adjust subsetted properties
- if (invariant) {
- addOwnedElement(invariant);
- }
- }
-}
-
diff --git a/src/uml/internal/umlstateinvariant_p.h b/src/uml/internal/umlstateinvariant_p.h
deleted file mode 100644
index 76d5798b..00000000
--- a/src/uml/internal/umlstateinvariant_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTATEINVARIANT_H
-#define UMLSTATEINVARIANT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinteractionfragment_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConstraint;
-class UmlLifeline;
-
-class Q_UML_EXPORT UmlStateInvariant : public UmlInteractionFragment
-{
-public:
- Q_DECL_HIDDEN explicit UmlStateInvariant();
-
- // Owned attributes
- UmlLifeline *covered() const;
- void setCovered(UmlLifeline *covered);
- UmlConstraint *invariant() const;
- void setInvariant(UmlConstraint *invariant);
-
-protected:
- UmlLifeline *_covered;
- UmlConstraint *_invariant;
-};
-
-#endif // UMLSTATEINVARIANT_H
-
diff --git a/src/uml/internal/umlstatemachine.cpp b/src/uml/internal/umlstatemachine.cpp
deleted file mode 100644
index 176d1b99..00000000
--- a/src/uml/internal/umlstatemachine.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstatemachine_p.h"
-
-#include "private/umlnamespace_p.h"
-#include "private/umlpseudostate_p.h"
-#include "private/umlredefinableelement_p.h"
-#include "private/umlregion_p.h"
-#include "private/umlstate_p.h"
-
-UmlStateMachine::UmlStateMachine()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlPseudostate *> UmlStateMachine::connectionPoint() const
-{
- // This is a read-write association end
-
- return _connectionPoint;
-}
-
-void UmlStateMachine::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- // This is a read-write association end
-
- if (!_connectionPoint.contains(connectionPoint)) {
- _connectionPoint.insert(connectionPoint);
-
- // Adjust subsetted properties
- addOwnedMember(connectionPoint);
-
- // Adjust opposite properties
- if (connectionPoint) {
- connectionPoint->setStateMachine(this);
- }
- }
-}
-
-void UmlStateMachine::removeConnectionPoint(UmlPseudostate *connectionPoint)
-{
- // This is a read-write association end
-
- if (_connectionPoint.contains(connectionPoint)) {
- _connectionPoint.remove(connectionPoint);
-
- // Adjust subsetted properties
- removeOwnedMember(connectionPoint);
-
- // Adjust opposite properties
- if (connectionPoint) {
- connectionPoint->setStateMachine(0);
- }
- }
-}
-
-const QSet<UmlStateMachine *> UmlStateMachine::extendedStateMachine() const
-{
- // This is a read-write association end
-
- return _extendedStateMachine;
-}
-
-void UmlStateMachine::addExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- // This is a read-write association end
-
- if (!_extendedStateMachine.contains(extendedStateMachine)) {
- _extendedStateMachine.insert(extendedStateMachine);
- }
-}
-
-void UmlStateMachine::removeExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- // This is a read-write association end
-
- if (_extendedStateMachine.contains(extendedStateMachine)) {
- _extendedStateMachine.remove(extendedStateMachine);
- }
-}
-
-const QSet<UmlRegion *> UmlStateMachine::region() const
-{
- // This is a read-write association end
-
- return _region;
-}
-
-void UmlStateMachine::addRegion(UmlRegion *region)
-{
- // This is a read-write association end
-
- if (!_region.contains(region)) {
- _region.insert(region);
-
- // Adjust subsetted properties
- addOwnedMember(region);
-
- // Adjust opposite properties
- if (region) {
- region->setStateMachine(this);
- }
- }
-}
-
-void UmlStateMachine::removeRegion(UmlRegion *region)
-{
- // This is a read-write association end
-
- if (_region.contains(region)) {
- _region.remove(region);
-
- // Adjust subsetted properties
- removeOwnedMember(region);
-
- // Adjust opposite properties
- if (region) {
- region->setStateMachine(0);
- }
- }
-}
-
-const QSet<UmlState *> UmlStateMachine::submachineState() const
-{
- // This is a read-write association end
-
- return _submachineState;
-}
-
-void UmlStateMachine::addSubmachineState(UmlState *submachineState)
-{
- // This is a read-write association end
-
- if (!_submachineState.contains(submachineState)) {
- _submachineState.insert(submachineState);
-
- // Adjust opposite properties
- if (submachineState) {
- submachineState->setSubmachine(this);
- }
- }
-}
-
-void UmlStateMachine::removeSubmachineState(UmlState *submachineState)
-{
- // This is a read-write association end
-
- if (_submachineState.contains(submachineState)) {
- _submachineState.remove(submachineState);
-
- // Adjust opposite properties
- if (submachineState) {
- submachineState->setSubmachine(0);
- }
- }
-}
-
-// OPERATIONS
-
-UmlNamespace *UmlStateMachine::LCA(
- UmlState *s1, UmlState *s2) const
-{
- qWarning("UmlStateMachine::LCA(): to be implemented (operation)");
-
- Q_UNUSED(s1);
- Q_UNUSED(s2);
- return 0;
-}
-
-bool UmlStateMachine::ancestor(
- UmlState *s1, UmlState *s2) const
-{
- qWarning("UmlStateMachine::ancestor(): to be implemented (operation)");
-
- Q_UNUSED(s1);
- Q_UNUSED(s2);
- return bool ();
-}
-
-bool UmlStateMachine::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlStateMachine::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
-bool UmlStateMachine::isRedefinitionContextValid(
- UmlStateMachine *redefined) const
-{
- qWarning("UmlStateMachine::isRedefinitionContextValid(): to be implemented (operation)");
-
- Q_UNUSED(redefined);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlstatemachine_p.h b/src/uml/internal/umlstatemachine_p.h
deleted file mode 100644
index 475c864b..00000000
--- a/src/uml/internal/umlstatemachine_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTATEMACHINE_H
-#define UMLSTATEMACHINE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavior_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamespace;
-class UmlPseudostate;
-class UmlRedefinableElement;
-class UmlRegion;
-class UmlState;
-
-class Q_UML_EXPORT UmlStateMachine : public UmlBehavior
-{
-public:
- Q_DECL_HIDDEN explicit UmlStateMachine();
-
- // Owned attributes
- const QSet<UmlPseudostate *> connectionPoint() const;
- void addConnectionPoint(UmlPseudostate *connectionPoint);
- void removeConnectionPoint(UmlPseudostate *connectionPoint);
- const QSet<UmlStateMachine *> extendedStateMachine() const;
- void addExtendedStateMachine(UmlStateMachine *extendedStateMachine);
- void removeExtendedStateMachine(UmlStateMachine *extendedStateMachine);
- const QSet<UmlRegion *> region() const;
- void addRegion(UmlRegion *region);
- void removeRegion(UmlRegion *region);
- const QSet<UmlState *> submachineState() const;
- void addSubmachineState(UmlState *submachineState);
- void removeSubmachineState(UmlState *submachineState);
-
- // Operations
- UmlNamespace *LCA(UmlState *s1, UmlState *s2) const;
- bool ancestor(UmlState *s1, UmlState *s2) const;
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
- bool isRedefinitionContextValid(UmlStateMachine *redefined) const;
-
-protected:
- QSet<UmlPseudostate *> _connectionPoint;
- QSet<UmlStateMachine *> _extendedStateMachine;
- QSet<UmlRegion *> _region;
- QSet<UmlState *> _submachineState;
-};
-
-#endif // UMLSTATEMACHINE_H
-
diff --git a/src/uml/internal/umlstereotype.cpp b/src/uml/internal/umlstereotype.cpp
deleted file mode 100644
index f1dd1ea3..00000000
--- a/src/uml/internal/umlstereotype.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstereotype_p.h"
-
-#include "private/umlimage_p.h"
-#include "private/umlprofile_p.h"
-
-UmlStereotype::UmlStereotype()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlImage *> UmlStereotype::icon() const
-{
- // This is a read-write association end
-
- return _icon;
-}
-
-void UmlStereotype::addIcon(UmlImage *icon)
-{
- // This is a read-write association end
-
- if (!_icon.contains(icon)) {
- _icon.insert(icon);
-
- // Adjust subsetted properties
- addOwnedElement(icon);
- }
-}
-
-void UmlStereotype::removeIcon(UmlImage *icon)
-{
- // This is a read-write association end
-
- if (_icon.contains(icon)) {
- _icon.remove(icon);
-
- // Adjust subsetted properties
- removeOwnedElement(icon);
- }
-}
-
-UmlProfile *UmlStereotype::profile() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlStereotype::profile(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlStereotype::setProfile(UmlProfile *profile)
-{
- // This is a read-only derived association end
-
- qWarning("UmlStereotype::profile(): to be implemented (this is a derived association end)");
- Q_UNUSED(profile);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-// OPERATIONS
-
-UmlProfile *UmlStereotype::containingProfile(
- ) const
-{
- qWarning("UmlStereotype::containingProfile(): to be implemented (operation)");
-
- return 0;
-}
-
diff --git a/src/uml/internal/umlstereotype_p.h b/src/uml/internal/umlstereotype_p.h
deleted file mode 100644
index 38005fac..00000000
--- a/src/uml/internal/umlstereotype_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTEREOTYPE_H
-#define UMLSTEREOTYPE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclass_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlImage;
-class UmlProfile;
-
-class Q_UML_EXPORT UmlStereotype : public UmlClass
-{
-public:
- Q_DECL_HIDDEN explicit UmlStereotype();
-
- // Owned attributes
- const QSet<UmlImage *> icon() const;
- void addIcon(UmlImage *icon);
- void removeIcon(UmlImage *icon);
- UmlProfile *profile() const;
- Q_DECL_HIDDEN void setProfile(UmlProfile *profile);
-
- // Operations
- UmlProfile *containingProfile() const;
-
-protected:
- QSet<UmlImage *> _icon;
-};
-
-#endif // UMLSTEREOTYPE_H
-
diff --git a/src/uml/internal/umlstringexpression.cpp b/src/uml/internal/umlstringexpression.cpp
deleted file mode 100644
index 8b9fb70c..00000000
--- a/src/uml/internal/umlstringexpression.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstringexpression_p.h"
-
-UmlStringExpression::UmlStringExpression() :
- _owningExpression(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlStringExpression *UmlStringExpression::owningExpression() const
-{
- // This is a read-write association end
-
- return _owningExpression;
-}
-
-void UmlStringExpression::setOwningExpression(UmlStringExpression *owningExpression)
-{
- // This is a read-write association end
-
- if (_owningExpression != owningExpression) {
- // Adjust subsetted properties
-
- _owningExpression = owningExpression;
-
- // Adjust subsetted properties
- setOwner(owningExpression);
- }
-}
-
-const QSet<UmlStringExpression *> UmlStringExpression::subExpression() const
-{
- // This is a read-write association end
-
- return _subExpression;
-}
-
-void UmlStringExpression::addSubExpression(UmlStringExpression *subExpression)
-{
- // This is a read-write association end
-
- if (!_subExpression.contains(subExpression)) {
- _subExpression.insert(subExpression);
-
- // Adjust subsetted properties
- addOwnedElement(subExpression);
- }
-}
-
-void UmlStringExpression::removeSubExpression(UmlStringExpression *subExpression)
-{
- // This is a read-write association end
-
- if (_subExpression.contains(subExpression)) {
- _subExpression.remove(subExpression);
-
- // Adjust subsetted properties
- removeOwnedElement(subExpression);
- }
-}
-
-// OPERATIONS
-
-QString UmlStringExpression::stringValue(
- ) const
-{
- qWarning("UmlStringExpression::stringValue(): to be implemented (operation)");
-
- return QString ();
-}
-
diff --git a/src/uml/internal/umlstringexpression_p.h b/src/uml/internal/umlstringexpression_p.h
deleted file mode 100644
index 989097ab..00000000
--- a/src/uml/internal/umlstringexpression_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTRINGEXPRESSION_H
-#define UMLSTRINGEXPRESSION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlexpression_p.h"
-#include "private/umltemplateableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlStringExpression : public UmlExpression, public UmlTemplateableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlStringExpression();
-
- // Owned attributes
- UmlStringExpression *owningExpression() const;
- void setOwningExpression(UmlStringExpression *owningExpression);
- const QSet<UmlStringExpression *> subExpression() const;
- void addSubExpression(UmlStringExpression *subExpression);
- void removeSubExpression(UmlStringExpression *subExpression);
-
- // Operations
- QString stringValue() const;
-
-protected:
- UmlStringExpression *_owningExpression;
- QSet<UmlStringExpression *> _subExpression;
-};
-
-#endif // UMLSTRINGEXPRESSION_H
-
diff --git a/src/uml/internal/umlstructuralfeature.cpp b/src/uml/internal/umlstructuralfeature.cpp
deleted file mode 100644
index e5e3c669..00000000
--- a/src/uml/internal/umlstructuralfeature.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstructuralfeature_p.h"
-
-UmlStructuralFeature::UmlStructuralFeature() :
- _isReadOnly(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlStructuralFeature::isReadOnly() const
-{
- // This is a read-write property
-
- return _isReadOnly;
-}
-
-void UmlStructuralFeature::setReadOnly(bool isReadOnly)
-{
- // This is a read-write property
-
- if (_isReadOnly != isReadOnly) {
- _isReadOnly = isReadOnly;
- }
-}
-
diff --git a/src/uml/internal/umlstructuralfeature_p.h b/src/uml/internal/umlstructuralfeature_p.h
deleted file mode 100644
index 5b28180d..00000000
--- a/src/uml/internal/umlstructuralfeature_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTRUCTURALFEATURE_H
-#define UMLSTRUCTURALFEATURE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltypedelement_p.h"
-#include "private/umlmultiplicityelement_p.h"
-#include "private/umlfeature_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlStructuralFeature : public virtual UmlTypedElement, public UmlMultiplicityElement, public UmlFeature
-{
-public:
- Q_DECL_HIDDEN explicit UmlStructuralFeature();
-
- // Owned attributes
- bool isReadOnly() const;
- void setReadOnly(bool isReadOnly);
-
-protected:
- bool _isReadOnly;
-};
-
-#endif // UMLSTRUCTURALFEATURE_H
-
diff --git a/src/uml/internal/umlstructuralfeatureaction.cpp b/src/uml/internal/umlstructuralfeatureaction.cpp
deleted file mode 100644
index a40cdc25..00000000
--- a/src/uml/internal/umlstructuralfeatureaction.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstructuralfeatureaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umlstructuralfeature_p.h"
-
-UmlStructuralFeatureAction::UmlStructuralFeatureAction() :
- _object(0),
- _structuralFeature(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlStructuralFeatureAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlStructuralFeatureAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
-UmlStructuralFeature *UmlStructuralFeatureAction::structuralFeature() const
-{
- // This is a read-write association end
-
- return _structuralFeature;
-}
-
-void UmlStructuralFeatureAction::setStructuralFeature(UmlStructuralFeature *structuralFeature)
-{
- // This is a read-write association end
-
- if (_structuralFeature != structuralFeature) {
- _structuralFeature = structuralFeature;
- }
-}
-
diff --git a/src/uml/internal/umlstructuralfeatureaction_p.h b/src/uml/internal/umlstructuralfeatureaction_p.h
deleted file mode 100644
index 2cb0b87f..00000000
--- a/src/uml/internal/umlstructuralfeatureaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTRUCTURALFEATUREACTION_H
-#define UMLSTRUCTURALFEATUREACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlStructuralFeature;
-
-class Q_UML_EXPORT UmlStructuralFeatureAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlStructuralFeatureAction();
-
- // Owned attributes
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
- UmlStructuralFeature *structuralFeature() const;
- void setStructuralFeature(UmlStructuralFeature *structuralFeature);
-
-protected:
- UmlInputPin *_object;
- UmlStructuralFeature *_structuralFeature;
-};
-
-#endif // UMLSTRUCTURALFEATUREACTION_H
-
diff --git a/src/uml/internal/umlstructuredactivitynode.cpp b/src/uml/internal/umlstructuredactivitynode.cpp
deleted file mode 100644
index c29bda90..00000000
--- a/src/uml/internal/umlstructuredactivitynode.cpp
+++ /dev/null
@@ -1,278 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstructuredactivitynode_p.h"
-
-#include "private/umlactivity_p.h"
-#include "private/umlactivityedge_p.h"
-#include "private/umlactivitynode_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-#include "private/umlvariable_p.h"
-
-UmlStructuredActivityNode::UmlStructuredActivityNode() :
- _activity(0),
- _mustIsolate(false)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlActivity *UmlStructuredActivityNode::activity() const
-{
- // This is a read-write association end
-
- return _activity;
-}
-
-void UmlStructuredActivityNode::setActivity(UmlActivity *activity)
-{
- // This is a read-write association end
-
- if (_activity != activity) {
- _activity = activity;
- }
-}
-
-const QSet<UmlActivityEdge *> UmlStructuredActivityNode::edge() const
-{
- // This is a read-write association end
-
- return _edge;
-}
-
-void UmlStructuredActivityNode::addEdge(UmlActivityEdge *edge)
-{
- // This is a read-write association end
-
- if (!_edge.contains(edge)) {
- _edge.insert(edge);
-
- // Adjust subsetted properties
- addContainedEdge(edge);
- addOwnedElement(edge);
-
- // Adjust opposite properties
- if (edge) {
- edge->setInStructuredNode(this);
- }
- }
-}
-
-void UmlStructuredActivityNode::removeEdge(UmlActivityEdge *edge)
-{
- // This is a read-write association end
-
- if (_edge.contains(edge)) {
- _edge.remove(edge);
-
- // Adjust subsetted properties
- removeContainedEdge(edge);
- removeOwnedElement(edge);
-
- // Adjust opposite properties
- if (edge) {
- edge->setInStructuredNode(0);
- }
- }
-}
-
-bool UmlStructuredActivityNode::mustIsolate() const
-{
- // This is a read-write property
-
- return _mustIsolate;
-}
-
-void UmlStructuredActivityNode::setMustIsolate(bool mustIsolate)
-{
- // This is a read-write property
-
- if (_mustIsolate != mustIsolate) {
- _mustIsolate = mustIsolate;
- }
-}
-
-const QSet<UmlActivityNode *> UmlStructuredActivityNode::node() const
-{
- // This is a read-write association end
-
- return _node;
-}
-
-void UmlStructuredActivityNode::addNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (!_node.contains(node)) {
- _node.insert(node);
-
- // Adjust subsetted properties
- addContainedNode(node);
- addOwnedElement(node);
-
- // Adjust opposite properties
- if (node) {
- node->setInStructuredNode(this);
- }
- }
-}
-
-void UmlStructuredActivityNode::removeNode(UmlActivityNode *node)
-{
- // This is a read-write association end
-
- if (_node.contains(node)) {
- _node.remove(node);
-
- // Adjust subsetted properties
- removeContainedNode(node);
- removeOwnedElement(node);
-
- // Adjust opposite properties
- if (node) {
- node->setInStructuredNode(0);
- }
- }
-}
-
-const QSet<UmlInputPin *> UmlStructuredActivityNode::structuredNodeInput() const
-{
- // This is a read-write association end
-
- return _structuredNodeInput;
-}
-
-void UmlStructuredActivityNode::addStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- // This is a read-write association end
-
- if (!_structuredNodeInput.contains(structuredNodeInput)) {
- _structuredNodeInput.insert(structuredNodeInput);
-
- // Adjust subsetted properties
- addInput(structuredNodeInput);
- }
-}
-
-void UmlStructuredActivityNode::removeStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- // This is a read-write association end
-
- if (_structuredNodeInput.contains(structuredNodeInput)) {
- _structuredNodeInput.remove(structuredNodeInput);
-
- // Adjust subsetted properties
- removeInput(structuredNodeInput);
- }
-}
-
-const QSet<UmlOutputPin *> UmlStructuredActivityNode::structuredNodeOutput() const
-{
- // This is a read-write association end
-
- return _structuredNodeOutput;
-}
-
-void UmlStructuredActivityNode::addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- // This is a read-write association end
-
- if (!_structuredNodeOutput.contains(structuredNodeOutput)) {
- _structuredNodeOutput.insert(structuredNodeOutput);
-
- // Adjust subsetted properties
- addOutput(structuredNodeOutput);
- }
-}
-
-void UmlStructuredActivityNode::removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- // This is a read-write association end
-
- if (_structuredNodeOutput.contains(structuredNodeOutput)) {
- _structuredNodeOutput.remove(structuredNodeOutput);
-
- // Adjust subsetted properties
- removeOutput(structuredNodeOutput);
- }
-}
-
-const QSet<UmlVariable *> UmlStructuredActivityNode::variable() const
-{
- // This is a read-write association end
-
- return _variable;
-}
-
-void UmlStructuredActivityNode::addVariable(UmlVariable *variable)
-{
- // This is a read-write association end
-
- if (!_variable.contains(variable)) {
- _variable.insert(variable);
-
- // Adjust subsetted properties
- addOwnedMember(variable);
-
- // Adjust opposite properties
- if (variable) {
- variable->setScope(this);
- }
- }
-}
-
-void UmlStructuredActivityNode::removeVariable(UmlVariable *variable)
-{
- // This is a read-write association end
-
- if (_variable.contains(variable)) {
- _variable.remove(variable);
-
- // Adjust subsetted properties
- removeOwnedMember(variable);
-
- // Adjust opposite properties
- if (variable) {
- variable->setScope(0);
- }
- }
-}
-
diff --git a/src/uml/internal/umlstructuredactivitynode_p.h b/src/uml/internal/umlstructuredactivitynode_p.h
deleted file mode 100644
index 9268adf8..00000000
--- a/src/uml/internal/umlstructuredactivitynode_p.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTRUCTUREDACTIVITYNODE_H
-#define UMLSTRUCTUREDACTIVITYNODE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-#include "private/umlnamespace_p.h"
-#include "private/umlactivitygroup_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlActivity;
-class UmlActivityEdge;
-class UmlActivityNode;
-class UmlInputPin;
-class UmlOutputPin;
-class UmlVariable;
-
-class Q_UML_EXPORT UmlStructuredActivityNode : public UmlAction, public UmlNamespace, public UmlActivityGroup
-{
-public:
- Q_DECL_HIDDEN explicit UmlStructuredActivityNode();
-
- // Owned attributes
- UmlActivity *activity() const;
- void setActivity(UmlActivity *activity);
- const QSet<UmlActivityEdge *> edge() const;
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- bool mustIsolate() const;
- void setMustIsolate(bool mustIsolate);
- const QSet<UmlActivityNode *> node() const;
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- const QSet<UmlInputPin *> structuredNodeInput() const;
- void addStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void removeStructuredNodeInput(UmlInputPin *structuredNodeInput);
- const QSet<UmlOutputPin *> structuredNodeOutput() const;
- void addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- const QSet<UmlVariable *> variable() const;
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
-
-protected:
- UmlActivity *_activity;
- QSet<UmlActivityEdge *> _edge;
- bool _mustIsolate;
- QSet<UmlActivityNode *> _node;
- QSet<UmlInputPin *> _structuredNodeInput;
- QSet<UmlOutputPin *> _structuredNodeOutput;
- QSet<UmlVariable *> _variable;
-};
-
-#endif // UMLSTRUCTUREDACTIVITYNODE_H
-
diff --git a/src/uml/internal/umlstructuredclassifier.cpp b/src/uml/internal/umlstructuredclassifier.cpp
deleted file mode 100644
index 129d763b..00000000
--- a/src/uml/internal/umlstructuredclassifier.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlstructuredclassifier_p.h"
-
-#include "private/umlconnectableelement_p.h"
-#include "private/umlconnector_p.h"
-#include "private/umlproperty_p.h"
-
-UmlStructuredClassifier::UmlStructuredClassifier()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlProperty *> UmlStructuredClassifier::ownedAttribute() const
-{
- // This is a read-write association end
-
- return _ownedAttribute;
-}
-
-void UmlStructuredClassifier::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (!_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.append(ownedAttribute);
-
- // Adjust subsetted properties
- addAttribute(ownedAttribute);
- addOwnedMember(ownedAttribute);
- addRole(ownedAttribute);
- }
-}
-
-void UmlStructuredClassifier::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- // This is a read-write association end
-
- if (_ownedAttribute.contains(ownedAttribute)) {
- _ownedAttribute.removeAll(ownedAttribute);
-
- // Adjust subsetted properties
- removeAttribute(ownedAttribute);
- removeOwnedMember(ownedAttribute);
- removeRole(ownedAttribute);
- }
-}
-
-const QSet<UmlConnector *> UmlStructuredClassifier::ownedConnector() const
-{
- // This is a read-write association end
-
- return _ownedConnector;
-}
-
-void UmlStructuredClassifier::addOwnedConnector(UmlConnector *ownedConnector)
-{
- // This is a read-write association end
-
- if (!_ownedConnector.contains(ownedConnector)) {
- _ownedConnector.insert(ownedConnector);
-
- // Adjust subsetted properties
- addFeature(ownedConnector);
- addOwnedMember(ownedConnector);
- }
-}
-
-void UmlStructuredClassifier::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- // This is a read-write association end
-
- if (_ownedConnector.contains(ownedConnector)) {
- _ownedConnector.remove(ownedConnector);
-
- // Adjust subsetted properties
- removeFeature(ownedConnector);
- removeOwnedMember(ownedConnector);
- }
-}
-
-const QSet<UmlProperty *> UmlStructuredClassifier::part() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlStructuredClassifier::part(): to be implemented (this is a derived association end)");
-
- return QSet<UmlProperty *>();
-}
-
-void UmlStructuredClassifier::addPart(UmlProperty *part)
-{
- // This is a read-only derived association end
-
- qWarning("UmlStructuredClassifier::part(): to be implemented (this is a derived association end)");
- Q_UNUSED(part);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-void UmlStructuredClassifier::removePart(UmlProperty *part)
-{
- // This is a read-only derived association end
-
- qWarning("UmlStructuredClassifier::part(): to be implemented (this is a derived association end)");
- Q_UNUSED(part);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-const QSet<UmlConnectableElement *> UmlStructuredClassifier::role() const
-{
- // This is a read-only derived union association end
-
- return _role;
-}
-
-void UmlStructuredClassifier::addRole(UmlConnectableElement *role)
-{
- // This is a read-only derived union association end
-
- if (!_role.contains(role)) {
- _role.insert(role);
-
- // Adjust subsetted properties
- addMember(role);
- }
-}
-
-void UmlStructuredClassifier::removeRole(UmlConnectableElement *role)
-{
- // This is a read-only derived union association end
-
- if (_role.contains(role)) {
- _role.remove(role);
-
- // Adjust subsetted properties
- removeMember(role);
- }
-}
-
diff --git a/src/uml/internal/umlstructuredclassifier_p.h b/src/uml/internal/umlstructuredclassifier_p.h
deleted file mode 100644
index e35cd7e8..00000000
--- a/src/uml/internal/umlstructuredclassifier_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSTRUCTUREDCLASSIFIER_H
-#define UMLSTRUCTUREDCLASSIFIER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlConnectableElement;
-class UmlConnector;
-class UmlProperty;
-
-class Q_UML_EXPORT UmlStructuredClassifier : public virtual UmlClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlStructuredClassifier();
-
- // Owned attributes
- const QList<UmlProperty *> ownedAttribute() const;
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- const QSet<UmlConnector *> ownedConnector() const;
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
- const QSet<UmlProperty *> part() const;
- Q_DECL_HIDDEN void addPart(UmlProperty *part);
- Q_DECL_HIDDEN void removePart(UmlProperty *part);
- const QSet<UmlConnectableElement *> role() const;
- Q_DECL_HIDDEN void addRole(UmlConnectableElement *role);
- Q_DECL_HIDDEN void removeRole(UmlConnectableElement *role);
-
-protected:
- QList<UmlProperty *> _ownedAttribute;
- QSet<UmlConnector *> _ownedConnector;
- QSet<UmlConnectableElement *> _role;
-};
-
-#endif // UMLSTRUCTUREDCLASSIFIER_H
-
diff --git a/src/uml/internal/umlsubstitution.cpp b/src/uml/internal/umlsubstitution.cpp
deleted file mode 100644
index 7e2f0ca3..00000000
--- a/src/uml/internal/umlsubstitution.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlsubstitution_p.h"
-
-#include "private/umlclassifier_p.h"
-
-UmlSubstitution::UmlSubstitution() :
- _contract(0),
- _substitutingClassifier(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlClassifier *UmlSubstitution::contract() const
-{
- // This is a read-write association end
-
- return _contract;
-}
-
-void UmlSubstitution::setContract(UmlClassifier *contract)
-{
- // This is a read-write association end
-
- if (_contract != contract) {
- // Adjust subsetted properties
- removeSupplier(_contract);
-
- _contract = contract;
-
- // Adjust subsetted properties
- if (contract) {
- addSupplier(contract);
- }
- }
-}
-
-UmlClassifier *UmlSubstitution::substitutingClassifier() const
-{
- // This is a read-write association end
-
- return _substitutingClassifier;
-}
-
-void UmlSubstitution::setSubstitutingClassifier(UmlClassifier *substitutingClassifier)
-{
- // This is a read-write association end
-
- if (_substitutingClassifier != substitutingClassifier) {
- // Adjust subsetted properties
- removeClient(_substitutingClassifier);
-
- _substitutingClassifier = substitutingClassifier;
-
- // Adjust subsetted properties
- setOwner(substitutingClassifier);
- if (substitutingClassifier) {
- addClient(substitutingClassifier);
- }
- }
-}
-
diff --git a/src/uml/internal/umlsubstitution_p.h b/src/uml/internal/umlsubstitution_p.h
deleted file mode 100644
index 4959ce02..00000000
--- a/src/uml/internal/umlsubstitution_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLSUBSTITUTION_H
-#define UMLSUBSTITUTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlrealization_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-
-class Q_UML_EXPORT UmlSubstitution : public UmlRealization
-{
-public:
- Q_DECL_HIDDEN explicit UmlSubstitution();
-
- // Owned attributes
- UmlClassifier *contract() const;
- void setContract(UmlClassifier *contract);
- UmlClassifier *substitutingClassifier() const;
- void setSubstitutingClassifier(UmlClassifier *substitutingClassifier);
-
-protected:
- UmlClassifier *_contract;
- UmlClassifier *_substitutingClassifier;
-};
-
-#endif // UMLSUBSTITUTION_H
-
diff --git a/src/uml/internal/umltemplateableelement.cpp b/src/uml/internal/umltemplateableelement.cpp
deleted file mode 100644
index 7ab87f2e..00000000
--- a/src/uml/internal/umltemplateableelement.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltemplateableelement_p.h"
-
-#include "private/umlparameterableelement_p.h"
-#include "private/umltemplatebinding_p.h"
-#include "private/umltemplatesignature_p.h"
-
-UmlTemplateableElement::UmlTemplateableElement() :
- _ownedTemplateSignature(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlTemplateSignature *UmlTemplateableElement::ownedTemplateSignature() const
-{
- // This is a read-write association end
-
- return _ownedTemplateSignature;
-}
-
-void UmlTemplateableElement::setOwnedTemplateSignature(UmlTemplateSignature *ownedTemplateSignature)
-{
- // This is a read-write association end
-
- if (_ownedTemplateSignature != ownedTemplateSignature) {
- // Adjust subsetted properties
- removeOwnedElement(_ownedTemplateSignature);
-
- _ownedTemplateSignature = ownedTemplateSignature;
-
- // Adjust subsetted properties
- if (ownedTemplateSignature) {
- addOwnedElement(ownedTemplateSignature);
- }
- }
-}
-
-const QSet<UmlTemplateBinding *> UmlTemplateableElement::templateBinding() const
-{
- // This is a read-write association end
-
- return _templateBinding;
-}
-
-void UmlTemplateableElement::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- // This is a read-write association end
-
- if (!_templateBinding.contains(templateBinding)) {
- _templateBinding.insert(templateBinding);
-
- // Adjust subsetted properties
- addOwnedElement(templateBinding);
-
- // Adjust opposite properties
- if (templateBinding) {
- templateBinding->setBoundElement(this);
- }
- }
-}
-
-void UmlTemplateableElement::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- // This is a read-write association end
-
- if (_templateBinding.contains(templateBinding)) {
- _templateBinding.remove(templateBinding);
-
- // Adjust subsetted properties
- removeOwnedElement(templateBinding);
-
- // Adjust opposite properties
- if (templateBinding) {
- templateBinding->setBoundElement(0);
- }
- }
-}
-
-// OPERATIONS
-
-bool UmlTemplateableElement::isTemplate(
- ) const
-{
- qWarning("UmlTemplateableElement::isTemplate(): to be implemented (operation)");
-
- return bool ();
-}
-
-QSet<UmlParameterableElement *> UmlTemplateableElement::parameterableElements(
- ) const
-{
- qWarning("UmlTemplateableElement::parameterableElements(): to be implemented (operation)");
-
- return QSet<UmlParameterableElement *> ();
-}
-
diff --git a/src/uml/internal/umltemplateableelement_p.h b/src/uml/internal/umltemplateableelement_p.h
deleted file mode 100644
index f03cc0f0..00000000
--- a/src/uml/internal/umltemplateableelement_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTEMPLATEABLEELEMENT_H
-#define UMLTEMPLATEABLEELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlParameterableElement;
-class UmlTemplateBinding;
-class UmlTemplateSignature;
-
-class Q_UML_EXPORT UmlTemplateableElement : public virtual UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlTemplateableElement();
-
- // Owned attributes
- UmlTemplateSignature *ownedTemplateSignature() const;
- void setOwnedTemplateSignature(UmlTemplateSignature *ownedTemplateSignature);
- const QSet<UmlTemplateBinding *> templateBinding() const;
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Operations
- bool isTemplate() const;
- QSet<UmlParameterableElement *> parameterableElements() const;
-
-protected:
- UmlTemplateSignature *_ownedTemplateSignature;
- QSet<UmlTemplateBinding *> _templateBinding;
-};
-
-#endif // UMLTEMPLATEABLEELEMENT_H
-
diff --git a/src/uml/internal/umltemplatebinding.cpp b/src/uml/internal/umltemplatebinding.cpp
deleted file mode 100644
index c96f4970..00000000
--- a/src/uml/internal/umltemplatebinding.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltemplatebinding_p.h"
-
-#include "private/umltemplateableelement_p.h"
-#include "private/umltemplateparametersubstitution_p.h"
-#include "private/umltemplatesignature_p.h"
-
-UmlTemplateBinding::UmlTemplateBinding() :
- _boundElement(0),
- _signature(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlTemplateableElement *UmlTemplateBinding::boundElement() const
-{
- // This is a read-write association end
-
- return _boundElement;
-}
-
-void UmlTemplateBinding::setBoundElement(UmlTemplateableElement *boundElement)
-{
- // This is a read-write association end
-
- if (_boundElement != boundElement) {
- // Adjust subsetted properties
- removeSource(_boundElement);
-
- _boundElement = boundElement;
-
- // Adjust subsetted properties
- setOwner(boundElement);
- if (boundElement) {
- addSource(boundElement);
- }
- }
-}
-
-const QSet<UmlTemplateParameterSubstitution *> UmlTemplateBinding::parameterSubstitution() const
-{
- // This is a read-write association end
-
- return _parameterSubstitution;
-}
-
-void UmlTemplateBinding::addParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution)
-{
- // This is a read-write association end
-
- if (!_parameterSubstitution.contains(parameterSubstitution)) {
- _parameterSubstitution.insert(parameterSubstitution);
-
- // Adjust subsetted properties
- addOwnedElement(parameterSubstitution);
-
- // Adjust opposite properties
- if (parameterSubstitution) {
- parameterSubstitution->setTemplateBinding(this);
- }
- }
-}
-
-void UmlTemplateBinding::removeParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution)
-{
- // This is a read-write association end
-
- if (_parameterSubstitution.contains(parameterSubstitution)) {
- _parameterSubstitution.remove(parameterSubstitution);
-
- // Adjust subsetted properties
- removeOwnedElement(parameterSubstitution);
-
- // Adjust opposite properties
- if (parameterSubstitution) {
- parameterSubstitution->setTemplateBinding(0);
- }
- }
-}
-
-UmlTemplateSignature *UmlTemplateBinding::signature() const
-{
- // This is a read-write association end
-
- return _signature;
-}
-
-void UmlTemplateBinding::setSignature(UmlTemplateSignature *signature)
-{
- // This is a read-write association end
-
- if (_signature != signature) {
- // Adjust subsetted properties
- removeTarget(_signature);
-
- _signature = signature;
-
- // Adjust subsetted properties
- if (signature) {
- addTarget(signature);
- }
- }
-}
-
diff --git a/src/uml/internal/umltemplatebinding_p.h b/src/uml/internal/umltemplatebinding_p.h
deleted file mode 100644
index 9dd789bb..00000000
--- a/src/uml/internal/umltemplatebinding_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTEMPLATEBINDING_H
-#define UMLTEMPLATEBINDING_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldirectedrelationship_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlTemplateableElement;
-class UmlTemplateParameterSubstitution;
-class UmlTemplateSignature;
-
-class Q_UML_EXPORT UmlTemplateBinding : public UmlDirectedRelationship
-{
-public:
- Q_DECL_HIDDEN explicit UmlTemplateBinding();
-
- // Owned attributes
- UmlTemplateableElement *boundElement() const;
- void setBoundElement(UmlTemplateableElement *boundElement);
- const QSet<UmlTemplateParameterSubstitution *> parameterSubstitution() const;
- void addParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution);
- void removeParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution);
- UmlTemplateSignature *signature() const;
- void setSignature(UmlTemplateSignature *signature);
-
-protected:
- UmlTemplateableElement *_boundElement;
- QSet<UmlTemplateParameterSubstitution *> _parameterSubstitution;
- UmlTemplateSignature *_signature;
-};
-
-#endif // UMLTEMPLATEBINDING_H
-
diff --git a/src/uml/internal/umltemplateparameter.cpp b/src/uml/internal/umltemplateparameter.cpp
deleted file mode 100644
index c8680c9d..00000000
--- a/src/uml/internal/umltemplateparameter.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltemplateparameter_p.h"
-
-#include "private/umlparameterableelement_p.h"
-#include "private/umltemplatesignature_p.h"
-
-UmlTemplateParameter::UmlTemplateParameter() :
- _default_(0),
- _ownedDefault(0),
- _ownedParameteredElement(0),
- _parameteredElement(0),
- _signature(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlParameterableElement *UmlTemplateParameter::default_() const
-{
- // This is a read-write association end
-
- return _default_;
-}
-
-void UmlTemplateParameter::setDefault(UmlParameterableElement *default_)
-{
- // This is a read-write association end
-
- if (_default_ != default_) {
- _default_ = default_;
- }
-}
-
-UmlParameterableElement *UmlTemplateParameter::ownedDefault() const
-{
- // This is a read-write association end
-
- return _ownedDefault;
-}
-
-void UmlTemplateParameter::setOwnedDefault(UmlParameterableElement *ownedDefault)
-{
- // This is a read-write association end
-
- if (_ownedDefault != ownedDefault) {
- // Adjust subsetted properties
- removeOwnedElement(_ownedDefault);
-
- _ownedDefault = ownedDefault;
-
- // Adjust subsetted properties
- if (ownedDefault) {
- addOwnedElement(ownedDefault);
- }
- setDefault(ownedDefault);
- }
-}
-
-UmlParameterableElement *UmlTemplateParameter::ownedParameteredElement() const
-{
- // This is a read-write association end
-
- return _ownedParameteredElement;
-}
-
-void UmlTemplateParameter::setOwnedParameteredElement(UmlParameterableElement *ownedParameteredElement)
-{
- // This is a read-write association end
-
- if (_ownedParameteredElement != ownedParameteredElement) {
- // Adjust subsetted properties
- removeOwnedElement(_ownedParameteredElement);
-
- _ownedParameteredElement = ownedParameteredElement;
-
- // Adjust subsetted properties
- setParameteredElement(ownedParameteredElement);
- if (ownedParameteredElement) {
- addOwnedElement(ownedParameteredElement);
- }
- }
-}
-
-UmlParameterableElement *UmlTemplateParameter::parameteredElement() const
-{
- // This is a read-write association end
-
- return _parameteredElement;
-}
-
-void UmlTemplateParameter::setParameteredElement(UmlParameterableElement *parameteredElement)
-{
- // This is a read-write association end
-
- if (_parameteredElement != parameteredElement) {
- _parameteredElement = parameteredElement;
- }
-}
-
-UmlTemplateSignature *UmlTemplateParameter::signature() const
-{
- // This is a read-write association end
-
- return _signature;
-}
-
-void UmlTemplateParameter::setSignature(UmlTemplateSignature *signature)
-{
- // This is a read-write association end
-
- if (_signature != signature) {
- // Adjust subsetted properties
-
- _signature = signature;
-
- // Adjust subsetted properties
- setOwner(signature);
- }
-}
-
diff --git a/src/uml/internal/umltemplateparameter_p.h b/src/uml/internal/umltemplateparameter_p.h
deleted file mode 100644
index 7dd8f1cd..00000000
--- a/src/uml/internal/umltemplateparameter_p.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTEMPLATEPARAMETER_H
-#define UMLTEMPLATEPARAMETER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlParameterableElement;
-class UmlTemplateSignature;
-
-class Q_UML_EXPORT UmlTemplateParameter : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlTemplateParameter();
-
- // Owned attributes
- UmlParameterableElement *default_() const;
- void setDefault(UmlParameterableElement *default_);
- UmlParameterableElement *ownedDefault() const;
- void setOwnedDefault(UmlParameterableElement *ownedDefault);
- UmlParameterableElement *ownedParameteredElement() const;
- void setOwnedParameteredElement(UmlParameterableElement *ownedParameteredElement);
- UmlParameterableElement *parameteredElement() const;
- void setParameteredElement(UmlParameterableElement *parameteredElement);
- UmlTemplateSignature *signature() const;
- void setSignature(UmlTemplateSignature *signature);
-
-protected:
- UmlParameterableElement *_default_;
- UmlParameterableElement *_ownedDefault;
- UmlParameterableElement *_ownedParameteredElement;
- UmlParameterableElement *_parameteredElement;
- UmlTemplateSignature *_signature;
-};
-
-#endif // UMLTEMPLATEPARAMETER_H
-
diff --git a/src/uml/internal/umltemplateparametersubstitution.cpp b/src/uml/internal/umltemplateparametersubstitution.cpp
deleted file mode 100644
index 31153167..00000000
--- a/src/uml/internal/umltemplateparametersubstitution.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltemplateparametersubstitution_p.h"
-
-#include "private/umlparameterableelement_p.h"
-#include "private/umltemplatebinding_p.h"
-#include "private/umltemplateparameter_p.h"
-
-UmlTemplateParameterSubstitution::UmlTemplateParameterSubstitution() :
- _actual(0),
- _formal(0),
- _ownedActual(0),
- _templateBinding(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlParameterableElement *UmlTemplateParameterSubstitution::actual() const
-{
- // This is a read-write association end
-
- return _actual;
-}
-
-void UmlTemplateParameterSubstitution::setActual(UmlParameterableElement *actual)
-{
- // This is a read-write association end
-
- if (_actual != actual) {
- _actual = actual;
- }
-}
-
-UmlTemplateParameter *UmlTemplateParameterSubstitution::formal() const
-{
- // This is a read-write association end
-
- return _formal;
-}
-
-void UmlTemplateParameterSubstitution::setFormal(UmlTemplateParameter *formal)
-{
- // This is a read-write association end
-
- if (_formal != formal) {
- _formal = formal;
- }
-}
-
-UmlParameterableElement *UmlTemplateParameterSubstitution::ownedActual() const
-{
- // This is a read-write association end
-
- return _ownedActual;
-}
-
-void UmlTemplateParameterSubstitution::setOwnedActual(UmlParameterableElement *ownedActual)
-{
- // This is a read-write association end
-
- if (_ownedActual != ownedActual) {
- // Adjust subsetted properties
- removeOwnedElement(_ownedActual);
-
- _ownedActual = ownedActual;
-
- // Adjust subsetted properties
- if (ownedActual) {
- addOwnedElement(ownedActual);
- }
- setActual(ownedActual);
- }
-}
-
-UmlTemplateBinding *UmlTemplateParameterSubstitution::templateBinding() const
-{
- // This is a read-write association end
-
- return _templateBinding;
-}
-
-void UmlTemplateParameterSubstitution::setTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- // This is a read-write association end
-
- if (_templateBinding != templateBinding) {
- // Adjust subsetted properties
-
- _templateBinding = templateBinding;
-
- // Adjust subsetted properties
- setOwner(templateBinding);
- }
-}
-
diff --git a/src/uml/internal/umltemplateparametersubstitution_p.h b/src/uml/internal/umltemplateparametersubstitution_p.h
deleted file mode 100644
index a5518365..00000000
--- a/src/uml/internal/umltemplateparametersubstitution_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTEMPLATEPARAMETERSUBSTITUTION_H
-#define UMLTEMPLATEPARAMETERSUBSTITUTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlParameterableElement;
-class UmlTemplateBinding;
-class UmlTemplateParameter;
-
-class Q_UML_EXPORT UmlTemplateParameterSubstitution : public UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlTemplateParameterSubstitution();
-
- // Owned attributes
- UmlParameterableElement *actual() const;
- void setActual(UmlParameterableElement *actual);
- UmlTemplateParameter *formal() const;
- void setFormal(UmlTemplateParameter *formal);
- UmlParameterableElement *ownedActual() const;
- void setOwnedActual(UmlParameterableElement *ownedActual);
- UmlTemplateBinding *templateBinding() const;
- void setTemplateBinding(UmlTemplateBinding *templateBinding);
-
-protected:
- UmlParameterableElement *_actual;
- UmlTemplateParameter *_formal;
- UmlParameterableElement *_ownedActual;
- UmlTemplateBinding *_templateBinding;
-};
-
-#endif // UMLTEMPLATEPARAMETERSUBSTITUTION_H
-
diff --git a/src/uml/internal/umltemplatesignature.cpp b/src/uml/internal/umltemplatesignature.cpp
deleted file mode 100644
index 0944313f..00000000
--- a/src/uml/internal/umltemplatesignature.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltemplatesignature_p.h"
-
-#include "private/umltemplateableelement_p.h"
-#include "private/umltemplateparameter_p.h"
-
-UmlTemplateSignature::UmlTemplateSignature() :
- _template_(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QList<UmlTemplateParameter *> UmlTemplateSignature::ownedParameter() const
-{
- // This is a read-write association end
-
- return _ownedParameter;
-}
-
-void UmlTemplateSignature::addOwnedParameter(UmlTemplateParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (!_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.append(ownedParameter);
-
- // Adjust subsetted properties
- addParameter(ownedParameter);
- addOwnedElement(ownedParameter);
-
- // Adjust opposite properties
- if (ownedParameter) {
- ownedParameter->setSignature(this);
- }
- }
-}
-
-void UmlTemplateSignature::removeOwnedParameter(UmlTemplateParameter *ownedParameter)
-{
- // This is a read-write association end
-
- if (_ownedParameter.contains(ownedParameter)) {
- _ownedParameter.removeAll(ownedParameter);
-
- // Adjust subsetted properties
- removeParameter(ownedParameter);
- removeOwnedElement(ownedParameter);
-
- // Adjust opposite properties
- if (ownedParameter) {
- ownedParameter->setSignature(0);
- }
- }
-}
-
-const QList<UmlTemplateParameter *> UmlTemplateSignature::parameter() const
-{
- // This is a read-write association end
-
- return _parameter;
-}
-
-void UmlTemplateSignature::addParameter(UmlTemplateParameter *parameter)
-{
- // This is a read-write association end
-
- if (!_parameter.contains(parameter)) {
- _parameter.append(parameter);
- }
-}
-
-void UmlTemplateSignature::removeParameter(UmlTemplateParameter *parameter)
-{
- // This is a read-write association end
-
- if (_parameter.contains(parameter)) {
- _parameter.removeAll(parameter);
- }
-}
-
-UmlTemplateableElement *UmlTemplateSignature::template_() const
-{
- // This is a read-write association end
-
- return _template_;
-}
-
-void UmlTemplateSignature::setTemplate(UmlTemplateableElement *template_)
-{
- // This is a read-write association end
-
- if (_template_ != template_) {
- // Adjust subsetted properties
-
- _template_ = template_;
-
- // Adjust subsetted properties
- setOwner(template_);
- }
-}
-
diff --git a/src/uml/internal/umltemplatesignature_p.h b/src/uml/internal/umltemplatesignature_p.h
deleted file mode 100644
index b6258dfe..00000000
--- a/src/uml/internal/umltemplatesignature_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTEMPLATESIGNATURE_H
-#define UMLTEMPLATESIGNATURE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlTemplateableElement;
-class UmlTemplateParameter;
-
-class Q_UML_EXPORT UmlTemplateSignature : public virtual UmlElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlTemplateSignature();
-
- // Owned attributes
- const QList<UmlTemplateParameter *> ownedParameter() const;
- void addOwnedParameter(UmlTemplateParameter *ownedParameter);
- void removeOwnedParameter(UmlTemplateParameter *ownedParameter);
- const QList<UmlTemplateParameter *> parameter() const;
- void addParameter(UmlTemplateParameter *parameter);
- void removeParameter(UmlTemplateParameter *parameter);
- UmlTemplateableElement *template_() const;
- void setTemplate(UmlTemplateableElement *template_);
-
-protected:
- QList<UmlTemplateParameter *> _ownedParameter;
- QList<UmlTemplateParameter *> _parameter;
- UmlTemplateableElement *_template_;
-};
-
-#endif // UMLTEMPLATESIGNATURE_H
-
diff --git a/src/uml/internal/umltestidentityaction.cpp b/src/uml/internal/umltestidentityaction.cpp
deleted file mode 100644
index fd45c937..00000000
--- a/src/uml/internal/umltestidentityaction.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltestidentityaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlTestIdentityAction::UmlTestIdentityAction() :
- _first(0),
- _result(0),
- _second(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlTestIdentityAction::first() const
-{
- // This is a read-write association end
-
- return _first;
-}
-
-void UmlTestIdentityAction::setFirst(UmlInputPin *first)
-{
- // This is a read-write association end
-
- if (_first != first) {
- // Adjust subsetted properties
- removeInput(_first);
-
- _first = first;
-
- // Adjust subsetted properties
- if (first) {
- addInput(first);
- }
- }
-}
-
-UmlOutputPin *UmlTestIdentityAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlTestIdentityAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
-UmlInputPin *UmlTestIdentityAction::second() const
-{
- // This is a read-write association end
-
- return _second;
-}
-
-void UmlTestIdentityAction::setSecond(UmlInputPin *second)
-{
- // This is a read-write association end
-
- if (_second != second) {
- // Adjust subsetted properties
- removeInput(_second);
-
- _second = second;
-
- // Adjust subsetted properties
- if (second) {
- addInput(second);
- }
- }
-}
-
diff --git a/src/uml/internal/umltestidentityaction_p.h b/src/uml/internal/umltestidentityaction_p.h
deleted file mode 100644
index a542a0fd..00000000
--- a/src/uml/internal/umltestidentityaction_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTESTIDENTITYACTION_H
-#define UMLTESTIDENTITYACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlTestIdentityAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlTestIdentityAction();
-
- // Owned attributes
- UmlInputPin *first() const;
- void setFirst(UmlInputPin *first);
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
- UmlInputPin *second() const;
- void setSecond(UmlInputPin *second);
-
-protected:
- UmlInputPin *_first;
- UmlOutputPin *_result;
- UmlInputPin *_second;
-};
-
-#endif // UMLTESTIDENTITYACTION_H
-
diff --git a/src/uml/internal/umltimeconstraint.cpp b/src/uml/internal/umltimeconstraint.cpp
deleted file mode 100644
index 5b7cad8a..00000000
--- a/src/uml/internal/umltimeconstraint.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltimeconstraint_p.h"
-
-#include "private/umltimeinterval_p.h"
-
-UmlTimeConstraint::UmlTimeConstraint() :
- _firstEvent(true),
- _specification(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlTimeConstraint::firstEvent() const
-{
- // This is a read-write property
-
- return _firstEvent;
-}
-
-void UmlTimeConstraint::setFirstEvent(bool firstEvent)
-{
- // This is a read-write property
-
- if (_firstEvent != firstEvent) {
- _firstEvent = firstEvent;
- }
-}
-
-UmlTimeInterval *UmlTimeConstraint::specification() const
-{
- // This is a read-write association end
-
- return _specification;
-}
-
-void UmlTimeConstraint::setSpecification(UmlTimeInterval *specification)
-{
- // This is a read-write association end
-
- if (_specification != specification) {
- _specification = specification;
- }
-}
-
diff --git a/src/uml/internal/umltimeconstraint_p.h b/src/uml/internal/umltimeconstraint_p.h
deleted file mode 100644
index 7cb9443b..00000000
--- a/src/uml/internal/umltimeconstraint_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTIMECONSTRAINT_H
-#define UMLTIMECONSTRAINT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlintervalconstraint_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlTimeInterval;
-
-class Q_UML_EXPORT UmlTimeConstraint : public UmlIntervalConstraint
-{
-public:
- Q_DECL_HIDDEN explicit UmlTimeConstraint();
-
- // Owned attributes
- bool firstEvent() const;
- void setFirstEvent(bool firstEvent);
- UmlTimeInterval *specification() const;
- void setSpecification(UmlTimeInterval *specification);
-
-protected:
- bool _firstEvent;
- UmlTimeInterval *_specification;
-};
-
-#endif // UMLTIMECONSTRAINT_H
-
diff --git a/src/uml/internal/umltimeevent.cpp b/src/uml/internal/umltimeevent.cpp
deleted file mode 100644
index 431a3f68..00000000
--- a/src/uml/internal/umltimeevent.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltimeevent_p.h"
-
-#include "private/umltimeexpression_p.h"
-
-UmlTimeEvent::UmlTimeEvent() :
- _isRelative(false),
- _when(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-bool UmlTimeEvent::isRelative() const
-{
- // This is a read-write property
-
- return _isRelative;
-}
-
-void UmlTimeEvent::setRelative(bool isRelative)
-{
- // This is a read-write property
-
- if (_isRelative != isRelative) {
- _isRelative = isRelative;
- }
-}
-
-UmlTimeExpression *UmlTimeEvent::when() const
-{
- // This is a read-write association end
-
- return _when;
-}
-
-void UmlTimeEvent::setWhen(UmlTimeExpression *when)
-{
- // This is a read-write association end
-
- if (_when != when) {
- // Adjust subsetted properties
- removeOwnedElement(_when);
-
- _when = when;
-
- // Adjust subsetted properties
- if (when) {
- addOwnedElement(when);
- }
- }
-}
-
diff --git a/src/uml/internal/umltimeevent_p.h b/src/uml/internal/umltimeevent_p.h
deleted file mode 100644
index d9750ae5..00000000
--- a/src/uml/internal/umltimeevent_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTIMEEVENT_H
-#define UMLTIMEEVENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlevent_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlTimeExpression;
-
-class Q_UML_EXPORT UmlTimeEvent : public UmlEvent
-{
-public:
- Q_DECL_HIDDEN explicit UmlTimeEvent();
-
- // Owned attributes
- bool isRelative() const;
- void setRelative(bool isRelative);
- UmlTimeExpression *when() const;
- void setWhen(UmlTimeExpression *when);
-
-protected:
- bool _isRelative;
- UmlTimeExpression *_when;
-};
-
-#endif // UMLTIMEEVENT_H
-
diff --git a/src/uml/internal/umltimeexpression.cpp b/src/uml/internal/umltimeexpression.cpp
deleted file mode 100644
index 04154f49..00000000
--- a/src/uml/internal/umltimeexpression.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltimeexpression_p.h"
-
-#include "private/umlobservation_p.h"
-
-UmlTimeExpression::UmlTimeExpression() :
- _expr(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlValueSpecification *UmlTimeExpression::expr() const
-{
- // This is a read-write association end
-
- return _expr;
-}
-
-void UmlTimeExpression::setExpr(UmlValueSpecification *expr)
-{
- // This is a read-write association end
-
- if (_expr != expr) {
- // Adjust subsetted properties
- removeOwnedElement(_expr);
-
- _expr = expr;
-
- // Adjust subsetted properties
- if (expr) {
- addOwnedElement(expr);
- }
- }
-}
-
-const QSet<UmlObservation *> UmlTimeExpression::observation() const
-{
- // This is a read-write association end
-
- return _observation;
-}
-
-void UmlTimeExpression::addObservation(UmlObservation *observation)
-{
- // This is a read-write association end
-
- if (!_observation.contains(observation)) {
- _observation.insert(observation);
- }
-}
-
-void UmlTimeExpression::removeObservation(UmlObservation *observation)
-{
- // This is a read-write association end
-
- if (_observation.contains(observation)) {
- _observation.remove(observation);
- }
-}
-
diff --git a/src/uml/internal/umltimeexpression_p.h b/src/uml/internal/umltimeexpression_p.h
deleted file mode 100644
index f203aa78..00000000
--- a/src/uml/internal/umltimeexpression_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTIMEEXPRESSION_H
-#define UMLTIMEEXPRESSION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvaluespecification_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlObservation;
-
-class Q_UML_EXPORT UmlTimeExpression : public UmlValueSpecification
-{
-public:
- Q_DECL_HIDDEN explicit UmlTimeExpression();
-
- // Owned attributes
- UmlValueSpecification *expr() const;
- void setExpr(UmlValueSpecification *expr);
- const QSet<UmlObservation *> observation() const;
- void addObservation(UmlObservation *observation);
- void removeObservation(UmlObservation *observation);
-
-protected:
- UmlValueSpecification *_expr;
- QSet<UmlObservation *> _observation;
-};
-
-#endif // UMLTIMEEXPRESSION_H
-
diff --git a/src/uml/internal/umltimeinterval.cpp b/src/uml/internal/umltimeinterval.cpp
deleted file mode 100644
index 259ba502..00000000
--- a/src/uml/internal/umltimeinterval.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltimeinterval_p.h"
-
-#include "private/umltimeexpression_p.h"
-
-UmlTimeInterval::UmlTimeInterval() :
- _max(0),
- _min(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlTimeExpression *UmlTimeInterval::max() const
-{
- // This is a read-write association end
-
- return _max;
-}
-
-void UmlTimeInterval::setMax(UmlTimeExpression *max)
-{
- // This is a read-write association end
-
- if (_max != max) {
- _max = max;
- }
-}
-
-UmlTimeExpression *UmlTimeInterval::min() const
-{
- // This is a read-write association end
-
- return _min;
-}
-
-void UmlTimeInterval::setMin(UmlTimeExpression *min)
-{
- // This is a read-write association end
-
- if (_min != min) {
- _min = min;
- }
-}
-
diff --git a/src/uml/internal/umltimeinterval_p.h b/src/uml/internal/umltimeinterval_p.h
deleted file mode 100644
index 3951b95d..00000000
--- a/src/uml/internal/umltimeinterval_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTIMEINTERVAL_H
-#define UMLTIMEINTERVAL_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinterval_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlTimeExpression;
-
-class Q_UML_EXPORT UmlTimeInterval : public UmlInterval
-{
-public:
- Q_DECL_HIDDEN explicit UmlTimeInterval();
-
- // Owned attributes
- UmlTimeExpression *max() const;
- void setMax(UmlTimeExpression *max);
- UmlTimeExpression *min() const;
- void setMin(UmlTimeExpression *min);
-
-protected:
- UmlTimeExpression *_max;
- UmlTimeExpression *_min;
-};
-
-#endif // UMLTIMEINTERVAL_H
-
diff --git a/src/uml/internal/umltimeobservation.cpp b/src/uml/internal/umltimeobservation.cpp
deleted file mode 100644
index 8f2d711b..00000000
--- a/src/uml/internal/umltimeobservation.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltimeobservation_p.h"
-
-#include "private/umlnamedelement_p.h"
-
-UmlTimeObservation::UmlTimeObservation() :
- _event(0),
- _firstEvent(true)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlNamedElement *UmlTimeObservation::event() const
-{
- // This is a read-write association end
-
- return _event;
-}
-
-void UmlTimeObservation::setEvent(UmlNamedElement *event)
-{
- // This is a read-write association end
-
- if (_event != event) {
- _event = event;
- }
-}
-
-bool UmlTimeObservation::firstEvent() const
-{
- // This is a read-write property
-
- return _firstEvent;
-}
-
-void UmlTimeObservation::setFirstEvent(bool firstEvent)
-{
- // This is a read-write property
-
- if (_firstEvent != firstEvent) {
- _firstEvent = firstEvent;
- }
-}
-
diff --git a/src/uml/internal/umltimeobservation_p.h b/src/uml/internal/umltimeobservation_p.h
deleted file mode 100644
index 152b9708..00000000
--- a/src/uml/internal/umltimeobservation_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTIMEOBSERVATION_H
-#define UMLTIMEOBSERVATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlobservation_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlNamedElement;
-
-class Q_UML_EXPORT UmlTimeObservation : public UmlObservation
-{
-public:
- Q_DECL_HIDDEN explicit UmlTimeObservation();
-
- // Owned attributes
- UmlNamedElement *event() const;
- void setEvent(UmlNamedElement *event);
- bool firstEvent() const;
- void setFirstEvent(bool firstEvent);
-
-protected:
- UmlNamedElement *_event;
- bool _firstEvent;
-};
-
-#endif // UMLTIMEOBSERVATION_H
-
diff --git a/src/uml/internal/umltransition.cpp b/src/uml/internal/umltransition.cpp
deleted file mode 100644
index fe6bb703..00000000
--- a/src/uml/internal/umltransition.cpp
+++ /dev/null
@@ -1,275 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltransition_p.h"
-
-#include "private/umlbehavior_p.h"
-#include "private/umlclassifier_p.h"
-#include "private/umlconstraint_p.h"
-#include "private/umlregion_p.h"
-#include "private/umlstatemachine_p.h"
-#include "private/umltrigger_p.h"
-#include "private/umlvertex_p.h"
-
-UmlTransition::UmlTransition() :
- _container(0),
- _effect(0),
- _guard(0),
- _kind(QtUml::TransitionKindExternal),
- _redefinedTransition(0),
- _source(0),
- _target(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlRegion *UmlTransition::container() const
-{
- // This is a read-write association end
-
- return _container;
-}
-
-void UmlTransition::setContainer(UmlRegion *container)
-{
- // This is a read-write association end
-
- if (_container != container) {
- // Adjust subsetted properties
-
- _container = container;
-
- // Adjust subsetted properties
- setNamespace(container);
- }
-}
-
-UmlBehavior *UmlTransition::effect() const
-{
- // This is a read-write association end
-
- return _effect;
-}
-
-void UmlTransition::setEffect(UmlBehavior *effect)
-{
- // This is a read-write association end
-
- if (_effect != effect) {
- // Adjust subsetted properties
- removeOwnedElement(_effect);
-
- _effect = effect;
-
- // Adjust subsetted properties
- if (effect) {
- addOwnedElement(effect);
- }
- }
-}
-
-UmlConstraint *UmlTransition::guard() const
-{
- // This is a read-write association end
-
- return _guard;
-}
-
-void UmlTransition::setGuard(UmlConstraint *guard)
-{
- // This is a read-write association end
-
- if (_guard != guard) {
- // Adjust subsetted properties
- removeOwnedRule(_guard);
-
- _guard = guard;
-
- // Adjust subsetted properties
- if (guard) {
- addOwnedRule(guard);
- }
- }
-}
-
-QtUml::TransitionKind UmlTransition::kind() const
-{
- // This is a read-write property
-
- return _kind;
-}
-
-void UmlTransition::setKind(QtUml::TransitionKind kind)
-{
- // This is a read-write property
-
- if (_kind != kind) {
- _kind = kind;
- }
-}
-
-UmlTransition *UmlTransition::redefinedTransition() const
-{
- // This is a read-write association end
-
- return _redefinedTransition;
-}
-
-void UmlTransition::setRedefinedTransition(UmlTransition *redefinedTransition)
-{
- // This is a read-write association end
-
- if (_redefinedTransition != redefinedTransition) {
- // Adjust subsetted properties
- removeRedefinedElement(_redefinedTransition);
-
- _redefinedTransition = redefinedTransition;
-
- // Adjust subsetted properties
- if (redefinedTransition) {
- addRedefinedElement(redefinedTransition);
- }
- }
-}
-
-UmlClassifier *UmlTransition::redefinitionContext() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlTransition::redefinitionContext(): to be implemented (this is a derived association end)");
-
- return 0;
-}
-
-void UmlTransition::setRedefinitionContext(UmlClassifier *redefinitionContext)
-{
- // This is a read-only derived association end
-
- qWarning("UmlTransition::redefinitionContext(): to be implemented (this is a derived association end)");
- Q_UNUSED(redefinitionContext);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
- }
-}
-
-UmlVertex *UmlTransition::source() const
-{
- // This is a read-write association end
-
- return _source;
-}
-
-void UmlTransition::setSource(UmlVertex *source)
-{
- // This is a read-write association end
-
- if (_source != source) {
- _source = source;
- }
-}
-
-UmlVertex *UmlTransition::target() const
-{
- // This is a read-write association end
-
- return _target;
-}
-
-void UmlTransition::setTarget(UmlVertex *target)
-{
- // This is a read-write association end
-
- if (_target != target) {
- _target = target;
- }
-}
-
-const QSet<UmlTrigger *> UmlTransition::trigger() const
-{
- // This is a read-write association end
-
- return _trigger;
-}
-
-void UmlTransition::addTrigger(UmlTrigger *trigger)
-{
- // This is a read-write association end
-
- if (!_trigger.contains(trigger)) {
- _trigger.insert(trigger);
-
- // Adjust subsetted properties
- addOwnedElement(trigger);
- }
-}
-
-void UmlTransition::removeTrigger(UmlTrigger *trigger)
-{
- // This is a read-write association end
-
- if (_trigger.contains(trigger)) {
- _trigger.remove(trigger);
-
- // Adjust subsetted properties
- removeOwnedElement(trigger);
- }
-}
-
-// OPERATIONS
-
-UmlStateMachine *UmlTransition::containingStateMachine(
- ) const
-{
- qWarning("UmlTransition::containingStateMachine(): to be implemented (operation)");
-
- return 0;
-}
-
-bool UmlTransition::isConsistentWith(
- UmlRedefinableElement *redefinee) const
-{
- qWarning("UmlTransition::isConsistentWith(): to be implemented (operation)");
-
- Q_UNUSED(redefinee);
- return bool ();
-}
-
diff --git a/src/uml/internal/umltransition_p.h b/src/uml/internal/umltransition_p.h
deleted file mode 100644
index 3fe35323..00000000
--- a/src/uml/internal/umltransition_p.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTRANSITION_H
-#define UMLTRANSITION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlredefinableelement_p.h"
-#include "private/umlnamespace_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-#include <QtUml/QtUmlNamespace>
-
-class UmlBehavior;
-class UmlClassifier;
-class UmlConstraint;
-class UmlRegion;
-class UmlStateMachine;
-class UmlTrigger;
-class UmlVertex;
-
-class Q_UML_EXPORT UmlTransition : public UmlRedefinableElement, public UmlNamespace
-{
-public:
- Q_DECL_HIDDEN explicit UmlTransition();
-
- // Owned attributes
- UmlRegion *container() const;
- void setContainer(UmlRegion *container);
- UmlBehavior *effect() const;
- void setEffect(UmlBehavior *effect);
- UmlConstraint *guard() const;
- void setGuard(UmlConstraint *guard);
- QtUml::TransitionKind kind() const;
- void setKind(QtUml::TransitionKind kind);
- UmlTransition *redefinedTransition() const;
- void setRedefinedTransition(UmlTransition *redefinedTransition);
- UmlClassifier *redefinitionContext() const;
- Q_DECL_HIDDEN void setRedefinitionContext(UmlClassifier *redefinitionContext);
- UmlVertex *source() const;
- void setSource(UmlVertex *source);
- UmlVertex *target() const;
- void setTarget(UmlVertex *target);
- const QSet<UmlTrigger *> trigger() const;
- void addTrigger(UmlTrigger *trigger);
- void removeTrigger(UmlTrigger *trigger);
-
- // Operations
- UmlStateMachine *containingStateMachine() const;
- bool isConsistentWith(UmlRedefinableElement *redefinee) const;
-
-protected:
- UmlRegion *_container;
- UmlBehavior *_effect;
- UmlConstraint *_guard;
- QtUml::TransitionKind _kind;
- UmlTransition *_redefinedTransition;
- UmlVertex *_source;
- UmlVertex *_target;
- QSet<UmlTrigger *> _trigger;
-};
-
-#endif // UMLTRANSITION_H
-
diff --git a/src/uml/internal/umltrigger.cpp b/src/uml/internal/umltrigger.cpp
deleted file mode 100644
index ffb04b78..00000000
--- a/src/uml/internal/umltrigger.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltrigger_p.h"
-
-#include "private/umlevent_p.h"
-#include "private/umlport_p.h"
-
-UmlTrigger::UmlTrigger() :
- _event(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlEvent *UmlTrigger::event() const
-{
- // This is a read-write association end
-
- return _event;
-}
-
-void UmlTrigger::setEvent(UmlEvent *event)
-{
- // This is a read-write association end
-
- if (_event != event) {
- _event = event;
- }
-}
-
-const QSet<UmlPort *> UmlTrigger::port() const
-{
- // This is a read-write association end
-
- return _port;
-}
-
-void UmlTrigger::addPort(UmlPort *port)
-{
- // This is a read-write association end
-
- if (!_port.contains(port)) {
- _port.insert(port);
- }
-}
-
-void UmlTrigger::removePort(UmlPort *port)
-{
- // This is a read-write association end
-
- if (_port.contains(port)) {
- _port.remove(port);
- }
-}
-
diff --git a/src/uml/internal/umltrigger_p.h b/src/uml/internal/umltrigger_p.h
deleted file mode 100644
index e45c1be3..00000000
--- a/src/uml/internal/umltrigger_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTRIGGER_H
-#define UMLTRIGGER_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlEvent;
-class UmlPort;
-
-class Q_UML_EXPORT UmlTrigger : public UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlTrigger();
-
- // Owned attributes
- UmlEvent *event() const;
- void setEvent(UmlEvent *event);
- const QSet<UmlPort *> port() const;
- void addPort(UmlPort *port);
- void removePort(UmlPort *port);
-
-protected:
- UmlEvent *_event;
- QSet<UmlPort *> _port;
-};
-
-#endif // UMLTRIGGER_H
-
diff --git a/src/uml/internal/umltype.cpp b/src/uml/internal/umltype.cpp
deleted file mode 100644
index a92d4aed..00000000
--- a/src/uml/internal/umltype.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltype_p.h"
-
-#include "private/umlpackage_p.h"
-
-UmlType::UmlType() :
- _package(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlPackage *UmlType::package() const
-{
- // This is a read-write association end
-
- return _package;
-}
-
-void UmlType::setPackage(UmlPackage *package)
-{
- // This is a read-write association end
-
- if (_package != package) {
- _package = package;
- }
-}
-
-// OPERATIONS
-
-bool UmlType::conformsTo(
- UmlType *other) const
-{
- qWarning("UmlType::conformsTo(): to be implemented (operation)");
-
- Q_UNUSED(other);
- return bool ();
-}
-
diff --git a/src/uml/internal/umltype_p.h b/src/uml/internal/umltype_p.h
deleted file mode 100644
index 7a6d6da7..00000000
--- a/src/uml/internal/umltype_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTYPE_H
-#define UMLTYPE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlPackage;
-
-class Q_UML_EXPORT UmlType : public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlType();
-
- // Owned attributes
- UmlPackage *package() const;
- void setPackage(UmlPackage *package);
-
- // Operations
- bool conformsTo(UmlType *other) const;
-
-protected:
- UmlPackage *_package;
-};
-
-#endif // UMLTYPE_H
-
diff --git a/src/uml/internal/umltypedelement.cpp b/src/uml/internal/umltypedelement.cpp
deleted file mode 100644
index 3eebf716..00000000
--- a/src/uml/internal/umltypedelement.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umltypedelement_p.h"
-
-#include "private/umltype_p.h"
-
-UmlTypedElement::UmlTypedElement() :
- _type(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlType *UmlTypedElement::type() const
-{
- // This is a read-write association end
-
- return _type;
-}
-
-void UmlTypedElement::setType(UmlType *type)
-{
- // This is a read-write association end
-
- if (_type != type) {
- _type = type;
- }
-}
-
diff --git a/src/uml/internal/umltypedelement_p.h b/src/uml/internal/umltypedelement_p.h
deleted file mode 100644
index d806a9bd..00000000
--- a/src/uml/internal/umltypedelement_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLTYPEDELEMENT_H
-#define UMLTYPEDELEMENT_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlType;
-
-class Q_UML_EXPORT UmlTypedElement : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlTypedElement();
-
- // Owned attributes
- UmlType *type() const;
- void setType(UmlType *type);
-
-protected:
- UmlType *_type;
-};
-
-#endif // UMLTYPEDELEMENT_H
-
diff --git a/src/uml/internal/umlunmarshallaction.cpp b/src/uml/internal/umlunmarshallaction.cpp
deleted file mode 100644
index f05c6cab..00000000
--- a/src/uml/internal/umlunmarshallaction.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlunmarshallaction_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlUnmarshallAction::UmlUnmarshallAction() :
- _object(0),
- _unmarshallType(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlUnmarshallAction::object() const
-{
- // This is a read-write association end
-
- return _object;
-}
-
-void UmlUnmarshallAction::setObject(UmlInputPin *object)
-{
- // This is a read-write association end
-
- if (_object != object) {
- // Adjust subsetted properties
- removeInput(_object);
-
- _object = object;
-
- // Adjust subsetted properties
- if (object) {
- addInput(object);
- }
- }
-}
-
-const QSet<UmlOutputPin *> UmlUnmarshallAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlUnmarshallAction::addResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (!_result.contains(result)) {
- _result.insert(result);
-
- // Adjust subsetted properties
- addOutput(result);
- }
-}
-
-void UmlUnmarshallAction::removeResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result.contains(result)) {
- _result.remove(result);
-
- // Adjust subsetted properties
- removeOutput(result);
- }
-}
-
-UmlClassifier *UmlUnmarshallAction::unmarshallType() const
-{
- // This is a read-write association end
-
- return _unmarshallType;
-}
-
-void UmlUnmarshallAction::setUnmarshallType(UmlClassifier *unmarshallType)
-{
- // This is a read-write association end
-
- if (_unmarshallType != unmarshallType) {
- _unmarshallType = unmarshallType;
- }
-}
-
diff --git a/src/uml/internal/umlunmarshallaction_p.h b/src/uml/internal/umlunmarshallaction_p.h
deleted file mode 100644
index 01a58590..00000000
--- a/src/uml/internal/umlunmarshallaction_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLUNMARSHALLACTION_H
-#define UMLUNMARSHALLACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlUnmarshallAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlUnmarshallAction();
-
- // Owned attributes
- UmlInputPin *object() const;
- void setObject(UmlInputPin *object);
- const QSet<UmlOutputPin *> result() const;
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
- UmlClassifier *unmarshallType() const;
- void setUnmarshallType(UmlClassifier *unmarshallType);
-
-protected:
- UmlInputPin *_object;
- QSet<UmlOutputPin *> _result;
- UmlClassifier *_unmarshallType;
-};
-
-#endif // UMLUNMARSHALLACTION_H
-
diff --git a/src/uml/internal/umlusage.cpp b/src/uml/internal/umlusage.cpp
deleted file mode 100644
index 378ab853..00000000
--- a/src/uml/internal/umlusage.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlusage_p.h"
-
-UmlUsage::UmlUsage()
-{
-}
-
diff --git a/src/uml/internal/umlusage_p.h b/src/uml/internal/umlusage_p.h
deleted file mode 100644
index 25fbd063..00000000
--- a/src/uml/internal/umlusage_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLUSAGE_H
-#define UMLUSAGE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umldependency_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlUsage : public UmlDependency
-{
-public:
- Q_DECL_HIDDEN explicit UmlUsage();
-
-protected:
-};
-
-#endif // UMLUSAGE_H
-
diff --git a/src/uml/internal/umlusecase.cpp b/src/uml/internal/umlusecase.cpp
deleted file mode 100644
index d70d0fee..00000000
--- a/src/uml/internal/umlusecase.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlusecase_p.h"
-
-#include "private/umlclassifier_p.h"
-#include "private/umlextend_p.h"
-#include "private/umlextensionpoint_p.h"
-#include "private/umlinclude_p.h"
-
-UmlUseCase::UmlUseCase()
-{
-}
-
-// OWNED ATTRIBUTES
-
-const QSet<UmlExtend *> UmlUseCase::extend() const
-{
- // This is a read-write association end
-
- return _extend;
-}
-
-void UmlUseCase::addExtend(UmlExtend *extend)
-{
- // This is a read-write association end
-
- if (!_extend.contains(extend)) {
- _extend.insert(extend);
-
- // Adjust subsetted properties
- addOwnedMember(extend);
-
- // Adjust opposite properties
- if (extend) {
- extend->setExtension(this);
- }
- }
-}
-
-void UmlUseCase::removeExtend(UmlExtend *extend)
-{
- // This is a read-write association end
-
- if (_extend.contains(extend)) {
- _extend.remove(extend);
-
- // Adjust subsetted properties
- removeOwnedMember(extend);
-
- // Adjust opposite properties
- if (extend) {
- extend->setExtension(0);
- }
- }
-}
-
-const QSet<UmlExtensionPoint *> UmlUseCase::extensionPoint() const
-{
- // This is a read-write association end
-
- return _extensionPoint;
-}
-
-void UmlUseCase::addExtensionPoint(UmlExtensionPoint *extensionPoint)
-{
- // This is a read-write association end
-
- if (!_extensionPoint.contains(extensionPoint)) {
- _extensionPoint.insert(extensionPoint);
-
- // Adjust subsetted properties
- addOwnedMember(extensionPoint);
-
- // Adjust opposite properties
- if (extensionPoint) {
- extensionPoint->setUseCase(this);
- }
- }
-}
-
-void UmlUseCase::removeExtensionPoint(UmlExtensionPoint *extensionPoint)
-{
- // This is a read-write association end
-
- if (_extensionPoint.contains(extensionPoint)) {
- _extensionPoint.remove(extensionPoint);
-
- // Adjust subsetted properties
- removeOwnedMember(extensionPoint);
-
- // Adjust opposite properties
- if (extensionPoint) {
- extensionPoint->setUseCase(0);
- }
- }
-}
-
-const QSet<UmlInclude *> UmlUseCase::include() const
-{
- // This is a read-write association end
-
- return _include;
-}
-
-void UmlUseCase::addInclude(UmlInclude *include)
-{
- // This is a read-write association end
-
- if (!_include.contains(include)) {
- _include.insert(include);
-
- // Adjust subsetted properties
- addOwnedMember(include);
-
- // Adjust opposite properties
- if (include) {
- include->setIncludingCase(this);
- }
- }
-}
-
-void UmlUseCase::removeInclude(UmlInclude *include)
-{
- // This is a read-write association end
-
- if (_include.contains(include)) {
- _include.remove(include);
-
- // Adjust subsetted properties
- removeOwnedMember(include);
-
- // Adjust opposite properties
- if (include) {
- include->setIncludingCase(0);
- }
- }
-}
-
-const QSet<UmlClassifier *> UmlUseCase::subject() const
-{
- // This is a read-write association end
-
- return _subject;
-}
-
-void UmlUseCase::addSubject(UmlClassifier *subject)
-{
- // This is a read-write association end
-
- if (!_subject.contains(subject)) {
- _subject.insert(subject);
-
- // Adjust opposite properties
- if (subject) {
- subject->addUseCase(this);
- }
- }
-}
-
-void UmlUseCase::removeSubject(UmlClassifier *subject)
-{
- // This is a read-write association end
-
- if (_subject.contains(subject)) {
- _subject.remove(subject);
-
- // Adjust opposite properties
- if (subject) {
- subject->removeUseCase(this);
- }
- }
-}
-
-// OPERATIONS
-
-QSet<UmlUseCase *> UmlUseCase::allIncludedUseCases(
- ) const
-{
- qWarning("UmlUseCase::allIncludedUseCases(): to be implemented (operation)");
-
- return QSet<UmlUseCase *> ();
-}
-
diff --git a/src/uml/internal/umlusecase_p.h b/src/uml/internal/umlusecase_p.h
deleted file mode 100644
index 2bc28aba..00000000
--- a/src/uml/internal/umlusecase_p.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLUSECASE_H
-#define UMLUSECASE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlbehavioredclassifier_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlClassifier;
-class UmlExtend;
-class UmlExtensionPoint;
-class UmlInclude;
-
-class Q_UML_EXPORT UmlUseCase : public UmlBehavioredClassifier
-{
-public:
- Q_DECL_HIDDEN explicit UmlUseCase();
-
- // Owned attributes
- const QSet<UmlExtend *> extend() const;
- void addExtend(UmlExtend *extend);
- void removeExtend(UmlExtend *extend);
- const QSet<UmlExtensionPoint *> extensionPoint() const;
- void addExtensionPoint(UmlExtensionPoint *extensionPoint);
- void removeExtensionPoint(UmlExtensionPoint *extensionPoint);
- const QSet<UmlInclude *> include() const;
- void addInclude(UmlInclude *include);
- void removeInclude(UmlInclude *include);
- const QSet<UmlClassifier *> subject() const;
- void addSubject(UmlClassifier *subject);
- void removeSubject(UmlClassifier *subject);
-
- // Operations
- QSet<UmlUseCase *> allIncludedUseCases() const;
-
-protected:
- QSet<UmlExtend *> _extend;
- QSet<UmlExtensionPoint *> _extensionPoint;
- QSet<UmlInclude *> _include;
- QSet<UmlClassifier *> _subject;
-};
-
-#endif // UMLUSECASE_H
-
diff --git a/src/uml/internal/umlvaluepin.cpp b/src/uml/internal/umlvaluepin.cpp
deleted file mode 100644
index c2c83738..00000000
--- a/src/uml/internal/umlvaluepin.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlvaluepin_p.h"
-
-#include "private/umlvaluespecification_p.h"
-
-UmlValuePin::UmlValuePin() :
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlValueSpecification *UmlValuePin::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlValuePin::setValue(UmlValueSpecification *value)
-{
- // This is a read-write association end
-
- if (_value != value) {
- // Adjust subsetted properties
- removeOwnedElement(_value);
-
- _value = value;
-
- // Adjust subsetted properties
- if (value) {
- addOwnedElement(value);
- }
- }
-}
-
diff --git a/src/uml/internal/umlvaluepin_p.h b/src/uml/internal/umlvaluepin_p.h
deleted file mode 100644
index 1f95ab06..00000000
--- a/src/uml/internal/umlvaluepin_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLVALUEPIN_H
-#define UMLVALUEPIN_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlinputpin_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlValuePin : public UmlInputPin
-{
-public:
- Q_DECL_HIDDEN explicit UmlValuePin();
-
- // Owned attributes
- UmlValueSpecification *value() const;
- void setValue(UmlValueSpecification *value);
-
-protected:
- UmlValueSpecification *_value;
-};
-
-#endif // UMLVALUEPIN_H
-
diff --git a/src/uml/internal/umlvaluespecification.cpp b/src/uml/internal/umlvaluespecification.cpp
deleted file mode 100644
index 90034e34..00000000
--- a/src/uml/internal/umlvaluespecification.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlvaluespecification_p.h"
-
-#include "private/umlparameterableelement_p.h"
-
-UmlValueSpecification::UmlValueSpecification()
-{
-}
-
-// OPERATIONS
-
-bool UmlValueSpecification::booleanValue(
- ) const
-{
- qWarning("UmlValueSpecification::booleanValue(): to be implemented (operation)");
-
- return bool ();
-}
-
-int UmlValueSpecification::integerValue(
- ) const
-{
- qWarning("UmlValueSpecification::integerValue(): to be implemented (operation)");
-
- return int ();
-}
-
-bool UmlValueSpecification::isCompatibleWith(
- UmlParameterableElement *p) const
-{
- qWarning("UmlValueSpecification::isCompatibleWith(): to be implemented (operation)");
-
- Q_UNUSED(p);
- return bool ();
-}
-
-bool UmlValueSpecification::isComputable(
- ) const
-{
- qWarning("UmlValueSpecification::isComputable(): to be implemented (operation)");
-
- return bool ();
-}
-
-bool UmlValueSpecification::isNull(
- ) const
-{
- qWarning("UmlValueSpecification::isNull(): to be implemented (operation)");
-
- return bool ();
-}
-
-double UmlValueSpecification::realValue(
- ) const
-{
- qWarning("UmlValueSpecification::realValue(): to be implemented (operation)");
-
- return double ();
-}
-
-QString UmlValueSpecification::stringValue(
- ) const
-{
- qWarning("UmlValueSpecification::stringValue(): to be implemented (operation)");
-
- return QString ();
-}
-
-int UmlValueSpecification::unlimitedValue(
- ) const
-{
- qWarning("UmlValueSpecification::unlimitedValue(): to be implemented (operation)");
-
- return int ();
-}
-
diff --git a/src/uml/internal/umlvaluespecification_p.h b/src/uml/internal/umlvaluespecification_p.h
deleted file mode 100644
index 12871a52..00000000
--- a/src/uml/internal/umlvaluespecification_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLVALUESPECIFICATION_H
-#define UMLVALUESPECIFICATION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umltypedelement_p.h"
-#include "private/umlpackageableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlParameterableElement;
-
-class Q_UML_EXPORT UmlValueSpecification : public UmlTypedElement, public UmlPackageableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlValueSpecification();
-
- // Operations
- bool booleanValue() const;
- int integerValue() const;
- bool isCompatibleWith(UmlParameterableElement *p) const;
- bool isComputable() const;
- bool isNull() const;
- double realValue() const;
- QString stringValue() const;
- int unlimitedValue() const;
-
-protected:
-};
-
-#endif // UMLVALUESPECIFICATION_H
-
diff --git a/src/uml/internal/umlvaluespecificationaction.cpp b/src/uml/internal/umlvaluespecificationaction.cpp
deleted file mode 100644
index 306031aa..00000000
--- a/src/uml/internal/umlvaluespecificationaction.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlvaluespecificationaction_p.h"
-
-#include "private/umloutputpin_p.h"
-#include "private/umlvaluespecification_p.h"
-
-UmlValueSpecificationAction::UmlValueSpecificationAction() :
- _result(0),
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlValueSpecificationAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlValueSpecificationAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
-UmlValueSpecification *UmlValueSpecificationAction::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlValueSpecificationAction::setValue(UmlValueSpecification *value)
-{
- // This is a read-write association end
-
- if (_value != value) {
- // Adjust subsetted properties
- removeOwnedElement(_value);
-
- _value = value;
-
- // Adjust subsetted properties
- if (value) {
- addOwnedElement(value);
- }
- }
-}
-
diff --git a/src/uml/internal/umlvaluespecificationaction_p.h b/src/uml/internal/umlvaluespecificationaction_p.h
deleted file mode 100644
index d0f61b2f..00000000
--- a/src/uml/internal/umlvaluespecificationaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLVALUESPECIFICATIONACTION_H
-#define UMLVALUESPECIFICATIONACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlOutputPin;
-class UmlValueSpecification;
-
-class Q_UML_EXPORT UmlValueSpecificationAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlValueSpecificationAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
- UmlValueSpecification *value() const;
- void setValue(UmlValueSpecification *value);
-
-protected:
- UmlOutputPin *_result;
- UmlValueSpecification *_value;
-};
-
-#endif // UMLVALUESPECIFICATIONACTION_H
-
diff --git a/src/uml/internal/umlvariable.cpp b/src/uml/internal/umlvariable.cpp
deleted file mode 100644
index ffa7bb07..00000000
--- a/src/uml/internal/umlvariable.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlvariable_p.h"
-
-#include "private/umlaction_p.h"
-#include "private/umlactivity_p.h"
-#include "private/umlstructuredactivitynode_p.h"
-
-UmlVariable::UmlVariable() :
- _activityScope(0),
- _scope(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlActivity *UmlVariable::activityScope() const
-{
- // This is a read-write association end
-
- return _activityScope;
-}
-
-void UmlVariable::setActivityScope(UmlActivity *activityScope)
-{
- // This is a read-write association end
-
- if (_activityScope != activityScope) {
- // Adjust subsetted properties
-
- _activityScope = activityScope;
-
- // Adjust subsetted properties
- setNamespace(activityScope);
- }
-}
-
-UmlStructuredActivityNode *UmlVariable::scope() const
-{
- // This is a read-write association end
-
- return _scope;
-}
-
-void UmlVariable::setScope(UmlStructuredActivityNode *scope)
-{
- // This is a read-write association end
-
- if (_scope != scope) {
- // Adjust subsetted properties
-
- _scope = scope;
-
- // Adjust subsetted properties
- setNamespace(scope);
- }
-}
-
-// OPERATIONS
-
-bool UmlVariable::isAccessibleBy(
- UmlAction *a) const
-{
- qWarning("UmlVariable::isAccessibleBy(): to be implemented (operation)");
-
- Q_UNUSED(a);
- return bool ();
-}
-
diff --git a/src/uml/internal/umlvariable_p.h b/src/uml/internal/umlvariable_p.h
deleted file mode 100644
index 86bc62fc..00000000
--- a/src/uml/internal/umlvariable_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLVARIABLE_H
-#define UMLVARIABLE_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlmultiplicityelement_p.h"
-#include "private/umlconnectableelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlAction;
-class UmlActivity;
-class UmlStructuredActivityNode;
-
-class Q_UML_EXPORT UmlVariable : public UmlMultiplicityElement, public UmlConnectableElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlVariable();
-
- // Owned attributes
- UmlActivity *activityScope() const;
- void setActivityScope(UmlActivity *activityScope);
- UmlStructuredActivityNode *scope() const;
- void setScope(UmlStructuredActivityNode *scope);
-
- // Operations
- bool isAccessibleBy(UmlAction *a) const;
-
-protected:
- UmlActivity *_activityScope;
- UmlStructuredActivityNode *_scope;
-};
-
-#endif // UMLVARIABLE_H
-
diff --git a/src/uml/internal/umlvariableaction.cpp b/src/uml/internal/umlvariableaction.cpp
deleted file mode 100644
index 81c6416b..00000000
--- a/src/uml/internal/umlvariableaction.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlvariableaction_p.h"
-
-#include "private/umlvariable_p.h"
-
-UmlVariableAction::UmlVariableAction() :
- _variable(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlVariable *UmlVariableAction::variable() const
-{
- // This is a read-write association end
-
- return _variable;
-}
-
-void UmlVariableAction::setVariable(UmlVariable *variable)
-{
- // This is a read-write association end
-
- if (_variable != variable) {
- _variable = variable;
- }
-}
-
diff --git a/src/uml/internal/umlvariableaction_p.h b/src/uml/internal/umlvariableaction_p.h
deleted file mode 100644
index e1e37526..00000000
--- a/src/uml/internal/umlvariableaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLVARIABLEACTION_H
-#define UMLVARIABLEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlVariable;
-
-class Q_UML_EXPORT UmlVariableAction : public UmlAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlVariableAction();
-
- // Owned attributes
- UmlVariable *variable() const;
- void setVariable(UmlVariable *variable);
-
-protected:
- UmlVariable *_variable;
-};
-
-#endif // UMLVARIABLEACTION_H
-
diff --git a/src/uml/internal/umlvertex.cpp b/src/uml/internal/umlvertex.cpp
deleted file mode 100644
index 015eb2d6..00000000
--- a/src/uml/internal/umlvertex.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlvertex_p.h"
-
-#include "private/umlregion_p.h"
-#include "private/umlstatemachine_p.h"
-#include "private/umltransition_p.h"
-
-UmlVertex::UmlVertex() :
- _container(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlRegion *UmlVertex::container() const
-{
- // This is a read-write association end
-
- return _container;
-}
-
-void UmlVertex::setContainer(UmlRegion *container)
-{
- // This is a read-write association end
-
- if (_container != container) {
- // Adjust subsetted properties
-
- _container = container;
-
- // Adjust subsetted properties
- setNamespace(container);
- }
-}
-
-const QSet<UmlTransition *> UmlVertex::incoming() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlVertex::incoming(): to be implemented (this is a derived association end)");
-
- return QSet<UmlTransition *>();
-}
-
-void UmlVertex::addIncoming(UmlTransition *incoming)
-{
- // This is a read-only derived association end
-
- qWarning("UmlVertex::incoming(): to be implemented (this is a derived association end)");
- Q_UNUSED(incoming);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (incoming) {
- incoming->setTarget(this);
- }
- }
-}
-
-void UmlVertex::removeIncoming(UmlTransition *incoming)
-{
- // This is a read-only derived association end
-
- qWarning("UmlVertex::incoming(): to be implemented (this is a derived association end)");
- Q_UNUSED(incoming);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (incoming) {
- incoming->setTarget(0);
- }
- }
-}
-
-const QSet<UmlTransition *> UmlVertex::outgoing() const
-{
- // This is a read-only derived association end
-
- qWarning("UmlVertex::outgoing(): to be implemented (this is a derived association end)");
-
- return QSet<UmlTransition *>();
-}
-
-void UmlVertex::addOutgoing(UmlTransition *outgoing)
-{
- // This is a read-only derived association end
-
- qWarning("UmlVertex::outgoing(): to be implemented (this is a derived association end)");
- Q_UNUSED(outgoing);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (outgoing) {
- outgoing->setSource(this);
- }
- }
-}
-
-void UmlVertex::removeOutgoing(UmlTransition *outgoing)
-{
- // This is a read-only derived association end
-
- qWarning("UmlVertex::outgoing(): to be implemented (this is a derived association end)");
- Q_UNUSED(outgoing);
-
- if (false /* <derivedexclusion-criteria> */) {
- // <derived-code>
-
- // Adjust opposite properties
- if (outgoing) {
- outgoing->setSource(0);
- }
- }
-}
-
-// OPERATIONS
-
-UmlStateMachine *UmlVertex::containingStateMachine(
- ) const
-{
- qWarning("UmlVertex::containingStateMachine(): to be implemented (operation)");
-
- return 0;
-}
-
diff --git a/src/uml/internal/umlvertex_p.h b/src/uml/internal/umlvertex_p.h
deleted file mode 100644
index 14bc0e0b..00000000
--- a/src/uml/internal/umlvertex_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLVERTEX_H
-#define UMLVERTEX_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlnamedelement_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlRegion;
-class UmlStateMachine;
-class UmlTransition;
-
-class Q_UML_EXPORT UmlVertex : public virtual UmlNamedElement
-{
-public:
- Q_DECL_HIDDEN explicit UmlVertex();
-
- // Owned attributes
- UmlRegion *container() const;
- void setContainer(UmlRegion *container);
- const QSet<UmlTransition *> incoming() const;
- Q_DECL_HIDDEN void addIncoming(UmlTransition *incoming);
- Q_DECL_HIDDEN void removeIncoming(UmlTransition *incoming);
- const QSet<UmlTransition *> outgoing() const;
- Q_DECL_HIDDEN void addOutgoing(UmlTransition *outgoing);
- Q_DECL_HIDDEN void removeOutgoing(UmlTransition *outgoing);
-
- // Operations
- UmlStateMachine *containingStateMachine() const;
-
-protected:
- UmlRegion *_container;
-};
-
-#endif // UMLVERTEX_H
-
diff --git a/src/uml/internal/umlwritelinkaction.cpp b/src/uml/internal/umlwritelinkaction.cpp
deleted file mode 100644
index 7d48bcbc..00000000
--- a/src/uml/internal/umlwritelinkaction.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlwritelinkaction_p.h"
-
-UmlWriteLinkAction::UmlWriteLinkAction()
-{
-}
-
diff --git a/src/uml/internal/umlwritelinkaction_p.h b/src/uml/internal/umlwritelinkaction_p.h
deleted file mode 100644
index e7759526..00000000
--- a/src/uml/internal/umlwritelinkaction_p.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLWRITELINKACTION_H
-#define UMLWRITELINKACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umllinkaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class Q_UML_EXPORT UmlWriteLinkAction : public UmlLinkAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlWriteLinkAction();
-
-protected:
-};
-
-#endif // UMLWRITELINKACTION_H
-
diff --git a/src/uml/internal/umlwritestructuralfeatureaction.cpp b/src/uml/internal/umlwritestructuralfeatureaction.cpp
deleted file mode 100644
index cdf61519..00000000
--- a/src/uml/internal/umlwritestructuralfeatureaction.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlwritestructuralfeatureaction_p.h"
-
-#include "private/umlinputpin_p.h"
-#include "private/umloutputpin_p.h"
-
-UmlWriteStructuralFeatureAction::UmlWriteStructuralFeatureAction() :
- _result(0),
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlOutputPin *UmlWriteStructuralFeatureAction::result() const
-{
- // This is a read-write association end
-
- return _result;
-}
-
-void UmlWriteStructuralFeatureAction::setResult(UmlOutputPin *result)
-{
- // This is a read-write association end
-
- if (_result != result) {
- // Adjust subsetted properties
- removeOutput(_result);
-
- _result = result;
-
- // Adjust subsetted properties
- if (result) {
- addOutput(result);
- }
- }
-}
-
-UmlInputPin *UmlWriteStructuralFeatureAction::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlWriteStructuralFeatureAction::setValue(UmlInputPin *value)
-{
- // This is a read-write association end
-
- if (_value != value) {
- // Adjust subsetted properties
- removeInput(_value);
-
- _value = value;
-
- // Adjust subsetted properties
- if (value) {
- addInput(value);
- }
- }
-}
-
diff --git a/src/uml/internal/umlwritestructuralfeatureaction_p.h b/src/uml/internal/umlwritestructuralfeatureaction_p.h
deleted file mode 100644
index d4cfe7e2..00000000
--- a/src/uml/internal/umlwritestructuralfeatureaction_p.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLWRITESTRUCTURALFEATUREACTION_H
-#define UMLWRITESTRUCTURALFEATUREACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlstructuralfeatureaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-class UmlOutputPin;
-
-class Q_UML_EXPORT UmlWriteStructuralFeatureAction : public UmlStructuralFeatureAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlWriteStructuralFeatureAction();
-
- // Owned attributes
- UmlOutputPin *result() const;
- void setResult(UmlOutputPin *result);
- UmlInputPin *value() const;
- void setValue(UmlInputPin *value);
-
-protected:
- UmlOutputPin *_result;
- UmlInputPin *_value;
-};
-
-#endif // UMLWRITESTRUCTURALFEATUREACTION_H
-
diff --git a/src/uml/internal/umlwritevariableaction.cpp b/src/uml/internal/umlwritevariableaction.cpp
deleted file mode 100644
index e0e18a98..00000000
--- a/src/uml/internal/umlwritevariableaction.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "umlwritevariableaction_p.h"
-
-#include "private/umlinputpin_p.h"
-
-UmlWriteVariableAction::UmlWriteVariableAction() :
- _value(0)
-{
-}
-
-// OWNED ATTRIBUTES
-
-UmlInputPin *UmlWriteVariableAction::value() const
-{
- // This is a read-write association end
-
- return _value;
-}
-
-void UmlWriteVariableAction::setValue(UmlInputPin *value)
-{
- // This is a read-write association end
-
- if (_value != value) {
- // Adjust subsetted properties
- removeInput(_value);
-
- _value = value;
-
- // Adjust subsetted properties
- if (value) {
- addInput(value);
- }
- }
-}
-
diff --git a/src/uml/internal/umlwritevariableaction_p.h b/src/uml/internal/umlwritevariableaction_p.h
deleted file mode 100644
index c336008f..00000000
--- a/src/uml/internal/umlwritevariableaction_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtUml module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef UMLWRITEVARIABLEACTION_H
-#define UMLWRITEVARIABLEACTION_H
-
-#include <QtUml/QtUmlGlobal>
-
-#include "private/umlvariableaction_p.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QList>
-#include <QtCore/QString>
-
-class UmlInputPin;
-
-class Q_UML_EXPORT UmlWriteVariableAction : public UmlVariableAction
-{
-public:
- Q_DECL_HIDDEN explicit UmlWriteVariableAction();
-
- // Owned attributes
- UmlInputPin *value() const;
- void setValue(UmlInputPin *value);
-
-protected:
- UmlInputPin *_value;
-};
-
-#endif // UMLWRITEVARIABLEACTION_H
-
diff --git a/src/uml/qobjects/qumlabstractionobject.cpp b/src/uml/qobjects/qumlabstractionobject.cpp
new file mode 100644
index 00000000..a82a38b1
--- /dev/null
+++ b/src/uml/qobjects/qumlabstractionobject.cpp
@@ -0,0 +1,390 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlabstractionobject_p.h"
+
+#include <QtUml/QUmlAbstraction>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAbstractionObject::QUmlAbstractionObject(QUmlAbstraction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAbstractionObject::~QUmlAbstractionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAbstractionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAbstractionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAbstractionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlAbstractionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlAbstractionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAbstractionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAbstractionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->name();
+}
+
+QObject *QUmlAbstractionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAbstractionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAbstractionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlAbstractionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlAbstractionObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlAbstractionObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAbstractionObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlAbstractionObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAbstractionObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Abstraction]
+
+QObject *QUmlAbstractionObject::mapping() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->mapping()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAbstractionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAbstractionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlAbstractionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlAbstractionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAbstractionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAbstractionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAbstractionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAbstractionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAbstractionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAbstractionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAbstractionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAbstractionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAbstractionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlAbstractionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlAbstractionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAbstractionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAbstractionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAbstractionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setName(name);
+}
+
+void QUmlAbstractionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAbstractionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAbstractionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlAbstractionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlAbstractionObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlAbstractionObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlAbstractionObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlAbstractionObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlAbstractionObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlAbstractionObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlAbstractionObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlAbstractionObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlAbstractionObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlAbstractionObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+
+void QUmlAbstractionObject::setMapping(QObject *mapping)
+{
+ qmodelingobjectproperty_cast<QUmlAbstraction *>(this)->setMapping(qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(mapping));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlabstractionobject_p.h b/src/uml/qobjects/qumlabstractionobject_p.h
new file mode 100644
index 00000000..1834ee75
--- /dev/null
+++ b/src/uml/qobjects/qumlabstractionobject_p.h
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLABSTRACTIONOBJECT_H
+#define QUMLABSTRACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAbstraction;
+class Q_UML_EXPORT QUmlAbstractionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Abstraction]
+ Q_PROPERTY(QObject * mapping READ mapping)
+
+public:
+ Q_INVOKABLE explicit QUmlAbstractionObject(QUmlAbstraction *qModelingObject);
+ virtual ~QUmlAbstractionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Abstraction]
+ Q_INVOKABLE QObject *mapping() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Abstraction]
+ void setMapping(QObject *mapping = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLABSTRACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlacceptcallactionobject.cpp b/src/uml/qobjects/qumlacceptcallactionobject.cpp
new file mode 100644
index 00000000..aa902dd2
--- /dev/null
+++ b/src/uml/qobjects/qumlacceptcallactionobject.cpp
@@ -0,0 +1,623 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlacceptcallactionobject_p.h"
+
+#include <QtUml/QUmlAcceptCallAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlTrigger>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAcceptCallActionObject::QUmlAcceptCallActionObject(QUmlAcceptCallAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAcceptCallActionObject::~QUmlAcceptCallActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAcceptCallActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAcceptCallActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAcceptCallActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAcceptCallActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->name();
+}
+
+QObject *QUmlAcceptCallActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAcceptCallActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAcceptCallActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlAcceptCallActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlAcceptCallActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlAcceptCallActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAcceptCallActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlAcceptCallActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlAcceptCallActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlAcceptCallActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlAcceptCallActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlAcceptCallActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [AcceptEventAction]
+
+bool QUmlAcceptCallActionObject::isUnmarshall() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->isUnmarshall();
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::result() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->result())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptCallActionObject::trigger() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTrigger *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->trigger())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [AcceptCallAction]
+
+QObject *QUmlAcceptCallActionObject::returnInformation() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->returnInformation()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAcceptCallActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAcceptCallActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAcceptCallActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAcceptCallActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAcceptCallActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAcceptCallActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlAcceptCallActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlAcceptCallActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAcceptCallActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAcceptCallActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAcceptCallActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAcceptCallActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAcceptCallActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAcceptCallActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAcceptCallActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAcceptCallActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setName(name);
+}
+
+void QUmlAcceptCallActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAcceptCallActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAcceptCallActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlAcceptCallActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlAcceptCallActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlAcceptCallActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAcceptCallActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAcceptCallActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlAcceptCallActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlAcceptCallActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlAcceptCallActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAcceptCallActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAcceptCallActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAcceptCallActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAcceptCallActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAcceptCallActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAcceptCallActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlAcceptCallActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAcceptCallActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAcceptCallActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAcceptCallActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAcceptCallActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlAcceptCallActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlAcceptCallActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlAcceptCallActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlAcceptCallActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlAcceptCallActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAcceptCallActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAcceptCallActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlAcceptCallActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAcceptCallActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAcceptCallActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAcceptCallActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAcceptCallActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlAcceptCallActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [AcceptEventAction]
+
+void QUmlAcceptCallActionObject::setUnmarshall(bool isUnmarshall)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setUnmarshall(isUnmarshall);
+}
+
+void QUmlAcceptCallActionObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlAcceptCallActionObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlAcceptCallActionObject::addTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->addTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+void QUmlAcceptCallActionObject::removeTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->removeTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [AcceptCallAction]
+
+void QUmlAcceptCallActionObject::setReturnInformation(QObject *returnInformation)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptCallAction *>(this)->setReturnInformation(qmodelingobjectproperty_cast<QUmlOutputPin *>(returnInformation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlacceptcallactionobject_p.h b/src/uml/qobjects/qumlacceptcallactionobject_p.h
new file mode 100644
index 00000000..9439a937
--- /dev/null
+++ b/src/uml/qobjects/qumlacceptcallactionobject_p.h
@@ -0,0 +1,246 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACCEPTCALLACTIONOBJECT_H
+#define QUMLACCEPTCALLACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAcceptCallAction;
+class Q_UML_EXPORT QUmlAcceptCallActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [AcceptEventAction]
+ Q_PROPERTY(bool isUnmarshall READ isUnmarshall)
+ Q_PROPERTY(QSet<QObject *> result READ result)
+ Q_PROPERTY(QSet<QObject *> trigger READ trigger)
+
+ // Properties [AcceptCallAction]
+ Q_PROPERTY(QObject * returnInformation READ returnInformation)
+
+public:
+ Q_INVOKABLE explicit QUmlAcceptCallActionObject(QUmlAcceptCallAction *qModelingObject);
+ virtual ~QUmlAcceptCallActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [AcceptEventAction]
+ Q_INVOKABLE bool isUnmarshall() const;
+ Q_INVOKABLE const QSet<QObject *> result() const;
+ Q_INVOKABLE const QSet<QObject *> trigger() const;
+
+ // Owned attributes [AcceptCallAction]
+ Q_INVOKABLE QObject *returnInformation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [AcceptEventAction]
+ void setUnmarshall(bool isUnmarshall);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+ void addTrigger(QObject *trigger);
+ void removeTrigger(QObject *trigger);
+
+ // Slots for owned attributes [AcceptCallAction]
+ void setReturnInformation(QObject *returnInformation = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACCEPTCALLACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlaccepteventactionobject.cpp b/src/uml/qobjects/qumlaccepteventactionobject.cpp
new file mode 100644
index 00000000..4be83dc1
--- /dev/null
+++ b/src/uml/qobjects/qumlaccepteventactionobject.cpp
@@ -0,0 +1,609 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlaccepteventactionobject_p.h"
+
+#include <QtUml/QUmlAcceptEventAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlTrigger>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAcceptEventActionObject::QUmlAcceptEventActionObject(QUmlAcceptEventAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAcceptEventActionObject::~QUmlAcceptEventActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAcceptEventActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAcceptEventActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAcceptEventActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAcceptEventActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->name();
+}
+
+QObject *QUmlAcceptEventActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAcceptEventActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAcceptEventActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlAcceptEventActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlAcceptEventActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlAcceptEventActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAcceptEventActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlAcceptEventActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlAcceptEventActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlAcceptEventActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlAcceptEventActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlAcceptEventActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [AcceptEventAction]
+
+bool QUmlAcceptEventActionObject::isUnmarshall() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->isUnmarshall();
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::result() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->result())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAcceptEventActionObject::trigger() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTrigger *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->trigger())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAcceptEventActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAcceptEventActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAcceptEventActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAcceptEventActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAcceptEventActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAcceptEventActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlAcceptEventActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlAcceptEventActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAcceptEventActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAcceptEventActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAcceptEventActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAcceptEventActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAcceptEventActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAcceptEventActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAcceptEventActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAcceptEventActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setName(name);
+}
+
+void QUmlAcceptEventActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAcceptEventActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAcceptEventActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlAcceptEventActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlAcceptEventActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlAcceptEventActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAcceptEventActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAcceptEventActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlAcceptEventActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlAcceptEventActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlAcceptEventActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAcceptEventActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAcceptEventActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAcceptEventActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAcceptEventActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAcceptEventActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAcceptEventActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlAcceptEventActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAcceptEventActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAcceptEventActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAcceptEventActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAcceptEventActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlAcceptEventActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlAcceptEventActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlAcceptEventActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlAcceptEventActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlAcceptEventActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAcceptEventActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAcceptEventActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlAcceptEventActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAcceptEventActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAcceptEventActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAcceptEventActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAcceptEventActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlAcceptEventActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [AcceptEventAction]
+
+void QUmlAcceptEventActionObject::setUnmarshall(bool isUnmarshall)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->setUnmarshall(isUnmarshall);
+}
+
+void QUmlAcceptEventActionObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlAcceptEventActionObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlAcceptEventActionObject::addTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->addTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+void QUmlAcceptEventActionObject::removeTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlAcceptEventAction *>(this)->removeTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlaccepteventactionobject_p.h b/src/uml/qobjects/qumlaccepteventactionobject_p.h
new file mode 100644
index 00000000..ea573f28
--- /dev/null
+++ b/src/uml/qobjects/qumlaccepteventactionobject_p.h
@@ -0,0 +1,237 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACCEPTEVENTACTIONOBJECT_H
+#define QUMLACCEPTEVENTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAcceptEventAction;
+class Q_UML_EXPORT QUmlAcceptEventActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [AcceptEventAction]
+ Q_PROPERTY(bool isUnmarshall READ isUnmarshall)
+ Q_PROPERTY(QSet<QObject *> result READ result)
+ Q_PROPERTY(QSet<QObject *> trigger READ trigger)
+
+public:
+ Q_INVOKABLE explicit QUmlAcceptEventActionObject(QUmlAcceptEventAction *qModelingObject);
+ virtual ~QUmlAcceptEventActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [AcceptEventAction]
+ Q_INVOKABLE bool isUnmarshall() const;
+ Q_INVOKABLE const QSet<QObject *> result() const;
+ Q_INVOKABLE const QSet<QObject *> trigger() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [AcceptEventAction]
+ void setUnmarshall(bool isUnmarshall);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+ void addTrigger(QObject *trigger);
+ void removeTrigger(QObject *trigger);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACCEPTEVENTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactionexecutionspecificationobject.cpp b/src/uml/qobjects/qumlactionexecutionspecificationobject.cpp
new file mode 100644
index 00000000..e5739f9d
--- /dev/null
+++ b/src/uml/qobjects/qumlactionexecutionspecificationobject.cpp
@@ -0,0 +1,337 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactionexecutionspecificationobject_p.h"
+
+#include <QtUml/QUmlActionExecutionSpecification>
+#include <QtUml/QUmlAction>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOccurrenceSpecification>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActionExecutionSpecificationObject::QUmlActionExecutionSpecificationObject(QUmlActionExecutionSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActionExecutionSpecificationObject::~QUmlActionExecutionSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActionExecutionSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionExecutionSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActionExecutionSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActionExecutionSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActionExecutionSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->name();
+}
+
+QObject *QUmlActionExecutionSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActionExecutionSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActionExecutionSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlActionExecutionSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlActionExecutionSpecificationObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActionExecutionSpecificationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlActionExecutionSpecificationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlActionExecutionSpecificationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutionSpecification]
+
+QObject *QUmlActionExecutionSpecificationObject::finish() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->finish()->asQObject();
+}
+
+QObject *QUmlActionExecutionSpecificationObject::start() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->start()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ActionExecutionSpecification]
+
+QObject *QUmlActionExecutionSpecificationObject::action() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->action()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActionExecutionSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActionExecutionSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActionExecutionSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActionExecutionSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActionExecutionSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActionExecutionSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActionExecutionSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActionExecutionSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActionExecutionSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActionExecutionSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActionExecutionSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActionExecutionSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActionExecutionSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActionExecutionSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setName(name);
+}
+
+void QUmlActionExecutionSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActionExecutionSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActionExecutionSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlActionExecutionSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlActionExecutionSpecificationObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlActionExecutionSpecificationObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlActionExecutionSpecificationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlActionExecutionSpecificationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlActionExecutionSpecificationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlActionExecutionSpecificationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutionSpecification]
+
+void QUmlActionExecutionSpecificationObject::setFinish(QObject *finish)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setFinish(qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(finish));
+}
+
+void QUmlActionExecutionSpecificationObject::setStart(QObject *start)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setStart(qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(start));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActionExecutionSpecification]
+
+void QUmlActionExecutionSpecificationObject::setAction(QObject *action)
+{
+ qmodelingobjectproperty_cast<QUmlActionExecutionSpecification *>(this)->setAction(qmodelingobjectproperty_cast<QUmlAction *>(action));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactionexecutionspecificationobject_p.h b/src/uml/qobjects/qumlactionexecutionspecificationobject_p.h
new file mode 100644
index 00000000..70ce6db1
--- /dev/null
+++ b/src/uml/qobjects/qumlactionexecutionspecificationobject_p.h
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTIONEXECUTIONSPECIFICATIONOBJECT_H
+#define QUMLACTIONEXECUTIONSPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActionExecutionSpecification;
+class Q_UML_EXPORT QUmlActionExecutionSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [ExecutionSpecification]
+ Q_PROPERTY(QObject * finish READ finish)
+ Q_PROPERTY(QObject * start READ start)
+
+ // Properties [ActionExecutionSpecification]
+ Q_PROPERTY(QObject * action READ action)
+
+public:
+ Q_INVOKABLE explicit QUmlActionExecutionSpecificationObject(QUmlActionExecutionSpecification *qModelingObject);
+ virtual ~QUmlActionExecutionSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [ExecutionSpecification]
+ Q_INVOKABLE QObject *finish() const;
+ Q_INVOKABLE QObject *start() const;
+
+ // Owned attributes [ActionExecutionSpecification]
+ Q_INVOKABLE QObject *action() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [ExecutionSpecification]
+ void setFinish(QObject *finish = 0);
+ void setStart(QObject *start = 0);
+
+ // Slots for owned attributes [ActionExecutionSpecification]
+ void setAction(QObject *action = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTIONEXECUTIONSPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactioninputpinobject.cpp b/src/uml/qobjects/qumlactioninputpinobject.cpp
new file mode 100644
index 00000000..651aa208
--- /dev/null
+++ b/src/uml/qobjects/qumlactioninputpinobject.cpp
@@ -0,0 +1,647 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactioninputpinobject_p.h"
+
+#include <QtUml/QUmlActionInputPin>
+#include <QtUml/QUmlAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActionInputPinObject::QUmlActionInputPinObject(QUmlActionInputPin *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActionInputPinObject::~QUmlActionInputPinObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActionInputPinObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActionInputPinObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlActionInputPinObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isOrdered();
+}
+
+bool QUmlActionInputPinObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isUnique();
+}
+
+int QUmlActionInputPinObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->lower();
+}
+
+QObject *QUmlActionInputPinObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlActionInputPinObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->upper();
+}
+
+QObject *QUmlActionInputPinObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActionInputPinObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActionInputPinObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->name();
+}
+
+QObject *QUmlActionInputPinObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActionInputPinObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActionInputPinObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlActionInputPinObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlActionInputPinObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlActionInputPinObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActionInputPinObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActionInputPinObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlActionInputPinObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlActionInputPinObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActionInputPinObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlActionInputPinObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->ordering();
+}
+
+QObject *QUmlActionInputPinObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlActionInputPinObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->upperBound()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Pin]
+
+bool QUmlActionInputPinObject::isControl() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isControl();
+}
+
+// OWNED ATTRIBUTES [ActionInputPin]
+
+QObject *QUmlActionInputPinObject::fromAction() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->fromAction()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActionInputPinObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActionInputPinObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlActionInputPinObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlActionInputPinObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->includesCardinality(C);
+}
+
+bool QUmlActionInputPinObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlActionInputPinObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlActionInputPinObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isMultivalued();
+}
+
+int QUmlActionInputPinObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->lowerBound();
+}
+
+//int QUmlActionInputPinObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->upperBound();
+//}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActionInputPinObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActionInputPinObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActionInputPinObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActionInputPinObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlActionInputPinObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlActionInputPinObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActionInputPinObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActionInputPinObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActionInputPinObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActionInputPinObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActionInputPinObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlActionInputPinObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlActionInputPinObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setUnique(isUnique);
+}
+
+void QUmlActionInputPinObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setLower(lower);
+}
+
+void QUmlActionInputPinObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlActionInputPinObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setUpper(upper);
+}
+
+void QUmlActionInputPinObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActionInputPinObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActionInputPinObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActionInputPinObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setName(name);
+}
+
+void QUmlActionInputPinObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActionInputPinObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActionInputPinObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlActionInputPinObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlActionInputPinObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlActionInputPinObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActionInputPinObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActionInputPinObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlActionInputPinObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlActionInputPinObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlActionInputPinObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlActionInputPinObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlActionInputPinObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlActionInputPinObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlActionInputPinObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlActionInputPinObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlActionInputPinObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlActionInputPinObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlActionInputPinObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlActionInputPinObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlActionInputPinObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlActionInputPinObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlActionInputPinObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlActionInputPinObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlActionInputPinObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlActionInputPinObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlActionInputPinObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setControlType(isControlType);
+}
+
+void QUmlActionInputPinObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setOrdering(ordering);
+}
+
+void QUmlActionInputPinObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlActionInputPinObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Pin]
+
+void QUmlActionInputPinObject::setControl(bool isControl)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setControl(isControl);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActionInputPin]
+
+void QUmlActionInputPinObject::setFromAction(QObject *fromAction)
+{
+ qmodelingobjectproperty_cast<QUmlActionInputPin *>(this)->setFromAction(qmodelingobjectproperty_cast<QUmlAction *>(fromAction));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactioninputpinobject_p.h b/src/uml/qobjects/qumlactioninputpinobject_p.h
new file mode 100644
index 00000000..bc0d3795
--- /dev/null
+++ b/src/uml/qobjects/qumlactioninputpinobject_p.h
@@ -0,0 +1,264 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTIONINPUTPINOBJECT_H
+#define QUMLACTIONINPUTPINOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActionInputPin;
+class Q_UML_EXPORT QUmlActionInputPinObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+ // Properties [Pin]
+ Q_PROPERTY(bool isControl READ isControl)
+
+ // Properties [ActionInputPin]
+ Q_PROPERTY(QObject * fromAction READ fromAction)
+
+public:
+ Q_INVOKABLE explicit QUmlActionInputPinObject(QUmlActionInputPin *qModelingObject);
+ virtual ~QUmlActionInputPinObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Owned attributes [Pin]
+ Q_INVOKABLE bool isControl() const;
+
+ // Owned attributes [ActionInputPin]
+ Q_INVOKABLE QObject *fromAction() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+
+ // Slots for owned attributes [Pin]
+ void setControl(bool isControl);
+
+ // Slots for owned attributes [ActionInputPin]
+ void setFromAction(QObject *fromAction = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTIONINPUTPINOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactivityfinalnodeobject.cpp b/src/uml/qobjects/qumlactivityfinalnodeobject.cpp
new file mode 100644
index 00000000..25fd9d6d
--- /dev/null
+++ b/src/uml/qobjects/qumlactivityfinalnodeobject.cpp
@@ -0,0 +1,436 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactivityfinalnodeobject_p.h"
+
+#include <QtUml/QUmlActivityFinalNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActivityFinalNodeObject::QUmlActivityFinalNodeObject(QUmlActivityFinalNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActivityFinalNodeObject::~QUmlActivityFinalNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityFinalNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActivityFinalNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->name();
+}
+
+QObject *QUmlActivityFinalNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActivityFinalNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActivityFinalNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlActivityFinalNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlActivityFinalNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlActivityFinalNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityFinalNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityFinalNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActivityFinalNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityFinalNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActivityFinalNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActivityFinalNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityFinalNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActivityFinalNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlActivityFinalNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlActivityFinalNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActivityFinalNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityFinalNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityFinalNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityFinalNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityFinalNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActivityFinalNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityFinalNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityFinalNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setName(name);
+}
+
+void QUmlActivityFinalNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActivityFinalNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActivityFinalNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlActivityFinalNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlActivityFinalNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlActivityFinalNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActivityFinalNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActivityFinalNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlActivityFinalNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlActivityFinalNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlActivityFinalNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlActivityFinalNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlActivityFinalNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlActivityFinalNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlActivityFinalNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlActivityFinalNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlActivityFinalNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlActivityFinalNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlActivityFinalNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlActivityFinalNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlActivityFinalNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlActivityFinalNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlActivityFinalNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityFinalNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactivityfinalnodeobject_p.h b/src/uml/qobjects/qumlactivityfinalnodeobject_p.h
new file mode 100644
index 00000000..a2f16989
--- /dev/null
+++ b/src/uml/qobjects/qumlactivityfinalnodeobject_p.h
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTIVITYFINALNODEOBJECT_H
+#define QUMLACTIVITYFINALNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActivityFinalNode;
+class Q_UML_EXPORT QUmlActivityFinalNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlActivityFinalNodeObject(QUmlActivityFinalNode *qModelingObject);
+ virtual ~QUmlActivityFinalNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTIVITYFINALNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactivityobject.cpp b/src/uml/qobjects/qumlactivityobject.cpp
new file mode 100644
index 00000000..bf6df852
--- /dev/null
+++ b/src/uml/qobjects/qumlactivityobject.cpp
@@ -0,0 +1,1362 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactivityobject_p.h"
+
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActivityObject::QUmlActivityObject(QUmlActivity *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActivityObject::~QUmlActivityObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActivityObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActivityObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActivityObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->name();
+}
+
+QObject *QUmlActivityObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActivityObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActivityObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlActivityObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlActivityObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlActivityObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlActivityObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlActivityObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlActivityObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlActivityObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlActivityObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlActivityObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlActivityObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlActivityObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlActivityObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlActivityObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isAbstract();
+}
+
+bool QUmlActivityObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlActivityObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlActivityObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlActivityObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Behavior]
+
+QObject *QUmlActivityObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->context()->asQObject();
+}
+
+bool QUmlActivityObject::isReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isReentrant();
+}
+
+const QList<QObject *> QUmlActivityObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlActivityObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::redefinedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->redefinedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Activity]
+
+const QSet<QObject *> QUmlActivityObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::group() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->group())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::isReadOnly() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isReadOnly();
+}
+
+bool QUmlActivityObject::isSingleExecution() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isSingleExecution();
+}
+
+const QSet<QObject *> QUmlActivityObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::partition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->partition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::structuredNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStructuredActivityNode *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->structuredNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityObject::variable() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVariable *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->variable())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActivityObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActivityObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActivityObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActivityObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlActivityObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach(QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->excludeCollisions(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlActivityObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlActivityObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->importMembers(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlActivityObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlActivityObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlActivityObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlActivityObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlActivityObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlActivityObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActivityObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlActivityObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlActivityObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->isTemplate();
+}
+
+bool QUmlActivityObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivity *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlActivityObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlActivityObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inputSet;
+ foreach(QObject *object, inhs)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActivity *>(this)->inherit(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActivityObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActivityObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setName(name);
+}
+
+void QUmlActivityObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActivityObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActivityObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlActivityObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlActivityObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlActivityObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlActivityObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlActivityObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlActivityObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlActivityObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlActivityObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlActivityObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlActivityObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlActivityObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlActivityObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlActivityObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlActivityObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlActivityObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlActivityObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlActivityObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActivityObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActivityObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlActivityObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlActivityObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlActivityObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlActivityObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlActivityObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlActivityObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlActivityObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlActivityObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlActivityObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlActivityObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlActivityObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlActivityObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlActivityObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlActivityObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlActivityObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlActivityObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlActivityObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlActivityObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlActivityObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlActivityObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlActivityObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlActivityObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlActivityObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlActivityObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlActivityObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlActivityObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlActivityObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlActivityObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlActivityObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlActivityObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlActivityObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlActivityObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlActivityObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlActivityObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlActivityObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlActivityObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlActivityObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlActivityObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlActivityObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlActivityObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlActivityObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlActivityObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlActivityObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlActivityObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setActive(isActive);
+}
+
+void QUmlActivityObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlActivityObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlActivityObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlActivityObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlActivityObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlActivityObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlActivityObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlActivityObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlActivityObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlActivityObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Behavior]
+
+void QUmlActivityObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setContext(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(context));
+}
+
+void QUmlActivityObject::setReentrant(bool isReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setReentrant(isReentrant);
+}
+
+void QUmlActivityObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlActivityObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlActivityObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlActivityObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlActivityObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlActivityObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlActivityObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlActivityObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlActivityObject::addRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlActivityObject::removeRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlActivityObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlBehavioralFeature *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Activity]
+
+void QUmlActivityObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlActivityObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlActivityObject::addGroup(QObject *group)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(group));
+}
+
+void QUmlActivityObject::removeGroup(QObject *group)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(group));
+}
+
+void QUmlActivityObject::setReadOnly(bool isReadOnly)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setReadOnly(isReadOnly);
+}
+
+void QUmlActivityObject::setSingleExecution(bool isSingleExecution)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->setSingleExecution(isSingleExecution);
+}
+
+void QUmlActivityObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlActivityObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlActivityObject::addPartition(QObject *partition)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(partition));
+}
+
+void QUmlActivityObject::removePartition(QObject *partition)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removePartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(partition));
+}
+
+void QUmlActivityObject::addStructuredNode(QObject *structuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(structuredNode));
+}
+
+void QUmlActivityObject::removeStructuredNode(QObject *structuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(structuredNode));
+}
+
+void QUmlActivityObject::addVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->addVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+void QUmlActivityObject::removeVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlActivity *>(this)->removeVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactivityobject_p.h b/src/uml/qobjects/qumlactivityobject_p.h
new file mode 100644
index 00000000..ebce4537
--- /dev/null
+++ b/src/uml/qobjects/qumlactivityobject_p.h
@@ -0,0 +1,448 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTIVITYOBJECT_H
+#define QUMLACTIVITYOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActivity;
+class Q_UML_EXPORT QUmlActivityObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Behavior]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(bool isReentrant READ isReentrant)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QSet<QObject *> redefinedBehavior READ redefinedBehavior)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [Activity]
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(QSet<QObject *> group READ group)
+ Q_PROPERTY(bool isReadOnly READ isReadOnly)
+ Q_PROPERTY(bool isSingleExecution READ isSingleExecution)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+ Q_PROPERTY(QSet<QObject *> partition READ partition)
+ Q_PROPERTY(QSet<QObject *> structuredNode READ structuredNode)
+ Q_PROPERTY(QSet<QObject *> variable READ variable)
+
+public:
+ Q_INVOKABLE explicit QUmlActivityObject(QUmlActivity *qModelingObject);
+ virtual ~QUmlActivityObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Behavior]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE bool isReentrant() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedBehavior() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [Activity]
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE const QSet<QObject *> group() const;
+ Q_INVOKABLE bool isReadOnly() const;
+ Q_INVOKABLE bool isSingleExecution() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+ Q_INVOKABLE const QSet<QObject *> partition() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> variable() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Behavior]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void setReentrant(bool isReentrant);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void addRedefinedBehavior(QObject *redefinedBehavior);
+ void removeRedefinedBehavior(QObject *redefinedBehavior);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [Activity]
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void addGroup(QObject *group);
+ void removeGroup(QObject *group);
+ void setReadOnly(bool isReadOnly);
+ void setSingleExecution(bool isSingleExecution);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+ void addPartition(QObject *partition);
+ void removePartition(QObject *partition);
+ void addStructuredNode(QObject *structuredNode);
+ void removeStructuredNode(QObject *structuredNode);
+ void addVariable(QObject *variable);
+ void removeVariable(QObject *variable);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTIVITYOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactivityparameternodeobject.cpp b/src/uml/qobjects/qumlactivityparameternodeobject.cpp
new file mode 100644
index 00000000..43066133
--- /dev/null
+++ b/src/uml/qobjects/qumlactivityparameternodeobject.cpp
@@ -0,0 +1,531 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactivityparameternodeobject_p.h"
+
+#include <QtUml/QUmlActivityParameterNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActivityParameterNodeObject::QUmlActivityParameterNodeObject(QUmlActivityParameterNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActivityParameterNodeObject::~QUmlActivityParameterNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityParameterNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActivityParameterNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->name();
+}
+
+QObject *QUmlActivityParameterNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActivityParameterNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActivityParameterNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlActivityParameterNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlActivityParameterNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlActivityParameterNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityParameterNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlActivityParameterNodeObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlActivityParameterNodeObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityParameterNodeObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlActivityParameterNodeObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->ordering();
+}
+
+QObject *QUmlActivityParameterNodeObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlActivityParameterNodeObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->upperBound()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ActivityParameterNode]
+
+QObject *QUmlActivityParameterNodeObject::parameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->parameter()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActivityParameterNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityParameterNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActivityParameterNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActivityParameterNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityParameterNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActivityParameterNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlActivityParameterNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlActivityParameterNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActivityParameterNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityParameterNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityParameterNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityParameterNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityParameterNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActivityParameterNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityParameterNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityParameterNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setName(name);
+}
+
+void QUmlActivityParameterNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActivityParameterNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActivityParameterNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlActivityParameterNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlActivityParameterNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlActivityParameterNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActivityParameterNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActivityParameterNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlActivityParameterNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlActivityParameterNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlActivityParameterNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlActivityParameterNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlActivityParameterNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlActivityParameterNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlActivityParameterNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlActivityParameterNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlActivityParameterNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlActivityParameterNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlActivityParameterNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlActivityParameterNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlActivityParameterNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlActivityParameterNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlActivityParameterNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlActivityParameterNodeObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlActivityParameterNodeObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlActivityParameterNodeObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlActivityParameterNodeObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setControlType(isControlType);
+}
+
+void QUmlActivityParameterNodeObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setOrdering(ordering);
+}
+
+void QUmlActivityParameterNodeObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlActivityParameterNodeObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityParameterNode]
+
+void QUmlActivityParameterNodeObject::setParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlActivityParameterNode *>(this)->setParameter(qmodelingobjectproperty_cast<QUmlParameter *>(parameter));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactivityparameternodeobject_p.h b/src/uml/qobjects/qumlactivityparameternodeobject_p.h
new file mode 100644
index 00000000..dbcfd41c
--- /dev/null
+++ b/src/uml/qobjects/qumlactivityparameternodeobject_p.h
@@ -0,0 +1,222 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTIVITYPARAMETERNODEOBJECT_H
+#define QUMLACTIVITYPARAMETERNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActivityParameterNode;
+class Q_UML_EXPORT QUmlActivityParameterNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+ // Properties [ActivityParameterNode]
+ Q_PROPERTY(QObject * parameter READ parameter)
+
+public:
+ Q_INVOKABLE explicit QUmlActivityParameterNodeObject(QUmlActivityParameterNode *qModelingObject);
+ virtual ~QUmlActivityParameterNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Owned attributes [ActivityParameterNode]
+ Q_INVOKABLE QObject *parameter() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+
+ // Slots for owned attributes [ActivityParameterNode]
+ void setParameter(QObject *parameter = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTIVITYPARAMETERNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactivitypartitionobject.cpp b/src/uml/qobjects/qumlactivitypartitionobject.cpp
new file mode 100644
index 00000000..b4243e54
--- /dev/null
+++ b/src/uml/qobjects/qumlactivitypartitionobject.cpp
@@ -0,0 +1,413 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactivitypartitionobject_p.h"
+
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActivityPartitionObject::QUmlActivityPartitionObject(QUmlActivityPartition *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActivityPartitionObject::~QUmlActivityPartitionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActivityPartitionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityPartitionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityPartitionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActivityPartitionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActivityPartitionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->name();
+}
+
+QObject *QUmlActivityPartitionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActivityPartitionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActivityPartitionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlActivityPartitionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlActivityPartitionObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActivityPartitionObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityPartitionObject::inActivity() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->inActivity()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityPartitionObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityPartitionObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ActivityPartition]
+
+const QSet<QObject *> QUmlActivityPartitionObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityPartitionObject::isDimension() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->isDimension();
+}
+
+bool QUmlActivityPartitionObject::isExternal() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->isExternal();
+}
+
+const QSet<QObject *> QUmlActivityPartitionObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityPartitionObject::represents() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->represents()->asQObject();
+}
+
+const QSet<QObject *> QUmlActivityPartitionObject::subpartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->subpartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActivityPartitionObject::superPartition() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->superPartition()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActivityPartitionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityPartitionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActivityPartitionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActivityPartitionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActivityPartitionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActivityPartitionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActivityPartitionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityPartitionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActivityPartitionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityPartitionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActivityPartitionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActivityPartitionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityPartitionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActivityPartitionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setName(name);
+}
+
+void QUmlActivityPartitionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActivityPartitionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActivityPartitionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlActivityPartitionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlActivityPartitionObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlActivityPartitionObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlActivityPartitionObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlActivityPartitionObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlActivityPartitionObject::setInActivity(QObject *inActivity)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setInActivity(qmodelingobjectproperty_cast<QUmlActivity *>(inActivity));
+}
+
+void QUmlActivityPartitionObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlActivityPartitionObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlActivityPartitionObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityPartition]
+
+void QUmlActivityPartitionObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlActivityPartitionObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlActivityPartitionObject::setDimension(bool isDimension)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setDimension(isDimension);
+}
+
+void QUmlActivityPartitionObject::setExternal(bool isExternal)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setExternal(isExternal);
+}
+
+void QUmlActivityPartitionObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlActivityPartitionObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlActivityPartitionObject::setRepresents(QObject *represents)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setRepresents(qmodelingobjectproperty_cast<QUmlElement *>(represents));
+}
+
+void QUmlActivityPartitionObject::addSubpartition(QObject *subpartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->addSubpartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(subpartition));
+}
+
+void QUmlActivityPartitionObject::removeSubpartition(QObject *subpartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->removeSubpartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(subpartition));
+}
+
+void QUmlActivityPartitionObject::setSuperPartition(QObject *superPartition)
+{
+ qmodelingobjectproperty_cast<QUmlActivityPartition *>(this)->setSuperPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(superPartition));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactivitypartitionobject_p.h b/src/uml/qobjects/qumlactivitypartitionobject_p.h
new file mode 100644
index 00000000..6b68daf6
--- /dev/null
+++ b/src/uml/qobjects/qumlactivitypartitionobject_p.h
@@ -0,0 +1,179 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTIVITYPARTITIONOBJECT_H
+#define QUMLACTIVITYPARTITIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActivityPartition;
+class Q_UML_EXPORT QUmlActivityPartitionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QObject * inActivity READ inActivity)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [ActivityPartition]
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(bool isDimension READ isDimension)
+ Q_PROPERTY(bool isExternal READ isExternal)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+ Q_PROPERTY(QObject * represents READ represents)
+ Q_PROPERTY(QSet<QObject *> subpartition READ subpartition)
+ Q_PROPERTY(QObject * superPartition READ superPartition)
+
+public:
+ Q_INVOKABLE explicit QUmlActivityPartitionObject(QUmlActivityPartition *qModelingObject);
+ virtual ~QUmlActivityPartitionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE QObject *inActivity() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [ActivityPartition]
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE bool isDimension() const;
+ Q_INVOKABLE bool isExternal() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+ Q_INVOKABLE QObject *represents() const;
+ Q_INVOKABLE const QSet<QObject *> subpartition() const;
+ Q_INVOKABLE QObject *superPartition() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void setInActivity(QObject *inActivity = 0);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [ActivityPartition]
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void setDimension(bool isDimension);
+ void setExternal(bool isExternal);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+ void setRepresents(QObject *represents = 0);
+ void addSubpartition(QObject *subpartition);
+ void removeSubpartition(QObject *subpartition);
+ void setSuperPartition(QObject *superPartition = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTIVITYPARTITIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlactorobject.cpp b/src/uml/qobjects/qumlactorobject.cpp
new file mode 100644
index 00000000..b89d5f80
--- /dev/null
+++ b/src/uml/qobjects/qumlactorobject.cpp
@@ -0,0 +1,903 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlactorobject_p.h"
+
+#include <QtUml/QUmlActor>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlActorObject::QUmlActorObject(QUmlActor *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlActorObject::~QUmlActorObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlActorObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActorObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlActorObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlActorObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->name();
+}
+
+QObject *QUmlActorObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlActorObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlActorObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlActorObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlActorObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlActorObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlActorObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlActorObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlActorObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlActorObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlActorObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActorObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isAbstract();
+}
+
+bool QUmlActorObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlActorObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlActorObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActorObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlActorObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlActorObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlActorObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlActorObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlActorObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlActorObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlActorObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActorObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlActorObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActorObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActorObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlActorObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlActorObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->excludeCollisions(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlActorObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlActorObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->importMembers(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActorObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlActorObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlActorObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlActorObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlActorObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlActorObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlActorObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActorObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActorObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlActorObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlActorObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inputSet;
+ foreach (QObject *object, inhs)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->inherit(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlActorObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlActorObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->isTemplate();
+}
+
+bool QUmlActorObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlActor *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlActorObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlActor *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlActorObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActorObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlActorObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActorObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlActorObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlActorObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActorObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlActorObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setName(name);
+}
+
+void QUmlActorObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlActorObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlActorObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlActorObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlActorObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlActorObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlActorObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlActorObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlActorObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlActorObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlActorObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlActorObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlActorObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlActorObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlActorObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlActorObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlActorObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlActorObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlActorObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlActorObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActorObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlActorObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlActorObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlActorObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlActorObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlActorObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlActorObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlActorObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlActorObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlActorObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlActorObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlActorObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlActorObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlActorObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlActorObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlActorObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlActorObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlActorObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlActorObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlActorObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlActorObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlActorObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlActorObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlActorObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlActorObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlActorObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlActorObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlActorObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlActorObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlActorObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlActorObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlActorObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlActorObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlActorObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlActorObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlActorObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlActorObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlActor *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlactorobject_p.h b/src/uml/qobjects/qumlactorobject_p.h
new file mode 100644
index 00000000..adfa41f7
--- /dev/null
+++ b/src/uml/qobjects/qumlactorobject_p.h
@@ -0,0 +1,318 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLACTOROBJECT_H
+#define QUMLACTOROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlActor;
+class Q_UML_EXPORT QUmlActorObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+public:
+ Q_INVOKABLE explicit QUmlActorObject(QUmlActor *qModelingObject);
+ virtual ~QUmlActorObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLACTOROBJECT_H
+
diff --git a/src/uml/qobjects/qumladdstructuralfeaturevalueactionobject.cpp b/src/uml/qobjects/qumladdstructuralfeaturevalueactionobject.cpp
new file mode 100644
index 00000000..0e9a8235
--- /dev/null
+++ b/src/uml/qobjects/qumladdstructuralfeaturevalueactionobject.cpp
@@ -0,0 +1,631 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumladdstructuralfeaturevalueactionobject_p.h"
+
+#include <QtUml/QUmlAddStructuralFeatureValueAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuralFeature>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAddStructuralFeatureValueActionObject::QUmlAddStructuralFeatureValueActionObject(QUmlAddStructuralFeatureValueAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAddStructuralFeatureValueActionObject::~QUmlAddStructuralFeatureValueActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAddStructuralFeatureValueActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAddStructuralFeatureValueActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->name();
+}
+
+QObject *QUmlAddStructuralFeatureValueActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAddStructuralFeatureValueActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAddStructuralFeatureValueActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlAddStructuralFeatureValueActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlAddStructuralFeatureValueActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlAddStructuralFeatureValueActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAddStructuralFeatureValueActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlAddStructuralFeatureValueActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlAddStructuralFeatureValueActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlAddStructuralFeatureValueActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlAddStructuralFeatureValueActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [StructuralFeatureAction]
+
+QObject *QUmlAddStructuralFeatureValueActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlAddStructuralFeatureValueActionObject::structuralFeature() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->structuralFeature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [WriteStructuralFeatureAction]
+
+QObject *QUmlAddStructuralFeatureValueActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->result()->asQObject();
+}
+
+QObject *QUmlAddStructuralFeatureValueActionObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->value()->asQObject();
+}
+
+// OWNED ATTRIBUTES [AddStructuralFeatureValueAction]
+
+QObject *QUmlAddStructuralFeatureValueActionObject::insertAt() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->insertAt()->asQObject();
+}
+
+bool QUmlAddStructuralFeatureValueActionObject::isReplaceAll() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->isReplaceAll();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAddStructuralFeatureValueActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAddStructuralFeatureValueActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAddStructuralFeatureValueActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAddStructuralFeatureValueActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAddStructuralFeatureValueActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlAddStructuralFeatureValueActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlAddStructuralFeatureValueActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAddStructuralFeatureValueActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAddStructuralFeatureValueActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setName(name);
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlAddStructuralFeatureValueActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlAddStructuralFeatureValueActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlAddStructuralFeatureValueActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlAddStructuralFeatureValueActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
+
+void QUmlAddStructuralFeatureValueActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setStructuralFeature(QObject *structuralFeature)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setStructuralFeature(qmodelingobjectproperty_cast<QUmlStructuralFeature *>(structuralFeature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [WriteStructuralFeatureAction]
+
+void QUmlAddStructuralFeatureValueActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [AddStructuralFeatureValueAction]
+
+void QUmlAddStructuralFeatureValueActionObject::setInsertAt(QObject *insertAt)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setInsertAt(qmodelingobjectproperty_cast<QUmlInputPin *>(insertAt));
+}
+
+void QUmlAddStructuralFeatureValueActionObject::setReplaceAll(bool isReplaceAll)
+{
+ qmodelingobjectproperty_cast<QUmlAddStructuralFeatureValueAction *>(this)->setReplaceAll(isReplaceAll);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumladdstructuralfeaturevalueactionobject_p.h b/src/uml/qobjects/qumladdstructuralfeaturevalueactionobject_p.h
new file mode 100644
index 00000000..13b529f0
--- /dev/null
+++ b/src/uml/qobjects/qumladdstructuralfeaturevalueactionobject_p.h
@@ -0,0 +1,256 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLADDSTRUCTURALFEATUREVALUEACTIONOBJECT_H
+#define QUMLADDSTRUCTURALFEATUREVALUEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAddStructuralFeatureValueAction;
+class Q_UML_EXPORT QUmlAddStructuralFeatureValueActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [StructuralFeatureAction]
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * structuralFeature READ structuralFeature)
+
+ // Properties [WriteStructuralFeatureAction]
+ Q_PROPERTY(QObject * result READ result)
+ Q_PROPERTY(QObject * value READ value)
+
+ // Properties [AddStructuralFeatureValueAction]
+ Q_PROPERTY(QObject * insertAt READ insertAt)
+ Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
+
+public:
+ Q_INVOKABLE explicit QUmlAddStructuralFeatureValueActionObject(QUmlAddStructuralFeatureValueAction *qModelingObject);
+ virtual ~QUmlAddStructuralFeatureValueActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [StructuralFeatureAction]
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *structuralFeature() const;
+
+ // Owned attributes [WriteStructuralFeatureAction]
+ Q_INVOKABLE QObject *result() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Owned attributes [AddStructuralFeatureValueAction]
+ Q_INVOKABLE QObject *insertAt() const;
+ Q_INVOKABLE bool isReplaceAll() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [StructuralFeatureAction]
+ void setObject(QObject *object = 0);
+ void setStructuralFeature(QObject *structuralFeature = 0);
+
+ // Slots for owned attributes [WriteStructuralFeatureAction]
+ void setResult(QObject *result = 0);
+ void setValue(QObject *value = 0);
+
+ // Slots for owned attributes [AddStructuralFeatureValueAction]
+ void setInsertAt(QObject *insertAt = 0);
+ void setReplaceAll(bool isReplaceAll);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLADDSTRUCTURALFEATUREVALUEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumladdvariablevalueactionobject.cpp b/src/uml/qobjects/qumladdvariablevalueactionobject.cpp
new file mode 100644
index 00000000..219c518a
--- /dev/null
+++ b/src/uml/qobjects/qumladdvariablevalueactionobject.cpp
@@ -0,0 +1,611 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumladdvariablevalueactionobject_p.h"
+
+#include <QtUml/QUmlAddVariableValueAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAddVariableValueActionObject::QUmlAddVariableValueActionObject(QUmlAddVariableValueAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAddVariableValueActionObject::~QUmlAddVariableValueActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAddVariableValueActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAddVariableValueActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->name();
+}
+
+QObject *QUmlAddVariableValueActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAddVariableValueActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAddVariableValueActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlAddVariableValueActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlAddVariableValueActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlAddVariableValueActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAddVariableValueActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlAddVariableValueActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlAddVariableValueActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlAddVariableValueActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAddVariableValueActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlAddVariableValueActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [VariableAction]
+
+QObject *QUmlAddVariableValueActionObject::variable() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->variable()->asQObject();
+}
+
+// OWNED ATTRIBUTES [WriteVariableAction]
+
+QObject *QUmlAddVariableValueActionObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->value()->asQObject();
+}
+
+// OWNED ATTRIBUTES [AddVariableValueAction]
+
+QObject *QUmlAddVariableValueActionObject::insertAt() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->insertAt()->asQObject();
+}
+
+bool QUmlAddVariableValueActionObject::isReplaceAll() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->isReplaceAll();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAddVariableValueActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAddVariableValueActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAddVariableValueActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAddVariableValueActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAddVariableValueActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAddVariableValueActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlAddVariableValueActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlAddVariableValueActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAddVariableValueActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAddVariableValueActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAddVariableValueActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAddVariableValueActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAddVariableValueActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAddVariableValueActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAddVariableValueActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAddVariableValueActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setName(name);
+}
+
+void QUmlAddVariableValueActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAddVariableValueActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAddVariableValueActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlAddVariableValueActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlAddVariableValueActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlAddVariableValueActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAddVariableValueActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAddVariableValueActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlAddVariableValueActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlAddVariableValueActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlAddVariableValueActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAddVariableValueActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlAddVariableValueActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAddVariableValueActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlAddVariableValueActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAddVariableValueActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlAddVariableValueActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlAddVariableValueActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAddVariableValueActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlAddVariableValueActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAddVariableValueActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlAddVariableValueActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlAddVariableValueActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlAddVariableValueActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlAddVariableValueActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlAddVariableValueActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlAddVariableValueActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAddVariableValueActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlAddVariableValueActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlAddVariableValueActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAddVariableValueActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlAddVariableValueActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAddVariableValueActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlAddVariableValueActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlAddVariableValueActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
+
+void QUmlAddVariableValueActionObject::setVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [WriteVariableAction]
+
+void QUmlAddVariableValueActionObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [AddVariableValueAction]
+
+void QUmlAddVariableValueActionObject::setInsertAt(QObject *insertAt)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setInsertAt(qmodelingobjectproperty_cast<QUmlInputPin *>(insertAt));
+}
+
+void QUmlAddVariableValueActionObject::setReplaceAll(bool isReplaceAll)
+{
+ qmodelingobjectproperty_cast<QUmlAddVariableValueAction *>(this)->setReplaceAll(isReplaceAll);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumladdvariablevalueactionobject_p.h b/src/uml/qobjects/qumladdvariablevalueactionobject_p.h
new file mode 100644
index 00000000..87894008
--- /dev/null
+++ b/src/uml/qobjects/qumladdvariablevalueactionobject_p.h
@@ -0,0 +1,250 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLADDVARIABLEVALUEACTIONOBJECT_H
+#define QUMLADDVARIABLEVALUEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAddVariableValueAction;
+class Q_UML_EXPORT QUmlAddVariableValueActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [VariableAction]
+ Q_PROPERTY(QObject * variable READ variable)
+
+ // Properties [WriteVariableAction]
+ Q_PROPERTY(QObject * value READ value)
+
+ // Properties [AddVariableValueAction]
+ Q_PROPERTY(QObject * insertAt READ insertAt)
+ Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
+
+public:
+ Q_INVOKABLE explicit QUmlAddVariableValueActionObject(QUmlAddVariableValueAction *qModelingObject);
+ virtual ~QUmlAddVariableValueActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [VariableAction]
+ Q_INVOKABLE QObject *variable() const;
+
+ // Owned attributes [WriteVariableAction]
+ Q_INVOKABLE QObject *value() const;
+
+ // Owned attributes [AddVariableValueAction]
+ Q_INVOKABLE QObject *insertAt() const;
+ Q_INVOKABLE bool isReplaceAll() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [VariableAction]
+ void setVariable(QObject *variable = 0);
+
+ // Slots for owned attributes [WriteVariableAction]
+ void setValue(QObject *value = 0);
+
+ // Slots for owned attributes [AddVariableValueAction]
+ void setInsertAt(QObject *insertAt = 0);
+ void setReplaceAll(bool isReplaceAll);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLADDVARIABLEVALUEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlanyreceiveeventobject.cpp b/src/uml/qobjects/qumlanyreceiveeventobject.cpp
new file mode 100644
index 00000000..e6f9aed1
--- /dev/null
+++ b/src/uml/qobjects/qumlanyreceiveeventobject.cpp
@@ -0,0 +1,273 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlanyreceiveeventobject_p.h"
+
+#include <QtUml/QUmlAnyReceiveEvent>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAnyReceiveEventObject::QUmlAnyReceiveEventObject(QUmlAnyReceiveEvent *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAnyReceiveEventObject::~QUmlAnyReceiveEventObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAnyReceiveEventObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAnyReceiveEventObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAnyReceiveEventObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlAnyReceiveEventObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlAnyReceiveEventObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAnyReceiveEventObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAnyReceiveEventObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->name();
+}
+
+QObject *QUmlAnyReceiveEventObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAnyReceiveEventObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAnyReceiveEventObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlAnyReceiveEventObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->visibility();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAnyReceiveEventObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAnyReceiveEventObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlAnyReceiveEventObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlAnyReceiveEventObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAnyReceiveEventObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAnyReceiveEventObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAnyReceiveEventObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAnyReceiveEventObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAnyReceiveEventObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAnyReceiveEventObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAnyReceiveEventObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAnyReceiveEventObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAnyReceiveEventObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlAnyReceiveEventObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlAnyReceiveEventObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAnyReceiveEventObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAnyReceiveEventObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAnyReceiveEventObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setName(name);
+}
+
+void QUmlAnyReceiveEventObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAnyReceiveEventObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAnyReceiveEventObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlAnyReceiveEventObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAnyReceiveEvent *>(this)->setVisibility(visibility);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlanyreceiveeventobject_p.h b/src/uml/qobjects/qumlanyreceiveeventobject_p.h
new file mode 100644
index 00000000..7aca7d51
--- /dev/null
+++ b/src/uml/qobjects/qumlanyreceiveeventobject_p.h
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLANYRECEIVEEVENTOBJECT_H
+#define QUMLANYRECEIVEEVENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAnyReceiveEvent;
+class Q_UML_EXPORT QUmlAnyReceiveEventObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+public:
+ Q_INVOKABLE explicit QUmlAnyReceiveEventObject(QUmlAnyReceiveEvent *qModelingObject);
+ virtual ~QUmlAnyReceiveEventObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLANYRECEIVEEVENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlartifactobject.cpp b/src/uml/qobjects/qumlartifactobject.cpp
new file mode 100644
index 00000000..7f0b5362
--- /dev/null
+++ b/src/uml/qobjects/qumlartifactobject.cpp
@@ -0,0 +1,939 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlartifactobject_p.h"
+
+#include <QtUml/QUmlArtifact>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlManifestation>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlArtifactObject::QUmlArtifactObject(QUmlArtifact *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlArtifactObject::~QUmlArtifactObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlArtifactObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlArtifactObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlArtifactObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlArtifactObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->name();
+}
+
+QObject *QUmlArtifactObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlArtifactObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlArtifactObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlArtifactObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlArtifactObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlArtifactObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlArtifactObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlArtifactObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlArtifactObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlArtifactObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlArtifactObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlArtifactObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isAbstract();
+}
+
+bool QUmlArtifactObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlArtifactObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlArtifactObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlArtifactObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlArtifactObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlArtifactObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlArtifactObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Artifact]
+
+QString QUmlArtifactObject::fileName() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->fileName();
+}
+
+const QSet<QObject *> QUmlArtifactObject::manifestation() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlManifestation *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->manifestation())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlArtifactObject::nestedArtifact() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlArtifact *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->nestedArtifact())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlArtifactObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlArtifactObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlArtifactObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlArtifactObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlArtifactObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlArtifactObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlArtifactObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlArtifactObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlArtifactObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->excludeCollisions(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlArtifactObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlArtifactObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->importMembers(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlArtifactObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlArtifactObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlArtifactObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlArtifactObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlArtifactObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlArtifactObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlArtifactObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlArtifactObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlArtifactObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlArtifactObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlArtifactObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inputSet;
+ foreach (QObject *object, inhs)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->inherit(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlArtifactObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlArtifactObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->isTemplate();
+}
+
+bool QUmlArtifactObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlArtifact *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlArtifactObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlArtifact *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlArtifactObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlArtifactObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlArtifactObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlArtifactObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlArtifactObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlArtifactObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlArtifactObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlArtifactObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setName(name);
+}
+
+void QUmlArtifactObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlArtifactObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlArtifactObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlArtifactObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlArtifactObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlArtifactObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlArtifactObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlArtifactObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlArtifactObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlArtifactObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlArtifactObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlArtifactObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlArtifactObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlArtifactObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlArtifactObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlArtifactObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlArtifactObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlArtifactObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlArtifactObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlArtifactObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlArtifactObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlArtifactObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlArtifactObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlArtifactObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlArtifactObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlArtifactObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlArtifactObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlArtifactObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlArtifactObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlArtifactObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlArtifactObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlArtifactObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlArtifactObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlArtifactObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlArtifactObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlArtifactObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlArtifactObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlArtifactObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlArtifactObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlArtifactObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlArtifactObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlArtifactObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlArtifactObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlArtifactObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlArtifactObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlArtifactObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlArtifactObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlArtifactObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlArtifactObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlArtifactObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlArtifactObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlArtifactObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Artifact]
+
+void QUmlArtifactObject::setFileName(QString fileName)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->setFileName(fileName);
+}
+
+void QUmlArtifactObject::addManifestation(QObject *manifestation)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addManifestation(qmodelingobjectproperty_cast<QUmlManifestation *>(manifestation));
+}
+
+void QUmlArtifactObject::removeManifestation(QObject *manifestation)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeManifestation(qmodelingobjectproperty_cast<QUmlManifestation *>(manifestation));
+}
+
+void QUmlArtifactObject::addNestedArtifact(QObject *nestedArtifact)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addNestedArtifact(qmodelingobjectproperty_cast<QUmlArtifact *>(nestedArtifact));
+}
+
+void QUmlArtifactObject::removeNestedArtifact(QObject *nestedArtifact)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeNestedArtifact(qmodelingobjectproperty_cast<QUmlArtifact *>(nestedArtifact));
+}
+
+void QUmlArtifactObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlArtifactObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlArtifactObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlArtifactObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlArtifact *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlartifactobject_p.h b/src/uml/qobjects/qumlartifactobject_p.h
new file mode 100644
index 00000000..858de261
--- /dev/null
+++ b/src/uml/qobjects/qumlartifactobject_p.h
@@ -0,0 +1,326 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLARTIFACTOBJECT_H
+#define QUMLARTIFACTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlArtifact;
+class Q_UML_EXPORT QUmlArtifactObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Artifact]
+ Q_PROPERTY(QString fileName READ fileName)
+ Q_PROPERTY(QSet<QObject *> manifestation READ manifestation)
+ Q_PROPERTY(QSet<QObject *> nestedArtifact READ nestedArtifact)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+
+public:
+ Q_INVOKABLE explicit QUmlArtifactObject(QUmlArtifact *qModelingObject);
+ virtual ~QUmlArtifactObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Artifact]
+ Q_INVOKABLE QString fileName() const;
+ Q_INVOKABLE const QSet<QObject *> manifestation() const;
+ Q_INVOKABLE const QSet<QObject *> nestedArtifact() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Artifact]
+ void setFileName(QString fileName);
+ void addManifestation(QObject *manifestation);
+ void removeManifestation(QObject *manifestation);
+ void addNestedArtifact(QObject *nestedArtifact);
+ void removeNestedArtifact(QObject *nestedArtifact);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLARTIFACTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlassociationclassobject.cpp b/src/uml/qobjects/qumlassociationclassobject.cpp
new file mode 100644
index 00000000..9fa79372
--- /dev/null
+++ b/src/uml/qobjects/qumlassociationclassobject.cpp
@@ -0,0 +1,1204 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlassociationclassobject_p.h"
+
+#include <QtUml/QUmlAssociationClass>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAssociationClassObject::QUmlAssociationClassObject(QUmlAssociationClass *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAssociationClassObject::~QUmlAssociationClassObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAssociationClassObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAssociationClassObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAssociationClassObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->name();
+}
+
+QObject *QUmlAssociationClassObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAssociationClassObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAssociationClassObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlAssociationClassObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlAssociationClassObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlAssociationClassObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlAssociationClassObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlAssociationClassObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlAssociationClassObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlAssociationClassObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlAssociationClassObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAssociationClassObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAssociationClassObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlAssociationClassObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlAssociationClassObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isAbstract();
+}
+
+bool QUmlAssociationClassObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlAssociationClassObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlAssociationClassObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlAssociationClassObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlAssociationClassObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Association]
+
+const QList<QObject *> QUmlAssociationClassObject::endType() const
+{
+ QList<QObject *> list;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->endType())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlAssociationClassObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isDerived();
+}
+
+const QList<QObject *> QUmlAssociationClassObject::memberEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->memberEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlAssociationClassObject::navigableOwnedEnd() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->navigableOwnedEnd())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlAssociationClassObject::ownedEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->ownedEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAssociationClassObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAssociationClassObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAssociationClassObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAssociationClassObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlAssociationClassObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlAssociationClassObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlAssociationClassObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlAssociationClassObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlAssociationClassObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlAssociationClassObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlAssociationClassObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlAssociationClassObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlAssociationClassObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAssociationClassObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlAssociationClassObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlAssociationClassObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationClassObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->isTemplate();
+}
+
+bool QUmlAssociationClassObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlAssociationClassObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlAssociationClassObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAssociationClassObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAssociationClassObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAssociationClassObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAssociationClassObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAssociationClassObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAssociationClassObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAssociationClassObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAssociationClassObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setName(name);
+}
+
+void QUmlAssociationClassObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAssociationClassObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAssociationClassObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlAssociationClassObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlAssociationClassObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlAssociationClassObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlAssociationClassObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlAssociationClassObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlAssociationClassObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlAssociationClassObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlAssociationClassObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlAssociationClassObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlAssociationClassObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlAssociationClassObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlAssociationClassObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlAssociationClassObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlAssociationClassObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlAssociationClassObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlAssociationClassObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlAssociationClassObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAssociationClassObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAssociationClassObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlAssociationClassObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlAssociationClassObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlAssociationClassObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlAssociationClassObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlAssociationClassObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlAssociationClassObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlAssociationClassObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlAssociationClassObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlAssociationClassObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlAssociationClassObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlAssociationClassObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlAssociationClassObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlAssociationClassObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlAssociationClassObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlAssociationClassObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlAssociationClassObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlAssociationClassObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlAssociationClassObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlAssociationClassObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlAssociationClassObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlAssociationClassObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlAssociationClassObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlAssociationClassObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlAssociationClassObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlAssociationClassObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlAssociationClassObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlAssociationClassObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlAssociationClassObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlAssociationClassObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlAssociationClassObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlAssociationClassObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlAssociationClassObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlAssociationClassObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlAssociationClassObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlAssociationClassObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlAssociationClassObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlAssociationClassObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlAssociationClassObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlAssociationClassObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlAssociationClassObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlAssociationClassObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlAssociationClassObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlAssociationClassObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlAssociationClassObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setActive(isActive);
+}
+
+void QUmlAssociationClassObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlAssociationClassObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlAssociationClassObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlAssociationClassObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlAssociationClassObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlAssociationClassObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlAssociationClassObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlAssociationClassObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlAssociationClassObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlAssociationClassObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlAssociationClassObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlAssociationClassObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Association]
+
+void QUmlAssociationClassObject::addEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlAssociationClassObject::removeEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlAssociationClassObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->setDerived(isDerived);
+}
+
+void QUmlAssociationClassObject::addMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlAssociationClassObject::removeMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlAssociationClassObject::addNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlAssociationClassObject::removeNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlAssociationClassObject::addOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->addOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(ownedEnd));
+}
+
+void QUmlAssociationClassObject::removeOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociationClass *>(this)->removeOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(ownedEnd));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlassociationclassobject_p.h b/src/uml/qobjects/qumlassociationclassobject_p.h
new file mode 100644
index 00000000..e1ae5b91
--- /dev/null
+++ b/src/uml/qobjects/qumlassociationclassobject_p.h
@@ -0,0 +1,412 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLASSOCIATIONCLASSOBJECT_H
+#define QUMLASSOCIATIONCLASSOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAssociationClass;
+class Q_UML_EXPORT QUmlAssociationClassObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [Association]
+ Q_PROPERTY(QList<QObject *> endType READ endType)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(QList<QObject *> memberEnd READ memberEnd)
+ Q_PROPERTY(QSet<QObject *> navigableOwnedEnd READ navigableOwnedEnd)
+ Q_PROPERTY(QList<QObject *> ownedEnd READ ownedEnd)
+
+public:
+ Q_INVOKABLE explicit QUmlAssociationClassObject(QUmlAssociationClass *qModelingObject);
+ virtual ~QUmlAssociationClassObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [Association]
+ Q_INVOKABLE const QList<QObject *> endType() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE const QList<QObject *> memberEnd() const;
+ Q_INVOKABLE const QSet<QObject *> navigableOwnedEnd() const;
+ Q_INVOKABLE const QList<QObject *> ownedEnd() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [Association]
+ void Q_DECL_HIDDEN addEndType(QObject *endType);
+ void Q_DECL_HIDDEN removeEndType(QObject *endType);
+ void setDerived(bool isDerived);
+ void addMemberEnd(QObject *memberEnd);
+ void removeMemberEnd(QObject *memberEnd);
+ void addNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void removeNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void addOwnedEnd(QObject *ownedEnd);
+ void removeOwnedEnd(QObject *ownedEnd);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLASSOCIATIONCLASSOBJECT_H
+
diff --git a/src/uml/qobjects/qumlassociationobject.cpp b/src/uml/qobjects/qumlassociationobject.cpp
new file mode 100644
index 00000000..841fec68
--- /dev/null
+++ b/src/uml/qobjects/qumlassociationobject.cpp
@@ -0,0 +1,959 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlassociationobject_p.h"
+
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlAssociationObject::QUmlAssociationObject(QUmlAssociation *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlAssociationObject::~QUmlAssociationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlAssociationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAssociationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlAssociationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlAssociationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->name();
+}
+
+QObject *QUmlAssociationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlAssociationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlAssociationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlAssociationObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlAssociationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlAssociationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlAssociationObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlAssociationObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlAssociationObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlAssociationObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlAssociationObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isAbstract();
+}
+
+bool QUmlAssociationObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlAssociationObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlAssociationObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAssociationObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlAssociationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlAssociationObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlAssociationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Association]
+
+const QList<QObject *> QUmlAssociationObject::endType() const
+{
+ QList<QObject *> list;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->endType())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlAssociationObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isDerived();
+}
+
+const QList<QObject *> QUmlAssociationObject::memberEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->memberEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlAssociationObject::navigableOwnedEnd() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->navigableOwnedEnd())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlAssociationObject::ownedEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->ownedEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlAssociationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlAssociationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAssociationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlAssociationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlAssociationObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->excludeCollisions(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlAssociationObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlAssociationObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> inputSet;
+ foreach (QObject *object, imps)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->importMembers(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlAssociationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlAssociationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlAssociationObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlAssociationObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlAssociationObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlAssociationObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAssociationObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlAssociationObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlAssociationObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inputSet;
+ foreach (QObject *object, inhs)
+ inputSet.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->inherit(inputSet))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlAssociationObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlAssociationObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->isTemplate();
+}
+
+bool QUmlAssociationObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlAssociation *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlAssociationObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlAssociation *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlAssociationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAssociationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlAssociationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAssociationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlAssociationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlAssociationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAssociationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlAssociationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setName(name);
+}
+
+void QUmlAssociationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlAssociationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlAssociationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlAssociationObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlAssociationObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlAssociationObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlAssociationObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlAssociationObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlAssociationObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlAssociationObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlAssociationObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlAssociationObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlAssociationObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlAssociationObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlAssociationObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlAssociationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlAssociationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlAssociationObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlAssociationObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlAssociationObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAssociationObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlAssociationObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlAssociationObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlAssociationObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlAssociationObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlAssociationObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlAssociationObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlAssociationObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlAssociationObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlAssociationObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlAssociationObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlAssociationObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlAssociationObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlAssociationObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlAssociationObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlAssociationObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlAssociationObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlAssociationObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlAssociationObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlAssociationObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlAssociationObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlAssociationObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlAssociationObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlAssociationObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlAssociationObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlAssociationObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlAssociationObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlAssociationObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlAssociationObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlAssociationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlAssociationObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlAssociationObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlAssociationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlAssociationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Association]
+
+void QUmlAssociationObject::addEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlAssociationObject::removeEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlAssociationObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->setDerived(isDerived);
+}
+
+void QUmlAssociationObject::addMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlAssociationObject::removeMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlAssociationObject::addNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlAssociationObject::removeNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlAssociationObject::addOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->addOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(ownedEnd));
+}
+
+void QUmlAssociationObject::removeOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlAssociation *>(this)->removeOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(ownedEnd));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlassociationobject_p.h b/src/uml/qobjects/qumlassociationobject_p.h
new file mode 100644
index 00000000..21cbcee9
--- /dev/null
+++ b/src/uml/qobjects/qumlassociationobject_p.h
@@ -0,0 +1,336 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLASSOCIATIONOBJECT_H
+#define QUMLASSOCIATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlAssociation;
+class Q_UML_EXPORT QUmlAssociationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [Association]
+ Q_PROPERTY(QList<QObject *> endType READ endType)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(QList<QObject *> memberEnd READ memberEnd)
+ Q_PROPERTY(QSet<QObject *> navigableOwnedEnd READ navigableOwnedEnd)
+ Q_PROPERTY(QList<QObject *> ownedEnd READ ownedEnd)
+
+public:
+ Q_INVOKABLE explicit QUmlAssociationObject(QUmlAssociation *qModelingObject);
+ virtual ~QUmlAssociationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [Association]
+ Q_INVOKABLE const QList<QObject *> endType() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE const QList<QObject *> memberEnd() const;
+ Q_INVOKABLE const QSet<QObject *> navigableOwnedEnd() const;
+ Q_INVOKABLE const QList<QObject *> ownedEnd() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [Association]
+ void Q_DECL_HIDDEN addEndType(QObject *endType);
+ void Q_DECL_HIDDEN removeEndType(QObject *endType);
+ void setDerived(bool isDerived);
+ void addMemberEnd(QObject *memberEnd);
+ void removeMemberEnd(QObject *memberEnd);
+ void addNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void removeNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void addOwnedEnd(QObject *ownedEnd);
+ void removeOwnedEnd(QObject *ownedEnd);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLASSOCIATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlbehaviorexecutionspecificationobject.cpp b/src/uml/qobjects/qumlbehaviorexecutionspecificationobject.cpp
new file mode 100644
index 00000000..400f55e7
--- /dev/null
+++ b/src/uml/qobjects/qumlbehaviorexecutionspecificationobject.cpp
@@ -0,0 +1,337 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlbehaviorexecutionspecificationobject_p.h"
+
+#include <QtUml/QUmlBehaviorExecutionSpecification>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOccurrenceSpecification>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlBehaviorExecutionSpecificationObject::QUmlBehaviorExecutionSpecificationObject(QUmlBehaviorExecutionSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlBehaviorExecutionSpecificationObject::~QUmlBehaviorExecutionSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlBehaviorExecutionSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlBehaviorExecutionSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->name();
+}
+
+QObject *QUmlBehaviorExecutionSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlBehaviorExecutionSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlBehaviorExecutionSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlBehaviorExecutionSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlBehaviorExecutionSpecificationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlBehaviorExecutionSpecificationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutionSpecification]
+
+QObject *QUmlBehaviorExecutionSpecificationObject::finish() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->finish()->asQObject();
+}
+
+QObject *QUmlBehaviorExecutionSpecificationObject::start() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->start()->asQObject();
+}
+
+// OWNED ATTRIBUTES [BehaviorExecutionSpecification]
+
+QObject *QUmlBehaviorExecutionSpecificationObject::behavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->behavior()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlBehaviorExecutionSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlBehaviorExecutionSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlBehaviorExecutionSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlBehaviorExecutionSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlBehaviorExecutionSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlBehaviorExecutionSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlBehaviorExecutionSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setName(name);
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlBehaviorExecutionSpecificationObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutionSpecification]
+
+void QUmlBehaviorExecutionSpecificationObject::setFinish(QObject *finish)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setFinish(qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(finish));
+}
+
+void QUmlBehaviorExecutionSpecificationObject::setStart(QObject *start)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setStart(qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(start));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehaviorExecutionSpecification]
+
+void QUmlBehaviorExecutionSpecificationObject::setBehavior(QObject *behavior)
+{
+ qmodelingobjectproperty_cast<QUmlBehaviorExecutionSpecification *>(this)->setBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(behavior));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlbehaviorexecutionspecificationobject_p.h b/src/uml/qobjects/qumlbehaviorexecutionspecificationobject_p.h
new file mode 100644
index 00000000..bd9a70d7
--- /dev/null
+++ b/src/uml/qobjects/qumlbehaviorexecutionspecificationobject_p.h
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLBEHAVIOREXECUTIONSPECIFICATIONOBJECT_H
+#define QUMLBEHAVIOREXECUTIONSPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlBehaviorExecutionSpecification;
+class Q_UML_EXPORT QUmlBehaviorExecutionSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [ExecutionSpecification]
+ Q_PROPERTY(QObject * finish READ finish)
+ Q_PROPERTY(QObject * start READ start)
+
+ // Properties [BehaviorExecutionSpecification]
+ Q_PROPERTY(QObject * behavior READ behavior)
+
+public:
+ Q_INVOKABLE explicit QUmlBehaviorExecutionSpecificationObject(QUmlBehaviorExecutionSpecification *qModelingObject);
+ virtual ~QUmlBehaviorExecutionSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [ExecutionSpecification]
+ Q_INVOKABLE QObject *finish() const;
+ Q_INVOKABLE QObject *start() const;
+
+ // Owned attributes [BehaviorExecutionSpecification]
+ Q_INVOKABLE QObject *behavior() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [ExecutionSpecification]
+ void setFinish(QObject *finish = 0);
+ void setStart(QObject *start = 0);
+
+ // Slots for owned attributes [BehaviorExecutionSpecification]
+ void setBehavior(QObject *behavior = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLBEHAVIOREXECUTIONSPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlbroadcastsignalactionobject.cpp b/src/uml/qobjects/qumlbroadcastsignalactionobject.cpp
new file mode 100644
index 00000000..282bd43e
--- /dev/null
+++ b/src/uml/qobjects/qumlbroadcastsignalactionobject.cpp
@@ -0,0 +1,606 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlbroadcastsignalactionobject_p.h"
+
+#include <QtUml/QUmlBroadcastSignalAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlSignal>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlBroadcastSignalActionObject::QUmlBroadcastSignalActionObject(QUmlBroadcastSignalAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlBroadcastSignalActionObject::~QUmlBroadcastSignalActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlBroadcastSignalActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlBroadcastSignalActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->name();
+}
+
+QObject *QUmlBroadcastSignalActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlBroadcastSignalActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlBroadcastSignalActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlBroadcastSignalActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlBroadcastSignalActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlBroadcastSignalActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlBroadcastSignalActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlBroadcastSignalActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlBroadcastSignalActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlBroadcastSignalActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlBroadcastSignalActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlBroadcastSignalActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [InvocationAction]
+
+const QList<QObject *> QUmlBroadcastSignalActionObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlBroadcastSignalActionObject::onPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->onPort()->asQObject();
+}
+
+// OWNED ATTRIBUTES [BroadcastSignalAction]
+
+QObject *QUmlBroadcastSignalActionObject::signal() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->signal()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlBroadcastSignalActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlBroadcastSignalActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlBroadcastSignalActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlBroadcastSignalActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlBroadcastSignalActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlBroadcastSignalActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlBroadcastSignalActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlBroadcastSignalActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlBroadcastSignalActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlBroadcastSignalActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlBroadcastSignalActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlBroadcastSignalActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlBroadcastSignalActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlBroadcastSignalActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlBroadcastSignalActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlBroadcastSignalActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setName(name);
+}
+
+void QUmlBroadcastSignalActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlBroadcastSignalActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlBroadcastSignalActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlBroadcastSignalActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlBroadcastSignalActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlBroadcastSignalActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlBroadcastSignalActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlBroadcastSignalActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlBroadcastSignalActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlBroadcastSignalActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlBroadcastSignalActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlBroadcastSignalActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlBroadcastSignalActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlBroadcastSignalActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlBroadcastSignalActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlBroadcastSignalActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlBroadcastSignalActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlBroadcastSignalActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlBroadcastSignalActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlBroadcastSignalActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlBroadcastSignalActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlBroadcastSignalActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlBroadcastSignalActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlBroadcastSignalActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlBroadcastSignalActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlBroadcastSignalActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlBroadcastSignalActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlBroadcastSignalActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlBroadcastSignalActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlBroadcastSignalActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlBroadcastSignalActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlBroadcastSignalActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlBroadcastSignalActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlBroadcastSignalActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlBroadcastSignalActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
+
+void QUmlBroadcastSignalActionObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlBroadcastSignalActionObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlBroadcastSignalActionObject::setOnPort(QObject *onPort)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setOnPort(qmodelingobjectproperty_cast<QUmlPort *>(onPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BroadcastSignalAction]
+
+void QUmlBroadcastSignalActionObject::setSignal(QObject *signal)
+{
+ qmodelingobjectproperty_cast<QUmlBroadcastSignalAction *>(this)->setSignal(qmodelingobjectproperty_cast<QUmlSignal *>(signal));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlbroadcastsignalactionobject_p.h b/src/uml/qobjects/qumlbroadcastsignalactionobject_p.h
new file mode 100644
index 00000000..af74e8d4
--- /dev/null
+++ b/src/uml/qobjects/qumlbroadcastsignalactionobject_p.h
@@ -0,0 +1,242 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLBROADCASTSIGNALACTIONOBJECT_H
+#define QUMLBROADCASTSIGNALACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlBroadcastSignalAction;
+class Q_UML_EXPORT QUmlBroadcastSignalActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [InvocationAction]
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * onPort READ onPort)
+
+ // Properties [BroadcastSignalAction]
+ Q_PROPERTY(QObject * signal READ signal)
+
+public:
+ Q_INVOKABLE explicit QUmlBroadcastSignalActionObject(QUmlBroadcastSignalAction *qModelingObject);
+ virtual ~QUmlBroadcastSignalActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [InvocationAction]
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *onPort() const;
+
+ // Owned attributes [BroadcastSignalAction]
+ Q_INVOKABLE QObject *signal() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [InvocationAction]
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setOnPort(QObject *onPort = 0);
+
+ // Slots for owned attributes [BroadcastSignalAction]
+ void setSignal(QObject *signal = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLBROADCASTSIGNALACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcallbehavioractionobject.cpp b/src/uml/qobjects/qumlcallbehavioractionobject.cpp
new file mode 100644
index 00000000..f042942d
--- /dev/null
+++ b/src/uml/qobjects/qumlcallbehavioractionobject.cpp
@@ -0,0 +1,638 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcallbehavioractionobject_p.h"
+
+#include <QtUml/QUmlCallBehaviorAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCallBehaviorActionObject::QUmlCallBehaviorActionObject(QUmlCallBehaviorAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCallBehaviorActionObject::~QUmlCallBehaviorActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCallBehaviorActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCallBehaviorActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->name();
+}
+
+QObject *QUmlCallBehaviorActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCallBehaviorActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCallBehaviorActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCallBehaviorActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCallBehaviorActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlCallBehaviorActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCallBehaviorActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlCallBehaviorActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlCallBehaviorActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlCallBehaviorActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallBehaviorActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlCallBehaviorActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [InvocationAction]
+
+const QList<QObject *> QUmlCallBehaviorActionObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlCallBehaviorActionObject::onPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->onPort()->asQObject();
+}
+
+// OWNED ATTRIBUTES [CallAction]
+
+bool QUmlCallBehaviorActionObject::isSynchronous() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->isSynchronous();
+}
+
+const QList<QObject *> QUmlCallBehaviorActionObject::result() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->result())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [CallBehaviorAction]
+
+QObject *QUmlCallBehaviorActionObject::behavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->behavior()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCallBehaviorActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCallBehaviorActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCallBehaviorActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCallBehaviorActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCallBehaviorActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCallBehaviorActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCallBehaviorActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCallBehaviorActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCallBehaviorActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCallBehaviorActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCallBehaviorActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCallBehaviorActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCallBehaviorActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCallBehaviorActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCallBehaviorActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCallBehaviorActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setName(name);
+}
+
+void QUmlCallBehaviorActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCallBehaviorActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCallBehaviorActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCallBehaviorActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCallBehaviorActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCallBehaviorActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCallBehaviorActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCallBehaviorActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCallBehaviorActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlCallBehaviorActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlCallBehaviorActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCallBehaviorActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCallBehaviorActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCallBehaviorActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCallBehaviorActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCallBehaviorActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCallBehaviorActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlCallBehaviorActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCallBehaviorActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCallBehaviorActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCallBehaviorActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCallBehaviorActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlCallBehaviorActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlCallBehaviorActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlCallBehaviorActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlCallBehaviorActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlCallBehaviorActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCallBehaviorActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCallBehaviorActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlCallBehaviorActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCallBehaviorActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCallBehaviorActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCallBehaviorActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCallBehaviorActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlCallBehaviorActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
+
+void QUmlCallBehaviorActionObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlCallBehaviorActionObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlCallBehaviorActionObject::setOnPort(QObject *onPort)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setOnPort(qmodelingobjectproperty_cast<QUmlPort *>(onPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CallAction]
+
+void QUmlCallBehaviorActionObject::setSynchronous(bool isSynchronous)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setSynchronous(isSynchronous);
+}
+
+void QUmlCallBehaviorActionObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlCallBehaviorActionObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CallBehaviorAction]
+
+void QUmlCallBehaviorActionObject::setBehavior(QObject *behavior)
+{
+ qmodelingobjectproperty_cast<QUmlCallBehaviorAction *>(this)->setBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(behavior));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcallbehavioractionobject_p.h b/src/uml/qobjects/qumlcallbehavioractionobject_p.h
new file mode 100644
index 00000000..94682c4a
--- /dev/null
+++ b/src/uml/qobjects/qumlcallbehavioractionobject_p.h
@@ -0,0 +1,255 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCALLBEHAVIORACTIONOBJECT_H
+#define QUMLCALLBEHAVIORACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCallBehaviorAction;
+class Q_UML_EXPORT QUmlCallBehaviorActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [InvocationAction]
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * onPort READ onPort)
+
+ // Properties [CallAction]
+ Q_PROPERTY(bool isSynchronous READ isSynchronous)
+ Q_PROPERTY(QList<QObject *> result READ result)
+
+ // Properties [CallBehaviorAction]
+ Q_PROPERTY(QObject * behavior READ behavior)
+
+public:
+ Q_INVOKABLE explicit QUmlCallBehaviorActionObject(QUmlCallBehaviorAction *qModelingObject);
+ virtual ~QUmlCallBehaviorActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [InvocationAction]
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *onPort() const;
+
+ // Owned attributes [CallAction]
+ Q_INVOKABLE bool isSynchronous() const;
+ Q_INVOKABLE const QList<QObject *> result() const;
+
+ // Owned attributes [CallBehaviorAction]
+ Q_INVOKABLE QObject *behavior() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [InvocationAction]
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setOnPort(QObject *onPort = 0);
+
+ // Slots for owned attributes [CallAction]
+ void setSynchronous(bool isSynchronous);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+
+ // Slots for owned attributes [CallBehaviorAction]
+ void setBehavior(QObject *behavior = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCALLBEHAVIORACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcalleventobject.cpp b/src/uml/qobjects/qumlcalleventobject.cpp
new file mode 100644
index 00000000..e0c9dc19
--- /dev/null
+++ b/src/uml/qobjects/qumlcalleventobject.cpp
@@ -0,0 +1,288 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcalleventobject_p.h"
+
+#include <QtUml/QUmlCallEvent>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCallEventObject::QUmlCallEventObject(QUmlCallEvent *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCallEventObject::~QUmlCallEventObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCallEventObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallEventObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCallEventObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlCallEventObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlCallEventObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCallEventObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCallEventObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->name();
+}
+
+QObject *QUmlCallEventObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCallEventObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCallEventObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlCallEventObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [CallEvent]
+
+QObject *QUmlCallEventObject::operation() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->operation()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCallEventObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCallEventObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlCallEventObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlCallEventObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCallEventObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCallEventObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCallEventObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCallEventObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCallEventObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCallEventObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCallEventObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCallEventObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCallEventObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlCallEventObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlCallEventObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCallEventObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCallEventObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCallEventObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setName(name);
+}
+
+void QUmlCallEventObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCallEventObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCallEventObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlCallEventObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CallEvent]
+
+void QUmlCallEventObject::setOperation(QObject *operation)
+{
+ qmodelingobjectproperty_cast<QUmlCallEvent *>(this)->setOperation(qmodelingobjectproperty_cast<QUmlOperation *>(operation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcalleventobject_p.h b/src/uml/qobjects/qumlcalleventobject_p.h
new file mode 100644
index 00000000..d6cdad57
--- /dev/null
+++ b/src/uml/qobjects/qumlcalleventobject_p.h
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCALLEVENTOBJECT_H
+#define QUMLCALLEVENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCallEvent;
+class Q_UML_EXPORT QUmlCallEventObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [CallEvent]
+ Q_PROPERTY(QObject * operation READ operation)
+
+public:
+ Q_INVOKABLE explicit QUmlCallEventObject(QUmlCallEvent *qModelingObject);
+ virtual ~QUmlCallEventObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [CallEvent]
+ Q_INVOKABLE QObject *operation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [CallEvent]
+ void setOperation(QObject *operation = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCALLEVENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcalloperationactionobject.cpp b/src/uml/qobjects/qumlcalloperationactionobject.cpp
new file mode 100644
index 00000000..40388e7c
--- /dev/null
+++ b/src/uml/qobjects/qumlcalloperationactionobject.cpp
@@ -0,0 +1,648 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcalloperationactionobject_p.h"
+
+#include <QtUml/QUmlCallOperationAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCallOperationActionObject::QUmlCallOperationActionObject(QUmlCallOperationAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCallOperationActionObject::~QUmlCallOperationActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCallOperationActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCallOperationActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCallOperationActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCallOperationActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->name();
+}
+
+QObject *QUmlCallOperationActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCallOperationActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCallOperationActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCallOperationActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCallOperationActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlCallOperationActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCallOperationActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlCallOperationActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlCallOperationActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlCallOperationActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlCallOperationActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCallOperationActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlCallOperationActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [InvocationAction]
+
+const QList<QObject *> QUmlCallOperationActionObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlCallOperationActionObject::onPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->onPort()->asQObject();
+}
+
+// OWNED ATTRIBUTES [CallAction]
+
+bool QUmlCallOperationActionObject::isSynchronous() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->isSynchronous();
+}
+
+const QList<QObject *> QUmlCallOperationActionObject::result() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->result())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [CallOperationAction]
+
+QObject *QUmlCallOperationActionObject::operation() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->operation()->asQObject();
+}
+
+QObject *QUmlCallOperationActionObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->target()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCallOperationActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCallOperationActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCallOperationActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCallOperationActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCallOperationActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCallOperationActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCallOperationActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCallOperationActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCallOperationActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCallOperationActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCallOperationActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCallOperationActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCallOperationActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCallOperationActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCallOperationActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCallOperationActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setName(name);
+}
+
+void QUmlCallOperationActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCallOperationActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCallOperationActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCallOperationActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCallOperationActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCallOperationActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCallOperationActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCallOperationActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCallOperationActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlCallOperationActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlCallOperationActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCallOperationActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCallOperationActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCallOperationActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCallOperationActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCallOperationActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCallOperationActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlCallOperationActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCallOperationActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCallOperationActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCallOperationActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCallOperationActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlCallOperationActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlCallOperationActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlCallOperationActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlCallOperationActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlCallOperationActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCallOperationActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCallOperationActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlCallOperationActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCallOperationActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCallOperationActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCallOperationActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCallOperationActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlCallOperationActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
+
+void QUmlCallOperationActionObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlCallOperationActionObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlCallOperationActionObject::setOnPort(QObject *onPort)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setOnPort(qmodelingobjectproperty_cast<QUmlPort *>(onPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CallAction]
+
+void QUmlCallOperationActionObject::setSynchronous(bool isSynchronous)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setSynchronous(isSynchronous);
+}
+
+void QUmlCallOperationActionObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlCallOperationActionObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CallOperationAction]
+
+void QUmlCallOperationActionObject::setOperation(QObject *operation)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setOperation(qmodelingobjectproperty_cast<QUmlOperation *>(operation));
+}
+
+void QUmlCallOperationActionObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlCallOperationAction *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlInputPin *>(target));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcalloperationactionobject_p.h b/src/uml/qobjects/qumlcalloperationactionobject_p.h
new file mode 100644
index 00000000..e5e83310
--- /dev/null
+++ b/src/uml/qobjects/qumlcalloperationactionobject_p.h
@@ -0,0 +1,258 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCALLOPERATIONACTIONOBJECT_H
+#define QUMLCALLOPERATIONACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCallOperationAction;
+class Q_UML_EXPORT QUmlCallOperationActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [InvocationAction]
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * onPort READ onPort)
+
+ // Properties [CallAction]
+ Q_PROPERTY(bool isSynchronous READ isSynchronous)
+ Q_PROPERTY(QList<QObject *> result READ result)
+
+ // Properties [CallOperationAction]
+ Q_PROPERTY(QObject * operation READ operation)
+ Q_PROPERTY(QObject * target READ target)
+
+public:
+ Q_INVOKABLE explicit QUmlCallOperationActionObject(QUmlCallOperationAction *qModelingObject);
+ virtual ~QUmlCallOperationActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [InvocationAction]
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *onPort() const;
+
+ // Owned attributes [CallAction]
+ Q_INVOKABLE bool isSynchronous() const;
+ Q_INVOKABLE const QList<QObject *> result() const;
+
+ // Owned attributes [CallOperationAction]
+ Q_INVOKABLE QObject *operation() const;
+ Q_INVOKABLE QObject *target() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [InvocationAction]
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setOnPort(QObject *onPort = 0);
+
+ // Slots for owned attributes [CallAction]
+ void setSynchronous(bool isSynchronous);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+
+ // Slots for owned attributes [CallOperationAction]
+ void setOperation(QObject *operation = 0);
+ void setTarget(QObject *target = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCALLOPERATIONACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcentralbuffernodeobject.cpp b/src/uml/qobjects/qumlcentralbuffernodeobject.cpp
new file mode 100644
index 00000000..554eb67a
--- /dev/null
+++ b/src/uml/qobjects/qumlcentralbuffernodeobject.cpp
@@ -0,0 +1,516 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcentralbuffernodeobject_p.h"
+
+#include <QtUml/QUmlCentralBufferNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCentralBufferNodeObject::QUmlCentralBufferNodeObject(QUmlCentralBufferNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCentralBufferNodeObject::~QUmlCentralBufferNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCentralBufferNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCentralBufferNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->name();
+}
+
+QObject *QUmlCentralBufferNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCentralBufferNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCentralBufferNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCentralBufferNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCentralBufferNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlCentralBufferNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCentralBufferNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlCentralBufferNodeObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlCentralBufferNodeObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCentralBufferNodeObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlCentralBufferNodeObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->ordering();
+}
+
+QObject *QUmlCentralBufferNodeObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlCentralBufferNodeObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->upperBound()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCentralBufferNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCentralBufferNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCentralBufferNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCentralBufferNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCentralBufferNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCentralBufferNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCentralBufferNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCentralBufferNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCentralBufferNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCentralBufferNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCentralBufferNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCentralBufferNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCentralBufferNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCentralBufferNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCentralBufferNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCentralBufferNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setName(name);
+}
+
+void QUmlCentralBufferNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCentralBufferNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCentralBufferNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCentralBufferNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCentralBufferNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCentralBufferNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCentralBufferNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCentralBufferNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCentralBufferNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlCentralBufferNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlCentralBufferNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCentralBufferNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCentralBufferNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCentralBufferNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCentralBufferNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCentralBufferNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCentralBufferNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlCentralBufferNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCentralBufferNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCentralBufferNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCentralBufferNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCentralBufferNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlCentralBufferNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlCentralBufferNodeObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlCentralBufferNodeObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlCentralBufferNodeObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlCentralBufferNodeObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setControlType(isControlType);
+}
+
+void QUmlCentralBufferNodeObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setOrdering(ordering);
+}
+
+void QUmlCentralBufferNodeObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlCentralBufferNodeObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlCentralBufferNode *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcentralbuffernodeobject_p.h b/src/uml/qobjects/qumlcentralbuffernodeobject_p.h
new file mode 100644
index 00000000..778b44e4
--- /dev/null
+++ b/src/uml/qobjects/qumlcentralbuffernodeobject_p.h
@@ -0,0 +1,213 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCENTRALBUFFERNODEOBJECT_H
+#define QUMLCENTRALBUFFERNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCentralBufferNode;
+class Q_UML_EXPORT QUmlCentralBufferNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+public:
+ Q_INVOKABLE explicit QUmlCentralBufferNodeObject(QUmlCentralBufferNode *qModelingObject);
+ virtual ~QUmlCentralBufferNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCENTRALBUFFERNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlchangeeventobject.cpp b/src/uml/qobjects/qumlchangeeventobject.cpp
new file mode 100644
index 00000000..1cd6efd2
--- /dev/null
+++ b/src/uml/qobjects/qumlchangeeventobject.cpp
@@ -0,0 +1,288 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlchangeeventobject_p.h"
+
+#include <QtUml/QUmlChangeEvent>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlChangeEventObject::QUmlChangeEventObject(QUmlChangeEvent *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlChangeEventObject::~QUmlChangeEventObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlChangeEventObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlChangeEventObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlChangeEventObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlChangeEventObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlChangeEventObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlChangeEventObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlChangeEventObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->name();
+}
+
+QObject *QUmlChangeEventObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlChangeEventObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlChangeEventObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlChangeEventObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [ChangeEvent]
+
+QObject *QUmlChangeEventObject::changeExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->changeExpression()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlChangeEventObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlChangeEventObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlChangeEventObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlChangeEventObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlChangeEventObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlChangeEventObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlChangeEventObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlChangeEventObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlChangeEventObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlChangeEventObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlChangeEventObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlChangeEventObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlChangeEventObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlChangeEventObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlChangeEventObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlChangeEventObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlChangeEventObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlChangeEventObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setName(name);
+}
+
+void QUmlChangeEventObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlChangeEventObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlChangeEventObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlChangeEventObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ChangeEvent]
+
+void QUmlChangeEventObject::setChangeExpression(QObject *changeExpression)
+{
+ qmodelingobjectproperty_cast<QUmlChangeEvent *>(this)->setChangeExpression(qmodelingobjectproperty_cast<QUmlValueSpecification *>(changeExpression));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlchangeeventobject_p.h b/src/uml/qobjects/qumlchangeeventobject_p.h
new file mode 100644
index 00000000..45544604
--- /dev/null
+++ b/src/uml/qobjects/qumlchangeeventobject_p.h
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCHANGEEVENTOBJECT_H
+#define QUMLCHANGEEVENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlChangeEvent;
+class Q_UML_EXPORT QUmlChangeEventObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [ChangeEvent]
+ Q_PROPERTY(QObject * changeExpression READ changeExpression)
+
+public:
+ Q_INVOKABLE explicit QUmlChangeEventObject(QUmlChangeEvent *qModelingObject);
+ virtual ~QUmlChangeEventObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [ChangeEvent]
+ Q_INVOKABLE QObject *changeExpression() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [ChangeEvent]
+ void setChangeExpression(QObject *changeExpression = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCHANGEEVENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlclassifiertemplateparameterobject.cpp b/src/uml/qobjects/qumlclassifiertemplateparameterobject.cpp
new file mode 100644
index 00000000..58480dde
--- /dev/null
+++ b/src/uml/qobjects/qumlclassifiertemplateparameterobject.cpp
@@ -0,0 +1,217 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlclassifiertemplateparameterobject_p.h"
+
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlTemplateSignature>
+
+QT_BEGIN_NAMESPACE
+
+QUmlClassifierTemplateParameterObject::QUmlClassifierTemplateParameterObject(QUmlClassifierTemplateParameter *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlClassifierTemplateParameterObject::~QUmlClassifierTemplateParameterObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlClassifierTemplateParameterObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassifierTemplateParameterObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClassifierTemplateParameterObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateParameter]
+
+QObject *QUmlClassifierTemplateParameterObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->default_()->asQObject();
+}
+
+QObject *QUmlClassifierTemplateParameterObject::ownedDefault() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->ownedDefault()->asQObject();
+}
+
+QObject *QUmlClassifierTemplateParameterObject::ownedParameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->ownedParameteredElement()->asQObject();
+}
+
+QObject *QUmlClassifierTemplateParameterObject::signature() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->signature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ClassifierTemplateParameter]
+
+bool QUmlClassifierTemplateParameterObject::allowSubstitutable() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->allowSubstitutable();
+}
+
+const QSet<QObject *> QUmlClassifierTemplateParameterObject::constrainingClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->constrainingClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClassifierTemplateParameterObject::parameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->parameteredElement()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlClassifierTemplateParameterObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassifierTemplateParameterObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlClassifierTemplateParameterObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClassifierTemplateParameterObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClassifierTemplateParameterObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClassifierTemplateParameterObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClassifierTemplateParameterObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
+
+void QUmlClassifierTemplateParameterObject::setDefault(QObject *default_)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(default_));
+}
+
+void QUmlClassifierTemplateParameterObject::setOwnedDefault(QObject *ownedDefault)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setOwnedDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedDefault));
+}
+
+void QUmlClassifierTemplateParameterObject::setOwnedParameteredElement(QObject *ownedParameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setOwnedParameteredElement(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedParameteredElement));
+}
+
+void QUmlClassifierTemplateParameterObject::setSignature(QObject *signature)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(signature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ClassifierTemplateParameter]
+
+void QUmlClassifierTemplateParameterObject::setAllowSubstitutable(bool allowSubstitutable)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setAllowSubstitutable(allowSubstitutable);
+}
+
+void QUmlClassifierTemplateParameterObject::addConstrainingClassifier(QObject *constrainingClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->addConstrainingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(constrainingClassifier));
+}
+
+void QUmlClassifierTemplateParameterObject::removeConstrainingClassifier(QObject *constrainingClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->removeConstrainingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(constrainingClassifier));
+}
+
+void QUmlClassifierTemplateParameterObject::setParameteredElement(QObject *parameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(this)->setParameteredElement(qmodelingobjectproperty_cast<QUmlClassifier *>(parameteredElement));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlclassifiertemplateparameterobject_p.h b/src/uml/qobjects/qumlclassifiertemplateparameterobject_p.h
new file mode 100644
index 00000000..18ef595c
--- /dev/null
+++ b/src/uml/qobjects/qumlclassifiertemplateparameterobject_p.h
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCLASSIFIERTEMPLATEPARAMETEROBJECT_H
+#define QUMLCLASSIFIERTEMPLATEPARAMETEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlClassifierTemplateParameter;
+class Q_UML_EXPORT QUmlClassifierTemplateParameterObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateParameter]
+ Q_PROPERTY(QObject * default_ READ default_)
+ Q_PROPERTY(QObject * ownedDefault READ ownedDefault)
+ Q_PROPERTY(QObject * ownedParameteredElement READ ownedParameteredElement)
+ Q_PROPERTY(QObject * signature READ signature)
+
+ // Properties [ClassifierTemplateParameter]
+ Q_PROPERTY(bool allowSubstitutable READ allowSubstitutable)
+ Q_PROPERTY(QSet<QObject *> constrainingClassifier READ constrainingClassifier)
+ Q_PROPERTY(QObject * parameteredElement READ parameteredElement)
+
+public:
+ Q_INVOKABLE explicit QUmlClassifierTemplateParameterObject(QUmlClassifierTemplateParameter *qModelingObject);
+ virtual ~QUmlClassifierTemplateParameterObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateParameter]
+ Q_INVOKABLE QObject *default_() const;
+ Q_INVOKABLE QObject *ownedDefault() const;
+ Q_INVOKABLE QObject *ownedParameteredElement() const;
+ Q_INVOKABLE QObject *signature() const;
+
+ // Owned attributes [ClassifierTemplateParameter]
+ Q_INVOKABLE bool allowSubstitutable() const;
+ Q_INVOKABLE const QSet<QObject *> constrainingClassifier() const;
+ Q_INVOKABLE QObject *parameteredElement() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateParameter]
+ void setDefault(QObject *default_ = 0);
+ void setOwnedDefault(QObject *ownedDefault = 0);
+ void setOwnedParameteredElement(QObject *ownedParameteredElement = 0);
+ void setSignature(QObject *signature = 0);
+
+ // Slots for owned attributes [ClassifierTemplateParameter]
+ void setAllowSubstitutable(bool allowSubstitutable);
+ void addConstrainingClassifier(QObject *constrainingClassifier);
+ void removeConstrainingClassifier(QObject *constrainingClassifier);
+ void setParameteredElement(QObject *parameteredElement = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCLASSIFIERTEMPLATEPARAMETEROBJECT_H
+
diff --git a/src/uml/qobjects/qumlclassobject.cpp b/src/uml/qobjects/qumlclassobject.cpp
new file mode 100644
index 00000000..fe25aa0b
--- /dev/null
+++ b/src/uml/qobjects/qumlclassobject.cpp
@@ -0,0 +1,1095 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlclassobject_p.h"
+
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlClassObject::QUmlClassObject(QUmlClass *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlClassObject::~QUmlClassObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlClassObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClassObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlClassObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlClassObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->name();
+}
+
+QObject *QUmlClassObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlClassObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlClassObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlClassObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlClassObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlClassObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlClassObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlClassObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlClassObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlClassObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlClassObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlClassObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlClassObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClassObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlClassObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClassObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlClassObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlClassObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlClassObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlClassObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlClassObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlClassObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isAbstract();
+}
+
+bool QUmlClassObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlClassObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlClassObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlClassObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlClassObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClassObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlClassObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlClassObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlClassObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlClassObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlClassObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlClassObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlClassObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlClassObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlClassObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlClassObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlClassObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlClassObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlClassObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlClassObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlClassObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlClassObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClassObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->isTemplate();
+}
+
+bool QUmlClassObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlClass *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlClassObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlClassObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlClass *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlClassObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClassObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClassObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClassObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClassObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlClassObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClassObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClassObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setName(name);
+}
+
+void QUmlClassObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlClassObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlClassObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlClassObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlClassObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlClassObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlClassObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlClassObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlClassObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlClassObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlClassObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlClassObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlClassObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlClassObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlClassObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlClassObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlClassObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlClassObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlClassObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlClassObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClassObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClassObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlClassObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlClassObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlClassObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlClassObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlClassObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlClassObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlClassObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlClassObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlClassObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlClassObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlClassObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlClassObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlClassObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlClassObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlClassObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlClassObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlClassObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlClassObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlClassObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlClassObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlClassObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlClassObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlClassObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlClassObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlClassObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlClassObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlClassObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlClassObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlClassObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlClassObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlClassObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlClassObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlClassObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlClassObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlClassObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlClassObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlClassObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlClassObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlClassObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlClassObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlClassObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlClassObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlClassObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlClassObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->setActive(isActive);
+}
+
+void QUmlClassObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlClassObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlClassObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlClassObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlClassObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlClassObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlClassObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlClassObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlClassObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlClassObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlClass *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlclassobject_p.h b/src/uml/qobjects/qumlclassobject_p.h
new file mode 100644
index 00000000..ac30daea
--- /dev/null
+++ b/src/uml/qobjects/qumlclassobject_p.h
@@ -0,0 +1,377 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCLASSOBJECT_H
+#define QUMLCLASSOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlClass;
+class Q_UML_EXPORT QUmlClassObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+public:
+ Q_INVOKABLE explicit QUmlClassObject(QUmlClass *qModelingObject);
+ virtual ~QUmlClassObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCLASSOBJECT_H
+
diff --git a/src/uml/qobjects/qumlclauseobject.cpp b/src/uml/qobjects/qumlclauseobject.cpp
new file mode 100644
index 00000000..cec22041
--- /dev/null
+++ b/src/uml/qobjects/qumlclauseobject.cpp
@@ -0,0 +1,234 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlclauseobject_p.h"
+
+#include <QtUml/QUmlClause>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExecutableNode>
+#include <QtUml/QUmlOutputPin>
+
+QT_BEGIN_NAMESPACE
+
+QUmlClauseObject::QUmlClauseObject(QUmlClause *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlClauseObject::~QUmlClauseObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlClauseObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClauseObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClauseObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlClause *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Clause]
+
+const QSet<QObject *> QUmlClauseObject::body() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExecutableNode *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->body())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlClauseObject::bodyOutput() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->bodyOutput())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlClauseObject::decider() const
+{
+ return qmodelingobjectproperty_cast<QUmlClause *>(this)->decider()->asQObject();
+}
+
+const QSet<QObject *> QUmlClauseObject::predecessorClause() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClause *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->predecessorClause())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClauseObject::successorClause() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClause *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->successorClause())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClauseObject::test() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExecutableNode *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->test())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlClauseObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClause *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClauseObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlClause *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlClauseObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClauseObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClauseObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClauseObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClauseObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Clause]
+
+void QUmlClauseObject::addBody(QObject *body)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addBody(qmodelingobjectproperty_cast<QUmlExecutableNode *>(body));
+}
+
+void QUmlClauseObject::removeBody(QObject *body)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removeBody(qmodelingobjectproperty_cast<QUmlExecutableNode *>(body));
+}
+
+void QUmlClauseObject::addBodyOutput(QObject *bodyOutput)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addBodyOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(bodyOutput));
+}
+
+void QUmlClauseObject::removeBodyOutput(QObject *bodyOutput)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removeBodyOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(bodyOutput));
+}
+
+void QUmlClauseObject::setDecider(QObject *decider)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->setDecider(qmodelingobjectproperty_cast<QUmlOutputPin *>(decider));
+}
+
+void QUmlClauseObject::addPredecessorClause(QObject *predecessorClause)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addPredecessorClause(qmodelingobjectproperty_cast<QUmlClause *>(predecessorClause));
+}
+
+void QUmlClauseObject::removePredecessorClause(QObject *predecessorClause)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removePredecessorClause(qmodelingobjectproperty_cast<QUmlClause *>(predecessorClause));
+}
+
+void QUmlClauseObject::addSuccessorClause(QObject *successorClause)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addSuccessorClause(qmodelingobjectproperty_cast<QUmlClause *>(successorClause));
+}
+
+void QUmlClauseObject::removeSuccessorClause(QObject *successorClause)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removeSuccessorClause(qmodelingobjectproperty_cast<QUmlClause *>(successorClause));
+}
+
+void QUmlClauseObject::addTest(QObject *test)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->addTest(qmodelingobjectproperty_cast<QUmlExecutableNode *>(test));
+}
+
+void QUmlClauseObject::removeTest(QObject *test)
+{
+ qmodelingobjectproperty_cast<QUmlClause *>(this)->removeTest(qmodelingobjectproperty_cast<QUmlExecutableNode *>(test));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlclauseobject_p.h b/src/uml/qobjects/qumlclauseobject_p.h
new file mode 100644
index 00000000..a8347c40
--- /dev/null
+++ b/src/uml/qobjects/qumlclauseobject_p.h
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCLAUSEOBJECT_H
+#define QUMLCLAUSEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlClause;
+class Q_UML_EXPORT QUmlClauseObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Clause]
+ Q_PROPERTY(QSet<QObject *> body READ body)
+ Q_PROPERTY(QList<QObject *> bodyOutput READ bodyOutput)
+ Q_PROPERTY(QObject * decider READ decider)
+ Q_PROPERTY(QSet<QObject *> predecessorClause READ predecessorClause)
+ Q_PROPERTY(QSet<QObject *> successorClause READ successorClause)
+ Q_PROPERTY(QSet<QObject *> test READ test)
+
+public:
+ Q_INVOKABLE explicit QUmlClauseObject(QUmlClause *qModelingObject);
+ virtual ~QUmlClauseObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Clause]
+ Q_INVOKABLE const QSet<QObject *> body() const;
+ Q_INVOKABLE const QList<QObject *> bodyOutput() const;
+ Q_INVOKABLE QObject *decider() const;
+ Q_INVOKABLE const QSet<QObject *> predecessorClause() const;
+ Q_INVOKABLE const QSet<QObject *> successorClause() const;
+ Q_INVOKABLE const QSet<QObject *> test() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Clause]
+ void addBody(QObject *body);
+ void removeBody(QObject *body);
+ void addBodyOutput(QObject *bodyOutput);
+ void removeBodyOutput(QObject *bodyOutput);
+ void setDecider(QObject *decider = 0);
+ void addPredecessorClause(QObject *predecessorClause);
+ void removePredecessorClause(QObject *predecessorClause);
+ void addSuccessorClause(QObject *successorClause);
+ void removeSuccessorClause(QObject *successorClause);
+ void addTest(QObject *test);
+ void removeTest(QObject *test);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCLAUSEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlclearassociationactionobject.cpp b/src/uml/qobjects/qumlclearassociationactionobject.cpp
new file mode 100644
index 00000000..caaae27f
--- /dev/null
+++ b/src/uml/qobjects/qumlclearassociationactionobject.cpp
@@ -0,0 +1,583 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlclearassociationactionobject_p.h"
+
+#include <QtUml/QUmlClearAssociationAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlClearAssociationActionObject::QUmlClearAssociationActionObject(QUmlClearAssociationAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlClearAssociationActionObject::~QUmlClearAssociationActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlClearAssociationActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClearAssociationActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlClearAssociationActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlClearAssociationActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->name();
+}
+
+QObject *QUmlClearAssociationActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlClearAssociationActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlClearAssociationActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlClearAssociationActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlClearAssociationActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlClearAssociationActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClearAssociationActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlClearAssociationActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlClearAssociationActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlClearAssociationActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlClearAssociationActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearAssociationActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlClearAssociationActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ClearAssociationAction]
+
+QObject *QUmlClearAssociationActionObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->association()->asQObject();
+}
+
+QObject *QUmlClearAssociationActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->object()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlClearAssociationActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClearAssociationActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlClearAssociationActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlClearAssociationActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClearAssociationActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlClearAssociationActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlClearAssociationActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlClearAssociationActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlClearAssociationActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClearAssociationActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClearAssociationActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClearAssociationActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClearAssociationActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlClearAssociationActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClearAssociationActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClearAssociationActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setName(name);
+}
+
+void QUmlClearAssociationActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlClearAssociationActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlClearAssociationActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlClearAssociationActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlClearAssociationActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlClearAssociationActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClearAssociationActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClearAssociationActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlClearAssociationActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlClearAssociationActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlClearAssociationActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlClearAssociationActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlClearAssociationActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlClearAssociationActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlClearAssociationActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlClearAssociationActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlClearAssociationActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlClearAssociationActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlClearAssociationActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlClearAssociationActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlClearAssociationActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlClearAssociationActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlClearAssociationActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlClearAssociationActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlClearAssociationActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlClearAssociationActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlClearAssociationActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlClearAssociationActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlClearAssociationActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlClearAssociationActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlClearAssociationActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlClearAssociationActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlClearAssociationActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlClearAssociationActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlClearAssociationActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ClearAssociationAction]
+
+void QUmlClearAssociationActionObject::setAssociation(QObject *association)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(association));
+}
+
+void QUmlClearAssociationActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlClearAssociationAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlclearassociationactionobject_p.h b/src/uml/qobjects/qumlclearassociationactionobject_p.h
new file mode 100644
index 00000000..73125841
--- /dev/null
+++ b/src/uml/qobjects/qumlclearassociationactionobject_p.h
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCLEARASSOCIATIONACTIONOBJECT_H
+#define QUMLCLEARASSOCIATIONACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlClearAssociationAction;
+class Q_UML_EXPORT QUmlClearAssociationActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ClearAssociationAction]
+ Q_PROPERTY(QObject * association READ association)
+ Q_PROPERTY(QObject * object READ object)
+
+public:
+ Q_INVOKABLE explicit QUmlClearAssociationActionObject(QUmlClearAssociationAction *qModelingObject);
+ virtual ~QUmlClearAssociationActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ClearAssociationAction]
+ Q_INVOKABLE QObject *association() const;
+ Q_INVOKABLE QObject *object() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ClearAssociationAction]
+ void setAssociation(QObject *association = 0);
+ void setObject(QObject *object = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCLEARASSOCIATIONACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlclearstructuralfeatureactionobject.cpp b/src/uml/qobjects/qumlclearstructuralfeatureactionobject.cpp
new file mode 100644
index 00000000..fbb8882d
--- /dev/null
+++ b/src/uml/qobjects/qumlclearstructuralfeatureactionobject.cpp
@@ -0,0 +1,597 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlclearstructuralfeatureactionobject_p.h"
+
+#include <QtUml/QUmlClearStructuralFeatureAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuralFeature>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlClearStructuralFeatureActionObject::QUmlClearStructuralFeatureActionObject(QUmlClearStructuralFeatureAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlClearStructuralFeatureActionObject::~QUmlClearStructuralFeatureActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClearStructuralFeatureActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlClearStructuralFeatureActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->name();
+}
+
+QObject *QUmlClearStructuralFeatureActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlClearStructuralFeatureActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlClearStructuralFeatureActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlClearStructuralFeatureActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlClearStructuralFeatureActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlClearStructuralFeatureActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClearStructuralFeatureActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlClearStructuralFeatureActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlClearStructuralFeatureActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlClearStructuralFeatureActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearStructuralFeatureActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlClearStructuralFeatureActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [StructuralFeatureAction]
+
+QObject *QUmlClearStructuralFeatureActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlClearStructuralFeatureActionObject::structuralFeature() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->structuralFeature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ClearStructuralFeatureAction]
+
+QObject *QUmlClearStructuralFeatureActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlClearStructuralFeatureActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClearStructuralFeatureActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlClearStructuralFeatureActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlClearStructuralFeatureActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClearStructuralFeatureActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlClearStructuralFeatureActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlClearStructuralFeatureActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlClearStructuralFeatureActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlClearStructuralFeatureActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClearStructuralFeatureActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClearStructuralFeatureActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlClearStructuralFeatureActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClearStructuralFeatureActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setName(name);
+}
+
+void QUmlClearStructuralFeatureActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlClearStructuralFeatureActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlClearStructuralFeatureActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlClearStructuralFeatureActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlClearStructuralFeatureActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlClearStructuralFeatureActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClearStructuralFeatureActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlClearStructuralFeatureActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlClearStructuralFeatureActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlClearStructuralFeatureActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlClearStructuralFeatureActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlClearStructuralFeatureActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlClearStructuralFeatureActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlClearStructuralFeatureActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlClearStructuralFeatureActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlClearStructuralFeatureActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlClearStructuralFeatureActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlClearStructuralFeatureActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlClearStructuralFeatureActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlClearStructuralFeatureActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlClearStructuralFeatureActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlClearStructuralFeatureActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlClearStructuralFeatureActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
+
+void QUmlClearStructuralFeatureActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlClearStructuralFeatureActionObject::setStructuralFeature(QObject *structuralFeature)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setStructuralFeature(qmodelingobjectproperty_cast<QUmlStructuralFeature *>(structuralFeature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ClearStructuralFeatureAction]
+
+void QUmlClearStructuralFeatureActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlClearStructuralFeatureAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlclearstructuralfeatureactionobject_p.h b/src/uml/qobjects/qumlclearstructuralfeatureactionobject_p.h
new file mode 100644
index 00000000..30e5340d
--- /dev/null
+++ b/src/uml/qobjects/qumlclearstructuralfeatureactionobject_p.h
@@ -0,0 +1,241 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCLEARSTRUCTURALFEATUREACTIONOBJECT_H
+#define QUMLCLEARSTRUCTURALFEATUREACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlClearStructuralFeatureAction;
+class Q_UML_EXPORT QUmlClearStructuralFeatureActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [StructuralFeatureAction]
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * structuralFeature READ structuralFeature)
+
+ // Properties [ClearStructuralFeatureAction]
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlClearStructuralFeatureActionObject(QUmlClearStructuralFeatureAction *qModelingObject);
+ virtual ~QUmlClearStructuralFeatureActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [StructuralFeatureAction]
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *structuralFeature() const;
+
+ // Owned attributes [ClearStructuralFeatureAction]
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [StructuralFeatureAction]
+ void setObject(QObject *object = 0);
+ void setStructuralFeature(QObject *structuralFeature = 0);
+
+ // Slots for owned attributes [ClearStructuralFeatureAction]
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCLEARSTRUCTURALFEATUREACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlclearvariableactionobject.cpp b/src/uml/qobjects/qumlclearvariableactionobject.cpp
new file mode 100644
index 00000000..abc458ea
--- /dev/null
+++ b/src/uml/qobjects/qumlclearvariableactionobject.cpp
@@ -0,0 +1,573 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlclearvariableactionobject_p.h"
+
+#include <QtUml/QUmlClearVariableAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlClearVariableActionObject::QUmlClearVariableActionObject(QUmlClearVariableAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlClearVariableActionObject::~QUmlClearVariableActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlClearVariableActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClearVariableActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlClearVariableActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlClearVariableActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->name();
+}
+
+QObject *QUmlClearVariableActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlClearVariableActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlClearVariableActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlClearVariableActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlClearVariableActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlClearVariableActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlClearVariableActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlClearVariableActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlClearVariableActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlClearVariableActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlClearVariableActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlClearVariableActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlClearVariableActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [VariableAction]
+
+QObject *QUmlClearVariableActionObject::variable() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->variable()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlClearVariableActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClearVariableActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlClearVariableActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlClearVariableActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlClearVariableActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlClearVariableActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlClearVariableActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlClearVariableActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlClearVariableActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClearVariableActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlClearVariableActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClearVariableActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlClearVariableActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlClearVariableActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClearVariableActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlClearVariableActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setName(name);
+}
+
+void QUmlClearVariableActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlClearVariableActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlClearVariableActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlClearVariableActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlClearVariableActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlClearVariableActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClearVariableActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlClearVariableActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlClearVariableActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlClearVariableActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlClearVariableActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlClearVariableActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlClearVariableActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlClearVariableActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlClearVariableActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlClearVariableActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlClearVariableActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlClearVariableActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlClearVariableActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlClearVariableActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlClearVariableActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlClearVariableActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlClearVariableActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlClearVariableActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlClearVariableActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlClearVariableActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlClearVariableActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlClearVariableActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlClearVariableActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlClearVariableActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlClearVariableActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlClearVariableActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlClearVariableActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlClearVariableActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlClearVariableActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
+
+void QUmlClearVariableActionObject::setVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlClearVariableAction *>(this)->setVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlclearvariableactionobject_p.h b/src/uml/qobjects/qumlclearvariableactionobject_p.h
new file mode 100644
index 00000000..ef387c87
--- /dev/null
+++ b/src/uml/qobjects/qumlclearvariableactionobject_p.h
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCLEARVARIABLEACTIONOBJECT_H
+#define QUMLCLEARVARIABLEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlClearVariableAction;
+class Q_UML_EXPORT QUmlClearVariableActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [VariableAction]
+ Q_PROPERTY(QObject * variable READ variable)
+
+public:
+ Q_INVOKABLE explicit QUmlClearVariableActionObject(QUmlClearVariableAction *qModelingObject);
+ virtual ~QUmlClearVariableActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [VariableAction]
+ Q_INVOKABLE QObject *variable() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [VariableAction]
+ void setVariable(QObject *variable = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCLEARVARIABLEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcollaborationobject.cpp b/src/uml/qobjects/qumlcollaborationobject.cpp
new file mode 100644
index 00000000..45ccbadf
--- /dev/null
+++ b/src/uml/qobjects/qumlcollaborationobject.cpp
@@ -0,0 +1,1003 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcollaborationobject_p.h"
+
+#include <QtUml/QUmlCollaboration>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCollaborationObject::QUmlCollaborationObject(QUmlCollaboration *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCollaborationObject::~QUmlCollaborationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCollaborationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCollaborationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCollaborationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCollaborationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->name();
+}
+
+QObject *QUmlCollaborationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCollaborationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCollaborationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlCollaborationObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlCollaborationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlCollaborationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlCollaborationObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCollaborationObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCollaborationObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlCollaborationObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlCollaborationObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isAbstract();
+}
+
+bool QUmlCollaborationObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlCollaborationObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlCollaborationObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCollaborationObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlCollaborationObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCollaborationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlCollaborationObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QList<QObject *> QUmlCollaborationObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlCollaborationObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlCollaborationObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Collaboration]
+
+const QSet<QObject *> QUmlCollaborationObject::collaborationRole() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->collaborationRole())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCollaborationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCollaborationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCollaborationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCollaborationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlCollaborationObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlCollaborationObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlCollaborationObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlCollaborationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlCollaborationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCollaborationObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCollaborationObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlCollaborationObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlCollaborationObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCollaborationObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlCollaborationObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlCollaborationObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCollaborationObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->isTemplate();
+}
+
+bool QUmlCollaborationObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlCollaborationObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCollaborationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCollaborationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCollaborationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCollaborationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCollaborationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCollaborationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCollaborationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCollaborationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setName(name);
+}
+
+void QUmlCollaborationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCollaborationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCollaborationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlCollaborationObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlCollaborationObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlCollaborationObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlCollaborationObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlCollaborationObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlCollaborationObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlCollaborationObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlCollaborationObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlCollaborationObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlCollaborationObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlCollaborationObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlCollaborationObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlCollaborationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlCollaborationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlCollaborationObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCollaborationObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCollaborationObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCollaborationObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCollaborationObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCollaborationObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlCollaborationObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlCollaborationObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlCollaborationObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlCollaborationObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlCollaborationObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlCollaborationObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlCollaborationObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlCollaborationObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlCollaborationObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlCollaborationObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlCollaborationObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlCollaborationObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlCollaborationObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlCollaborationObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlCollaborationObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlCollaborationObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlCollaborationObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlCollaborationObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlCollaborationObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlCollaborationObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlCollaborationObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlCollaborationObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlCollaborationObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlCollaborationObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlCollaborationObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlCollaborationObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlCollaborationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlCollaborationObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlCollaborationObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlCollaborationObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlCollaborationObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlCollaborationObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlCollaborationObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlCollaborationObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlCollaborationObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlCollaborationObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlCollaborationObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlCollaborationObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlCollaborationObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlCollaborationObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlCollaborationObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlCollaborationObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Collaboration]
+
+void QUmlCollaborationObject::addCollaborationRole(QObject *collaborationRole)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->addCollaborationRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(collaborationRole));
+}
+
+void QUmlCollaborationObject::removeCollaborationRole(QObject *collaborationRole)
+{
+ qmodelingobjectproperty_cast<QUmlCollaboration *>(this)->removeCollaborationRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(collaborationRole));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcollaborationobject_p.h b/src/uml/qobjects/qumlcollaborationobject_p.h
new file mode 100644
index 00000000..6a3a547a
--- /dev/null
+++ b/src/uml/qobjects/qumlcollaborationobject_p.h
@@ -0,0 +1,350 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOLLABORATIONOBJECT_H
+#define QUMLCOLLABORATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCollaboration;
+class Q_UML_EXPORT QUmlCollaborationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Collaboration]
+ Q_PROPERTY(QSet<QObject *> collaborationRole READ collaborationRole)
+
+public:
+ Q_INVOKABLE explicit QUmlCollaborationObject(QUmlCollaboration *qModelingObject);
+ virtual ~QUmlCollaborationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Collaboration]
+ Q_INVOKABLE const QSet<QObject *> collaborationRole() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Collaboration]
+ void addCollaborationRole(QObject *collaborationRole);
+ void removeCollaborationRole(QObject *collaborationRole);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOLLABORATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcollaborationuseobject.cpp b/src/uml/qobjects/qumlcollaborationuseobject.cpp
new file mode 100644
index 00000000..b90f62d9
--- /dev/null
+++ b/src/uml/qobjects/qumlcollaborationuseobject.cpp
@@ -0,0 +1,266 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcollaborationuseobject_p.h"
+
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlCollaboration>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCollaborationUseObject::QUmlCollaborationUseObject(QUmlCollaborationUse *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCollaborationUseObject::~QUmlCollaborationUseObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCollaborationUseObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCollaborationUseObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCollaborationUseObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCollaborationUseObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCollaborationUseObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->name();
+}
+
+QObject *QUmlCollaborationUseObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCollaborationUseObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCollaborationUseObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCollaborationUseObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [CollaborationUse]
+
+const QSet<QObject *> QUmlCollaborationUseObject::roleBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->roleBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCollaborationUseObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->type()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCollaborationUseObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationUseObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCollaborationUseObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCollaborationUseObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCollaborationUseObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCollaborationUseObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCollaborationUseObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCollaborationUseObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCollaborationUseObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCollaborationUseObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCollaborationUseObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCollaborationUseObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCollaborationUseObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCollaborationUseObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setName(name);
+}
+
+void QUmlCollaborationUseObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCollaborationUseObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCollaborationUseObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCollaborationUseObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CollaborationUse]
+
+void QUmlCollaborationUseObject::addRoleBinding(QObject *roleBinding)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->addRoleBinding(qmodelingobjectproperty_cast<QUmlDependency *>(roleBinding));
+}
+
+void QUmlCollaborationUseObject::removeRoleBinding(QObject *roleBinding)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->removeRoleBinding(qmodelingobjectproperty_cast<QUmlDependency *>(roleBinding));
+}
+
+void QUmlCollaborationUseObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlCollaborationUse *>(this)->setType(qmodelingobjectproperty_cast<QUmlCollaboration *>(type));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcollaborationuseobject_p.h b/src/uml/qobjects/qumlcollaborationuseobject_p.h
new file mode 100644
index 00000000..5afa5ce3
--- /dev/null
+++ b/src/uml/qobjects/qumlcollaborationuseobject_p.h
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOLLABORATIONUSEOBJECT_H
+#define QUMLCOLLABORATIONUSEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCollaborationUse;
+class Q_UML_EXPORT QUmlCollaborationUseObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [CollaborationUse]
+ Q_PROPERTY(QSet<QObject *> roleBinding READ roleBinding)
+ Q_PROPERTY(QObject * type READ type)
+
+public:
+ Q_INVOKABLE explicit QUmlCollaborationUseObject(QUmlCollaborationUse *qModelingObject);
+ virtual ~QUmlCollaborationUseObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [CollaborationUse]
+ Q_INVOKABLE const QSet<QObject *> roleBinding() const;
+ Q_INVOKABLE QObject *type() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [CollaborationUse]
+ void addRoleBinding(QObject *roleBinding);
+ void removeRoleBinding(QObject *roleBinding);
+ void setType(QObject *type = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOLLABORATIONUSEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcombinedfragmentobject.cpp b/src/uml/qobjects/qumlcombinedfragmentobject.cpp
new file mode 100644
index 00000000..5de3c209
--- /dev/null
+++ b/src/uml/qobjects/qumlcombinedfragmentobject.cpp
@@ -0,0 +1,348 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcombinedfragmentobject_p.h"
+
+#include <QtUml/QUmlCombinedFragment>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGate>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCombinedFragmentObject::QUmlCombinedFragmentObject(QUmlCombinedFragment *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCombinedFragmentObject::~QUmlCombinedFragmentObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCombinedFragmentObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCombinedFragmentObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCombinedFragmentObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCombinedFragmentObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCombinedFragmentObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->name();
+}
+
+QObject *QUmlCombinedFragmentObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCombinedFragmentObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCombinedFragmentObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCombinedFragmentObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlCombinedFragmentObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCombinedFragmentObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlCombinedFragmentObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlCombinedFragmentObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [CombinedFragment]
+
+const QSet<QObject *> QUmlCombinedFragmentObject::cfragmentGate() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGate *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->cfragmentGate())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QtUml::InteractionOperatorKind QUmlCombinedFragmentObject::interactionOperator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->interactionOperator();
+}
+
+const QList<QObject *> QUmlCombinedFragmentObject::operand() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInteractionOperand *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->operand())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCombinedFragmentObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCombinedFragmentObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCombinedFragmentObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCombinedFragmentObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCombinedFragmentObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCombinedFragmentObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCombinedFragmentObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCombinedFragmentObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCombinedFragmentObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCombinedFragmentObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCombinedFragmentObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCombinedFragmentObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCombinedFragmentObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCombinedFragmentObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setName(name);
+}
+
+void QUmlCombinedFragmentObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCombinedFragmentObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCombinedFragmentObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCombinedFragmentObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlCombinedFragmentObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlCombinedFragmentObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlCombinedFragmentObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlCombinedFragmentObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlCombinedFragmentObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlCombinedFragmentObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CombinedFragment]
+
+void QUmlCombinedFragmentObject::addCfragmentGate(QObject *cfragmentGate)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addCfragmentGate(qmodelingobjectproperty_cast<QUmlGate *>(cfragmentGate));
+}
+
+void QUmlCombinedFragmentObject::removeCfragmentGate(QObject *cfragmentGate)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeCfragmentGate(qmodelingobjectproperty_cast<QUmlGate *>(cfragmentGate));
+}
+
+void QUmlCombinedFragmentObject::setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->setInteractionOperator(interactionOperator);
+}
+
+void QUmlCombinedFragmentObject::addOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->addOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(operand));
+}
+
+void QUmlCombinedFragmentObject::removeOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlCombinedFragment *>(this)->removeOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(operand));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcombinedfragmentobject_p.h b/src/uml/qobjects/qumlcombinedfragmentobject_p.h
new file mode 100644
index 00000000..e2645be6
--- /dev/null
+++ b/src/uml/qobjects/qumlcombinedfragmentobject_p.h
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOMBINEDFRAGMENTOBJECT_H
+#define QUMLCOMBINEDFRAGMENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCombinedFragment;
+class Q_UML_EXPORT QUmlCombinedFragmentObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [CombinedFragment]
+ Q_PROPERTY(QSet<QObject *> cfragmentGate READ cfragmentGate)
+ Q_PROPERTY(QtUml::InteractionOperatorKind interactionOperator READ interactionOperator)
+ Q_PROPERTY(QList<QObject *> operand READ operand)
+
+public:
+ Q_INVOKABLE explicit QUmlCombinedFragmentObject(QUmlCombinedFragment *qModelingObject);
+ virtual ~QUmlCombinedFragmentObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [CombinedFragment]
+ Q_INVOKABLE const QSet<QObject *> cfragmentGate() const;
+ Q_INVOKABLE QtUml::InteractionOperatorKind interactionOperator() const;
+ Q_INVOKABLE const QList<QObject *> operand() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [CombinedFragment]
+ void addCfragmentGate(QObject *cfragmentGate);
+ void removeCfragmentGate(QObject *cfragmentGate);
+ void setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator);
+ void addOperand(QObject *operand);
+ void removeOperand(QObject *operand);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOMBINEDFRAGMENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcommentobject.cpp b/src/uml/qobjects/qumlcommentobject.cpp
new file mode 100644
index 00000000..e5805876
--- /dev/null
+++ b/src/uml/qobjects/qumlcommentobject.cpp
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcommentobject_p.h"
+
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCommentObject::QUmlCommentObject(QUmlComment *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCommentObject::~QUmlCommentObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCommentObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlComment *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommentObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComment *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCommentObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlComment *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Comment]
+
+const QSet<QObject *> QUmlCommentObject::annotatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComment *>(this)->annotatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCommentObject::body() const
+{
+ return qmodelingobjectproperty_cast<QUmlComment *>(this)->body();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCommentObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComment *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommentObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlComment *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCommentObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCommentObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCommentObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCommentObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCommentObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Comment]
+
+void QUmlCommentObject::addAnnotatedElement(QObject *annotatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->addAnnotatedElement(qmodelingobjectproperty_cast<QUmlElement *>(annotatedElement));
+}
+
+void QUmlCommentObject::removeAnnotatedElement(QObject *annotatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->removeAnnotatedElement(qmodelingobjectproperty_cast<QUmlElement *>(annotatedElement));
+}
+
+void QUmlCommentObject::setBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlComment *>(this)->setBody(body);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcommentobject_p.h b/src/uml/qobjects/qumlcommentobject_p.h
new file mode 100644
index 00000000..a09bc6bd
--- /dev/null
+++ b/src/uml/qobjects/qumlcommentobject_p.h
@@ -0,0 +1,105 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOMMENTOBJECT_H
+#define QUMLCOMMENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlComment;
+class Q_UML_EXPORT QUmlCommentObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Comment]
+ Q_PROPERTY(QSet<QObject *> annotatedElement READ annotatedElement)
+ Q_PROPERTY(QString body READ body)
+
+public:
+ Q_INVOKABLE explicit QUmlCommentObject(QUmlComment *qModelingObject);
+ virtual ~QUmlCommentObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Comment]
+ Q_INVOKABLE const QSet<QObject *> annotatedElement() const;
+ Q_INVOKABLE QString body() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Comment]
+ void addAnnotatedElement(QObject *annotatedElement);
+ void removeAnnotatedElement(QObject *annotatedElement);
+ void setBody(QString body);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOMMENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcommunicationpathobject.cpp b/src/uml/qobjects/qumlcommunicationpathobject.cpp
new file mode 100644
index 00000000..33d71d62
--- /dev/null
+++ b/src/uml/qobjects/qumlcommunicationpathobject.cpp
@@ -0,0 +1,959 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcommunicationpathobject_p.h"
+
+#include <QtUml/QUmlCommunicationPath>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCommunicationPathObject::QUmlCommunicationPathObject(QUmlCommunicationPath *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCommunicationPathObject::~QUmlCommunicationPathObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCommunicationPathObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCommunicationPathObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCommunicationPathObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCommunicationPathObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->name();
+}
+
+QObject *QUmlCommunicationPathObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCommunicationPathObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCommunicationPathObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlCommunicationPathObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlCommunicationPathObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlCommunicationPathObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlCommunicationPathObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCommunicationPathObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlCommunicationPathObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlCommunicationPathObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommunicationPathObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isAbstract();
+}
+
+bool QUmlCommunicationPathObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlCommunicationPathObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCommunicationPathObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCommunicationPathObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlCommunicationPathObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Association]
+
+const QList<QObject *> QUmlCommunicationPathObject::endType() const
+{
+ QList<QObject *> list;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->endType())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlCommunicationPathObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isDerived();
+}
+
+const QList<QObject *> QUmlCommunicationPathObject::memberEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->memberEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlCommunicationPathObject::navigableOwnedEnd() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->navigableOwnedEnd())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlCommunicationPathObject::ownedEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->ownedEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCommunicationPathObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommunicationPathObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCommunicationPathObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCommunicationPathObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommunicationPathObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCommunicationPathObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlCommunicationPathObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlCommunicationPathObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlCommunicationPathObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommunicationPathObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlCommunicationPathObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlCommunicationPathObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCommunicationPathObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCommunicationPathObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlCommunicationPathObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlCommunicationPathObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCommunicationPathObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommunicationPathObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlCommunicationPathObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlCommunicationPathObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCommunicationPathObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCommunicationPathObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->isTemplate();
+}
+
+bool QUmlCommunicationPathObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlCommunicationPathObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCommunicationPathObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCommunicationPathObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCommunicationPathObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCommunicationPathObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCommunicationPathObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCommunicationPathObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCommunicationPathObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCommunicationPathObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setName(name);
+}
+
+void QUmlCommunicationPathObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCommunicationPathObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCommunicationPathObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlCommunicationPathObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlCommunicationPathObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlCommunicationPathObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlCommunicationPathObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlCommunicationPathObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlCommunicationPathObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlCommunicationPathObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlCommunicationPathObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlCommunicationPathObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlCommunicationPathObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlCommunicationPathObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlCommunicationPathObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlCommunicationPathObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlCommunicationPathObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlCommunicationPathObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCommunicationPathObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCommunicationPathObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCommunicationPathObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCommunicationPathObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCommunicationPathObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlCommunicationPathObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlCommunicationPathObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlCommunicationPathObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlCommunicationPathObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlCommunicationPathObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlCommunicationPathObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlCommunicationPathObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlCommunicationPathObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlCommunicationPathObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlCommunicationPathObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlCommunicationPathObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlCommunicationPathObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlCommunicationPathObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlCommunicationPathObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlCommunicationPathObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlCommunicationPathObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlCommunicationPathObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlCommunicationPathObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlCommunicationPathObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlCommunicationPathObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlCommunicationPathObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlCommunicationPathObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlCommunicationPathObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlCommunicationPathObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlCommunicationPathObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlCommunicationPathObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlCommunicationPathObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlCommunicationPathObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlCommunicationPathObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlCommunicationPathObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlCommunicationPathObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Association]
+
+void QUmlCommunicationPathObject::addEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlCommunicationPathObject::removeEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlCommunicationPathObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->setDerived(isDerived);
+}
+
+void QUmlCommunicationPathObject::addMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlCommunicationPathObject::removeMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlCommunicationPathObject::addNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlCommunicationPathObject::removeNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlCommunicationPathObject::addOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->addOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(ownedEnd));
+}
+
+void QUmlCommunicationPathObject::removeOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlCommunicationPath *>(this)->removeOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(ownedEnd));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcommunicationpathobject_p.h b/src/uml/qobjects/qumlcommunicationpathobject_p.h
new file mode 100644
index 00000000..0e658c08
--- /dev/null
+++ b/src/uml/qobjects/qumlcommunicationpathobject_p.h
@@ -0,0 +1,336 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOMMUNICATIONPATHOBJECT_H
+#define QUMLCOMMUNICATIONPATHOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCommunicationPath;
+class Q_UML_EXPORT QUmlCommunicationPathObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [Association]
+ Q_PROPERTY(QList<QObject *> endType READ endType)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(QList<QObject *> memberEnd READ memberEnd)
+ Q_PROPERTY(QSet<QObject *> navigableOwnedEnd READ navigableOwnedEnd)
+ Q_PROPERTY(QList<QObject *> ownedEnd READ ownedEnd)
+
+public:
+ Q_INVOKABLE explicit QUmlCommunicationPathObject(QUmlCommunicationPath *qModelingObject);
+ virtual ~QUmlCommunicationPathObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [Association]
+ Q_INVOKABLE const QList<QObject *> endType() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE const QList<QObject *> memberEnd() const;
+ Q_INVOKABLE const QSet<QObject *> navigableOwnedEnd() const;
+ Q_INVOKABLE const QList<QObject *> ownedEnd() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [Association]
+ void Q_DECL_HIDDEN addEndType(QObject *endType);
+ void Q_DECL_HIDDEN removeEndType(QObject *endType);
+ void setDerived(bool isDerived);
+ void addMemberEnd(QObject *memberEnd);
+ void removeMemberEnd(QObject *memberEnd);
+ void addNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void removeNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void addOwnedEnd(QObject *ownedEnd);
+ void removeOwnedEnd(QObject *ownedEnd);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOMMUNICATIONPATHOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcomponentobject.cpp b/src/uml/qobjects/qumlcomponentobject.cpp
new file mode 100644
index 00000000..847281e1
--- /dev/null
+++ b/src/uml/qobjects/qumlcomponentobject.cpp
@@ -0,0 +1,1202 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcomponentobject_p.h"
+
+#include <QtUml/QUmlComponent>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlComponentRealization>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlComponentObject::QUmlComponentObject(QUmlComponent *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlComponentObject::~QUmlComponentObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlComponentObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlComponentObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlComponentObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlComponentObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->name();
+}
+
+QObject *QUmlComponentObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlComponentObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlComponentObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlComponentObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlComponentObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlComponentObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlComponentObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlComponentObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlComponentObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlComponentObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlComponentObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlComponentObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlComponentObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlComponentObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlComponentObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlComponentObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlComponentObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlComponentObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlComponentObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlComponentObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlComponentObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlComponentObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isAbstract();
+}
+
+bool QUmlComponentObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlComponentObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlComponentObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlComponentObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlComponentObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Component]
+
+bool QUmlComponentObject::isIndirectlyInstantiated() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isIndirectlyInstantiated();
+}
+
+const QSet<QObject *> QUmlComponentObject::packagedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->packagedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::provided() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->provided())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::realization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComponentRealization *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->realization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentObject::required() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->required())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlComponentObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlComponentObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlComponentObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlComponentObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlComponentObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlComponentObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlComponentObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlComponentObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlComponentObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlComponentObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlComponentObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlComponentObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlComponentObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlComponentObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlComponentObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlComponentObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->isTemplate();
+}
+
+bool QUmlComponentObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponent *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlComponentObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlComponentObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Component]
+
+QSet<QObject *> QUmlComponentObject::realizedInterfaces(QObject *classifier) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->realizedInterfaces(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlComponentObject::usedInterfaces(QObject *classifier) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlComponent *>(this)->usedInterfaces(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlComponentObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlComponentObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlComponentObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlComponentObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlComponentObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlComponentObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlComponentObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlComponentObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setName(name);
+}
+
+void QUmlComponentObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlComponentObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlComponentObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlComponentObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlComponentObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlComponentObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlComponentObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlComponentObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlComponentObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlComponentObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlComponentObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlComponentObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlComponentObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlComponentObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlComponentObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlComponentObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlComponentObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlComponentObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlComponentObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlComponentObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlComponentObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlComponentObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlComponentObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlComponentObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlComponentObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlComponentObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlComponentObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlComponentObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlComponentObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlComponentObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlComponentObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlComponentObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlComponentObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlComponentObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlComponentObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlComponentObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlComponentObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlComponentObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlComponentObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlComponentObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlComponentObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlComponentObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlComponentObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlComponentObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlComponentObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlComponentObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlComponentObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlComponentObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlComponentObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlComponentObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlComponentObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlComponentObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlComponentObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlComponentObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlComponentObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlComponentObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlComponentObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlComponentObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlComponentObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlComponentObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlComponentObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlComponentObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlComponentObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlComponentObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlComponentObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlComponentObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setActive(isActive);
+}
+
+void QUmlComponentObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlComponentObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlComponentObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlComponentObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlComponentObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlComponentObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlComponentObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlComponentObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlComponentObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlComponentObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Component]
+
+void QUmlComponentObject::setIndirectlyInstantiated(bool isIndirectlyInstantiated)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->setIndirectlyInstantiated(isIndirectlyInstantiated);
+}
+
+void QUmlComponentObject::addPackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addPackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlComponentObject::removePackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removePackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlComponentObject::addProvided(QObject *provided)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addProvided(qmodelingobjectproperty_cast<QUmlInterface *>(provided));
+}
+
+void QUmlComponentObject::removeProvided(QObject *provided)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeProvided(qmodelingobjectproperty_cast<QUmlInterface *>(provided));
+}
+
+void QUmlComponentObject::addRealization(QObject *realization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addRealization(qmodelingobjectproperty_cast<QUmlComponentRealization *>(realization));
+}
+
+void QUmlComponentObject::removeRealization(QObject *realization)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeRealization(qmodelingobjectproperty_cast<QUmlComponentRealization *>(realization));
+}
+
+void QUmlComponentObject::addRequired(QObject *required)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->addRequired(qmodelingobjectproperty_cast<QUmlInterface *>(required));
+}
+
+void QUmlComponentObject::removeRequired(QObject *required)
+{
+ qmodelingobjectproperty_cast<QUmlComponent *>(this)->removeRequired(qmodelingobjectproperty_cast<QUmlInterface *>(required));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcomponentobject_p.h b/src/uml/qobjects/qumlcomponentobject_p.h
new file mode 100644
index 00000000..c72c17ae
--- /dev/null
+++ b/src/uml/qobjects/qumlcomponentobject_p.h
@@ -0,0 +1,406 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOMPONENTOBJECT_H
+#define QUMLCOMPONENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlComponent;
+class Q_UML_EXPORT QUmlComponentObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Component]
+ Q_PROPERTY(bool isIndirectlyInstantiated READ isIndirectlyInstantiated)
+ Q_PROPERTY(QSet<QObject *> packagedElement READ packagedElement)
+ Q_PROPERTY(QSet<QObject *> provided READ provided)
+ Q_PROPERTY(QSet<QObject *> realization READ realization)
+ Q_PROPERTY(QSet<QObject *> required READ required)
+
+public:
+ Q_INVOKABLE explicit QUmlComponentObject(QUmlComponent *qModelingObject);
+ virtual ~QUmlComponentObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Component]
+ Q_INVOKABLE bool isIndirectlyInstantiated() const;
+ Q_INVOKABLE const QSet<QObject *> packagedElement() const;
+ Q_INVOKABLE const QSet<QObject *> provided() const;
+ Q_INVOKABLE const QSet<QObject *> realization() const;
+ Q_INVOKABLE const QSet<QObject *> required() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+ // Operations [Component]
+ Q_INVOKABLE QSet<QObject *> realizedInterfaces(QObject *classifier) const;
+ Q_INVOKABLE QSet<QObject *> usedInterfaces(QObject *classifier) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Component]
+ void setIndirectlyInstantiated(bool isIndirectlyInstantiated);
+ void addPackagedElement(QObject *packagedElement);
+ void removePackagedElement(QObject *packagedElement);
+ void Q_DECL_HIDDEN addProvided(QObject *provided);
+ void Q_DECL_HIDDEN removeProvided(QObject *provided);
+ void addRealization(QObject *realization);
+ void removeRealization(QObject *realization);
+ void Q_DECL_HIDDEN addRequired(QObject *required);
+ void Q_DECL_HIDDEN removeRequired(QObject *required);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOMPONENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcomponentrealizationobject.cpp b/src/uml/qobjects/qumlcomponentrealizationobject.cpp
new file mode 100644
index 00000000..3ede485a
--- /dev/null
+++ b/src/uml/qobjects/qumlcomponentrealizationobject.cpp
@@ -0,0 +1,424 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcomponentrealizationobject_p.h"
+
+#include <QtUml/QUmlComponentRealization>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlComponent>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlComponentRealizationObject::QUmlComponentRealizationObject(QUmlComponentRealization *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlComponentRealizationObject::~QUmlComponentRealizationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlComponentRealizationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentRealizationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlComponentRealizationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlComponentRealizationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlComponentRealizationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlComponentRealizationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlComponentRealizationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->name();
+}
+
+QObject *QUmlComponentRealizationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlComponentRealizationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlComponentRealizationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlComponentRealizationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlComponentRealizationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlComponentRealizationObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentRealizationObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlComponentRealizationObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlComponentRealizationObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Abstraction]
+
+QObject *QUmlComponentRealizationObject::mapping() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->mapping()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ComponentRealization]
+
+QObject *QUmlComponentRealizationObject::abstraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->abstraction()->asQObject();
+}
+
+const QSet<QObject *> QUmlComponentRealizationObject::realizingClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->realizingClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlComponentRealizationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentRealizationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlComponentRealizationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlComponentRealizationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlComponentRealizationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlComponentRealizationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlComponentRealizationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlComponentRealizationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlComponentRealizationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlComponentRealizationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlComponentRealizationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlComponentRealizationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlComponentRealizationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlComponentRealizationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlComponentRealizationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlComponentRealizationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlComponentRealizationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlComponentRealizationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setName(name);
+}
+
+void QUmlComponentRealizationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlComponentRealizationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlComponentRealizationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlComponentRealizationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlComponentRealizationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlComponentRealizationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlComponentRealizationObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlComponentRealizationObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlComponentRealizationObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlComponentRealizationObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlComponentRealizationObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlComponentRealizationObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlComponentRealizationObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlComponentRealizationObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+
+void QUmlComponentRealizationObject::setMapping(QObject *mapping)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setMapping(qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(mapping));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ComponentRealization]
+
+void QUmlComponentRealizationObject::setAbstraction(QObject *abstraction)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->setAbstraction(qmodelingobjectproperty_cast<QUmlComponent *>(abstraction));
+}
+
+void QUmlComponentRealizationObject::addRealizingClassifier(QObject *realizingClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->addRealizingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(realizingClassifier));
+}
+
+void QUmlComponentRealizationObject::removeRealizingClassifier(QObject *realizingClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlComponentRealization *>(this)->removeRealizingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(realizingClassifier));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcomponentrealizationobject_p.h b/src/uml/qobjects/qumlcomponentrealizationobject_p.h
new file mode 100644
index 00000000..adc4ed66
--- /dev/null
+++ b/src/uml/qobjects/qumlcomponentrealizationobject_p.h
@@ -0,0 +1,207 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCOMPONENTREALIZATIONOBJECT_H
+#define QUMLCOMPONENTREALIZATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlComponentRealization;
+class Q_UML_EXPORT QUmlComponentRealizationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Abstraction]
+ Q_PROPERTY(QObject * mapping READ mapping)
+
+ // Properties [ComponentRealization]
+ Q_PROPERTY(QObject * abstraction READ abstraction)
+ Q_PROPERTY(QSet<QObject *> realizingClassifier READ realizingClassifier)
+
+public:
+ Q_INVOKABLE explicit QUmlComponentRealizationObject(QUmlComponentRealization *qModelingObject);
+ virtual ~QUmlComponentRealizationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Abstraction]
+ Q_INVOKABLE QObject *mapping() const;
+
+ // Owned attributes [ComponentRealization]
+ Q_INVOKABLE QObject *abstraction() const;
+ Q_INVOKABLE const QSet<QObject *> realizingClassifier() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Abstraction]
+ void setMapping(QObject *mapping = 0);
+
+ // Slots for owned attributes [ComponentRealization]
+ void setAbstraction(QObject *abstraction = 0);
+ void addRealizingClassifier(QObject *realizingClassifier);
+ void removeRealizingClassifier(QObject *realizingClassifier);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCOMPONENTREALIZATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlconditionalnodeobject.cpp b/src/uml/qobjects/qumlconditionalnodeobject.cpp
new file mode 100644
index 00000000..1699ab20
--- /dev/null
+++ b/src/uml/qobjects/qumlconditionalnodeobject.cpp
@@ -0,0 +1,923 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconditionalnodeobject_p.h"
+
+#include <QtUml/QUmlConditionalNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClause>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConditionalNodeObject::QUmlConditionalNodeObject(QUmlConditionalNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConditionalNodeObject::~QUmlConditionalNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConditionalNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConditionalNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlConditionalNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlConditionalNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->name();
+}
+
+QObject *QUmlConditionalNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlConditionalNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlConditionalNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlConditionalNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlConditionalNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+const QSet<QObject *> QUmlConditionalNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConditionalNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlConditionalNodeObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlConditionalNodeObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlConditionalNodeObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlConditionalNodeObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlConditionalNodeObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlConditionalNodeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlConditionalNodeObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConditionalNodeObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StructuredActivityNode]
+
+QObject *QUmlConditionalNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConditionalNodeObject::mustIsolate() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->mustIsolate();
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::structuredNodeInput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->structuredNodeInput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConditionalNodeObject::variable() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVariable *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->variable())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ConditionalNode]
+
+const QSet<QObject *> QUmlConditionalNodeObject::clause() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClause *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->clause())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConditionalNodeObject::isAssured() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isAssured();
+}
+
+bool QUmlConditionalNodeObject::isDeterminate() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isDeterminate();
+}
+
+const QList<QObject *> QUmlConditionalNodeObject::result() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->result())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConditionalNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConditionalNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlConditionalNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlConditionalNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConditionalNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlConditionalNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlConditionalNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlConditionalNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlConditionalNodeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlConditionalNodeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlConditionalNodeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConditionalNodeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->membersAreDistinguishable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConditionalNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConditionalNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConditionalNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConditionalNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConditionalNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlConditionalNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConditionalNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConditionalNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setName(name);
+}
+
+void QUmlConditionalNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlConditionalNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlConditionalNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlConditionalNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlConditionalNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlConditionalNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlConditionalNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlConditionalNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlConditionalNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlConditionalNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlConditionalNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlConditionalNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlConditionalNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlConditionalNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlConditionalNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlConditionalNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlConditionalNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlConditionalNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlConditionalNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlConditionalNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlConditionalNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlConditionalNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlConditionalNodeObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlConditionalNodeObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlConditionalNodeObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlConditionalNodeObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlConditionalNodeObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlConditionalNodeObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlConditionalNodeObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlConditionalNodeObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlConditionalNodeObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlConditionalNodeObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlConditionalNodeObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlConditionalNodeObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlConditionalNodeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlConditionalNodeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlConditionalNodeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlConditionalNodeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlConditionalNodeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlConditionalNodeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlConditionalNodeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlConditionalNodeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlConditionalNodeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlConditionalNodeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlConditionalNodeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlConditionalNodeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlConditionalNodeObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlConditionalNodeObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlConditionalNodeObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlConditionalNodeObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlConditionalNodeObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlConditionalNodeObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlConditionalNodeObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
+
+void QUmlConditionalNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlConditionalNodeObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlConditionalNodeObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlConditionalNodeObject::setMustIsolate(bool mustIsolate)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setMustIsolate(mustIsolate);
+}
+
+void QUmlConditionalNodeObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlConditionalNodeObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlConditionalNodeObject::addStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlConditionalNodeObject::removeStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlConditionalNodeObject::addVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+void QUmlConditionalNodeObject::removeVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ConditionalNode]
+
+void QUmlConditionalNodeObject::addClause(QObject *clause)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addClause(qmodelingobjectproperty_cast<QUmlClause *>(clause));
+}
+
+void QUmlConditionalNodeObject::removeClause(QObject *clause)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeClause(qmodelingobjectproperty_cast<QUmlClause *>(clause));
+}
+
+void QUmlConditionalNodeObject::setAssured(bool isAssured)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setAssured(isAssured);
+}
+
+void QUmlConditionalNodeObject::setDeterminate(bool isDeterminate)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->setDeterminate(isDeterminate);
+}
+
+void QUmlConditionalNodeObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlConditionalNodeObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlConditionalNode *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconditionalnodeobject_p.h b/src/uml/qobjects/qumlconditionalnodeobject_p.h
new file mode 100644
index 00000000..1c36f021
--- /dev/null
+++ b/src/uml/qobjects/qumlconditionalnodeobject_p.h
@@ -0,0 +1,322 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONDITIONALNODEOBJECT_H
+#define QUMLCONDITIONALNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConditionalNode;
+class Q_UML_EXPORT QUmlConditionalNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [StructuredActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(bool mustIsolate READ mustIsolate)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+ Q_PROPERTY(QSet<QObject *> structuredNodeInput READ structuredNodeInput)
+ Q_PROPERTY(QSet<QObject *> variable READ variable)
+
+ // Properties [ConditionalNode]
+ Q_PROPERTY(QSet<QObject *> clause READ clause)
+ Q_PROPERTY(bool isAssured READ isAssured)
+ Q_PROPERTY(bool isDeterminate READ isDeterminate)
+ Q_PROPERTY(QList<QObject *> result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlConditionalNodeObject(QUmlConditionalNode *qModelingObject);
+ virtual ~QUmlConditionalNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [StructuredActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE bool mustIsolate() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeInput() const;
+ Q_INVOKABLE const QSet<QObject *> variable() const;
+
+ // Owned attributes [ConditionalNode]
+ Q_INVOKABLE const QSet<QObject *> clause() const;
+ Q_INVOKABLE bool isAssured() const;
+ Q_INVOKABLE bool isDeterminate() const;
+ Q_INVOKABLE const QList<QObject *> result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [StructuredActivityNode]
+ void setActivity(QObject *activity = 0);
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void setMustIsolate(bool mustIsolate);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+ void addStructuredNodeInput(QObject *structuredNodeInput);
+ void removeStructuredNodeInput(QObject *structuredNodeInput);
+ void addVariable(QObject *variable);
+ void removeVariable(QObject *variable);
+
+ // Slots for owned attributes [ConditionalNode]
+ void addClause(QObject *clause);
+ void removeClause(QObject *clause);
+ void setAssured(bool isAssured);
+ void setDeterminate(bool isDeterminate);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONDITIONALNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlconnectableelementtemplateparameterobject.cpp b/src/uml/qobjects/qumlconnectableelementtemplateparameterobject.cpp
new file mode 100644
index 00000000..6d8d84d4
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectableelementtemplateparameterobject.cpp
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconnectableelementtemplateparameterobject_p.h"
+
+#include <QtUml/QUmlConnectableElementTemplateParameter>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlTemplateSignature>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConnectableElementTemplateParameterObject::QUmlConnectableElementTemplateParameterObject(QUmlConnectableElementTemplateParameter *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConnectableElementTemplateParameterObject::~QUmlConnectableElementTemplateParameterObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConnectableElementTemplateParameterObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectableElementTemplateParameterObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConnectableElementTemplateParameterObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateParameter]
+
+QObject *QUmlConnectableElementTemplateParameterObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->default_()->asQObject();
+}
+
+QObject *QUmlConnectableElementTemplateParameterObject::ownedDefault() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->ownedDefault()->asQObject();
+}
+
+QObject *QUmlConnectableElementTemplateParameterObject::ownedParameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->ownedParameteredElement()->asQObject();
+}
+
+QObject *QUmlConnectableElementTemplateParameterObject::signature() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->signature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ConnectableElementTemplateParameter]
+
+QObject *QUmlConnectableElementTemplateParameterObject::parameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->parameteredElement()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConnectableElementTemplateParameterObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectableElementTemplateParameterObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConnectableElementTemplateParameterObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectableElementTemplateParameterObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectableElementTemplateParameterObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectableElementTemplateParameterObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectableElementTemplateParameterObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
+
+void QUmlConnectableElementTemplateParameterObject::setDefault(QObject *default_)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->setDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(default_));
+}
+
+void QUmlConnectableElementTemplateParameterObject::setOwnedDefault(QObject *ownedDefault)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->setOwnedDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedDefault));
+}
+
+void QUmlConnectableElementTemplateParameterObject::setOwnedParameteredElement(QObject *ownedParameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->setOwnedParameteredElement(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedParameteredElement));
+}
+
+void QUmlConnectableElementTemplateParameterObject::setSignature(QObject *signature)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->setSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(signature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ConnectableElementTemplateParameter]
+
+void QUmlConnectableElementTemplateParameterObject::setParameteredElement(QObject *parameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(this)->setParameteredElement(qmodelingobjectproperty_cast<QUmlConnectableElement *>(parameteredElement));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconnectableelementtemplateparameterobject_p.h b/src/uml/qobjects/qumlconnectableelementtemplateparameterobject_p.h
new file mode 100644
index 00000000..2ee941d1
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectableelementtemplateparameterobject_p.h
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONNECTABLEELEMENTTEMPLATEPARAMETEROBJECT_H
+#define QUMLCONNECTABLEELEMENTTEMPLATEPARAMETEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConnectableElementTemplateParameter;
+class Q_UML_EXPORT QUmlConnectableElementTemplateParameterObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateParameter]
+ Q_PROPERTY(QObject * default_ READ default_)
+ Q_PROPERTY(QObject * ownedDefault READ ownedDefault)
+ Q_PROPERTY(QObject * ownedParameteredElement READ ownedParameteredElement)
+ Q_PROPERTY(QObject * signature READ signature)
+
+ // Properties [ConnectableElementTemplateParameter]
+ Q_PROPERTY(QObject * parameteredElement READ parameteredElement)
+
+public:
+ Q_INVOKABLE explicit QUmlConnectableElementTemplateParameterObject(QUmlConnectableElementTemplateParameter *qModelingObject);
+ virtual ~QUmlConnectableElementTemplateParameterObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateParameter]
+ Q_INVOKABLE QObject *default_() const;
+ Q_INVOKABLE QObject *ownedDefault() const;
+ Q_INVOKABLE QObject *ownedParameteredElement() const;
+ Q_INVOKABLE QObject *signature() const;
+
+ // Owned attributes [ConnectableElementTemplateParameter]
+ Q_INVOKABLE QObject *parameteredElement() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateParameter]
+ void setDefault(QObject *default_ = 0);
+ void setOwnedDefault(QObject *ownedDefault = 0);
+ void setOwnedParameteredElement(QObject *ownedParameteredElement = 0);
+ void setSignature(QObject *signature = 0);
+
+ // Slots for owned attributes [ConnectableElementTemplateParameter]
+ void setParameteredElement(QObject *parameteredElement = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONNECTABLEELEMENTTEMPLATEPARAMETEROBJECT_H
+
diff --git a/src/uml/qobjects/qumlconnectionpointreferenceobject.cpp b/src/uml/qobjects/qumlconnectionpointreferenceobject.cpp
new file mode 100644
index 00000000..57943422
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectionpointreferenceobject.cpp
@@ -0,0 +1,345 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconnectionpointreferenceobject_p.h"
+
+#include <QtUml/QUmlConnectionPointReference>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPseudostate>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTransition>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConnectionPointReferenceObject::QUmlConnectionPointReferenceObject(QUmlConnectionPointReference *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConnectionPointReferenceObject::~QUmlConnectionPointReferenceObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConnectionPointReferenceObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlConnectionPointReferenceObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->name();
+}
+
+QObject *QUmlConnectionPointReferenceObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlConnectionPointReferenceObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlConnectionPointReferenceObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlConnectionPointReferenceObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Vertex]
+
+QObject *QUmlConnectionPointReferenceObject::container() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->container()->asQObject();
+}
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ConnectionPointReference]
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::entry() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPseudostate *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->entry())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectionPointReferenceObject::exit() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPseudostate *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->exit())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConnectionPointReferenceObject::state() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->state()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConnectionPointReferenceObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectionPointReferenceObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlConnectionPointReferenceObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlConnectionPointReferenceObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectionPointReferenceObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlConnectionPointReferenceObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->separator();
+}
+
+// OPERATIONS [Vertex]
+
+QObject *QUmlConnectionPointReferenceObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->containingStateMachine()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConnectionPointReferenceObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectionPointReferenceObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectionPointReferenceObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectionPointReferenceObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectionPointReferenceObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlConnectionPointReferenceObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConnectionPointReferenceObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConnectionPointReferenceObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setName(name);
+}
+
+void QUmlConnectionPointReferenceObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlConnectionPointReferenceObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlConnectionPointReferenceObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlConnectionPointReferenceObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Vertex]
+
+void QUmlConnectionPointReferenceObject::setContainer(QObject *container)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setContainer(qmodelingobjectproperty_cast<QUmlRegion *>(container));
+}
+
+void QUmlConnectionPointReferenceObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlConnectionPointReferenceObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlConnectionPointReferenceObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+void QUmlConnectionPointReferenceObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ConnectionPointReference]
+
+void QUmlConnectionPointReferenceObject::addEntry(QObject *entry)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addEntry(qmodelingobjectproperty_cast<QUmlPseudostate *>(entry));
+}
+
+void QUmlConnectionPointReferenceObject::removeEntry(QObject *entry)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeEntry(qmodelingobjectproperty_cast<QUmlPseudostate *>(entry));
+}
+
+void QUmlConnectionPointReferenceObject::addExit(QObject *exit)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->addExit(qmodelingobjectproperty_cast<QUmlPseudostate *>(exit));
+}
+
+void QUmlConnectionPointReferenceObject::removeExit(QObject *exit)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->removeExit(qmodelingobjectproperty_cast<QUmlPseudostate *>(exit));
+}
+
+void QUmlConnectionPointReferenceObject::setState(QObject *state)
+{
+ qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(this)->setState(qmodelingobjectproperty_cast<QUmlState *>(state));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconnectionpointreferenceobject_p.h b/src/uml/qobjects/qumlconnectionpointreferenceobject_p.h
new file mode 100644
index 00000000..4abd8e89
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectionpointreferenceobject_p.h
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONNECTIONPOINTREFERENCEOBJECT_H
+#define QUMLCONNECTIONPOINTREFERENCEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConnectionPointReference;
+class Q_UML_EXPORT QUmlConnectionPointReferenceObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Vertex]
+ Q_PROPERTY(QObject * container READ container)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+
+ // Properties [ConnectionPointReference]
+ Q_PROPERTY(QSet<QObject *> entry READ entry)
+ Q_PROPERTY(QSet<QObject *> exit READ exit)
+ Q_PROPERTY(QObject * state READ state)
+
+public:
+ Q_INVOKABLE explicit QUmlConnectionPointReferenceObject(QUmlConnectionPointReference *qModelingObject);
+ virtual ~QUmlConnectionPointReferenceObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Vertex]
+ Q_INVOKABLE QObject *container() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+
+ // Owned attributes [ConnectionPointReference]
+ Q_INVOKABLE const QSet<QObject *> entry() const;
+ Q_INVOKABLE const QSet<QObject *> exit() const;
+ Q_INVOKABLE QObject *state() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Vertex]
+ Q_INVOKABLE QObject *containingStateMachine() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Vertex]
+ void setContainer(QObject *container = 0);
+ void Q_DECL_HIDDEN addIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN removeIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN addOutgoing(QObject *outgoing);
+ void Q_DECL_HIDDEN removeOutgoing(QObject *outgoing);
+
+ // Slots for owned attributes [ConnectionPointReference]
+ void addEntry(QObject *entry);
+ void removeEntry(QObject *entry);
+ void addExit(QObject *exit);
+ void removeExit(QObject *exit);
+ void setState(QObject *state = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONNECTIONPOINTREFERENCEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlconnectorendobject.cpp b/src/uml/qobjects/qumlconnectorendobject.cpp
new file mode 100644
index 00000000..0b53d073
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectorendobject.cpp
@@ -0,0 +1,267 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconnectorendobject_p.h"
+
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConnectorEndObject::QUmlConnectorEndObject(QUmlConnectorEnd *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConnectorEndObject::~QUmlConnectorEndObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConnectorEndObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectorEndObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConnectorEndObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlConnectorEndObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->isOrdered();
+}
+
+bool QUmlConnectorEndObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->isUnique();
+}
+
+int QUmlConnectorEndObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->lower();
+}
+
+QObject *QUmlConnectorEndObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlConnectorEndObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->upper();
+}
+
+QObject *QUmlConnectorEndObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ConnectorEnd]
+
+QObject *QUmlConnectorEndObject::definingEnd() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->definingEnd()->asQObject();
+}
+
+QObject *QUmlConnectorEndObject::partWithPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->partWithPort()->asQObject();
+}
+
+QObject *QUmlConnectorEndObject::role() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->role()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConnectorEndObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectorEndObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlConnectorEndObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlConnectorEndObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->includesCardinality(C);
+}
+
+bool QUmlConnectorEndObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlConnectorEndObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlConnectorEndObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->isMultivalued();
+}
+
+int QUmlConnectorEndObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->lowerBound();
+}
+
+//int QUmlConnectorEndObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->upperBound();
+//}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConnectorEndObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectorEndObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectorEndObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectorEndObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectorEndObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlConnectorEndObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlConnectorEndObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setUnique(isUnique);
+}
+
+void QUmlConnectorEndObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setLower(lower);
+}
+
+void QUmlConnectorEndObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlConnectorEndObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setUpper(upper);
+}
+
+void QUmlConnectorEndObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ConnectorEnd]
+
+void QUmlConnectorEndObject::setDefiningEnd(QObject *definingEnd)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setDefiningEnd(qmodelingobjectproperty_cast<QUmlProperty *>(definingEnd));
+}
+
+void QUmlConnectorEndObject::setPartWithPort(QObject *partWithPort)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setPartWithPort(qmodelingobjectproperty_cast<QUmlProperty *>(partWithPort));
+}
+
+void QUmlConnectorEndObject::setRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlConnectorEnd *>(this)->setRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconnectorendobject_p.h b/src/uml/qobjects/qumlconnectorendobject_p.h
new file mode 100644
index 00000000..d718d208
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectorendobject_p.h
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONNECTORENDOBJECT_H
+#define QUMLCONNECTORENDOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConnectorEnd;
+class Q_UML_EXPORT QUmlConnectorEndObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [ConnectorEnd]
+ Q_PROPERTY(QObject * definingEnd READ definingEnd)
+ Q_PROPERTY(QObject * partWithPort READ partWithPort)
+ Q_PROPERTY(QObject * role READ role)
+
+public:
+ Q_INVOKABLE explicit QUmlConnectorEndObject(QUmlConnectorEnd *qModelingObject);
+ virtual ~QUmlConnectorEndObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [ConnectorEnd]
+ Q_INVOKABLE QObject *definingEnd() const;
+ Q_INVOKABLE QObject *partWithPort() const;
+ Q_INVOKABLE QObject *role() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [ConnectorEnd]
+ void Q_DECL_HIDDEN setDefiningEnd(QObject *definingEnd = 0);
+ void setPartWithPort(QObject *partWithPort = 0);
+ void setRole(QObject *role = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONNECTORENDOBJECT_H
+
diff --git a/src/uml/qobjects/qumlconnectorobject.cpp b/src/uml/qobjects/qumlconnectorobject.cpp
new file mode 100644
index 00000000..42b85490
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectorobject.cpp
@@ -0,0 +1,410 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconnectorobject_p.h"
+
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConnectorObject::QUmlConnectorObject(QUmlConnector *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConnectorObject::~QUmlConnectorObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConnectorObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectorObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConnectorObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlConnectorObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlConnectorObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->name();
+}
+
+QObject *QUmlConnectorObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlConnectorObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlConnectorObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlConnectorObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlConnectorObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlConnectorObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConnectorObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Feature]
+
+const QSet<QObject *> QUmlConnectorObject::featuringClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->featuringClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectorObject::isStatic() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->isStatic();
+}
+
+// OWNED ATTRIBUTES [Connector]
+
+const QSet<QObject *> QUmlConnectorObject::contract() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->contract())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlConnectorObject::end() const
+{
+ QList<QObject *> list;
+ foreach (QUmlConnectorEnd *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->end())
+ list.append(element->asQObject());
+ return list;
+}
+
+QtUml::ConnectorKind QUmlConnectorObject::kind() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->kind();
+}
+
+const QSet<QObject *> QUmlConnectorObject::redefinedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->redefinedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConnectorObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->type()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConnectorObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectorObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlConnectorObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlConnectorObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlConnector *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConnectorObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlConnectorObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlConnectorObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlConnectorObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlConnector *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConnectorObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectorObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConnectorObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectorObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConnectorObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlConnectorObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConnectorObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConnectorObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setName(name);
+}
+
+void QUmlConnectorObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlConnectorObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlConnectorObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlConnectorObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlConnectorObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlConnectorObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlConnectorObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlConnectorObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlConnectorObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Feature]
+
+void QUmlConnectorObject::addFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlConnectorObject::removeFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlConnectorObject::setStatic(bool isStatic)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setStatic(isStatic);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Connector]
+
+void QUmlConnectorObject::addContract(QObject *contract)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addContract(qmodelingobjectproperty_cast<QUmlBehavior *>(contract));
+}
+
+void QUmlConnectorObject::removeContract(QObject *contract)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeContract(qmodelingobjectproperty_cast<QUmlBehavior *>(contract));
+}
+
+void QUmlConnectorObject::addEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlConnectorObject::removeEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlConnectorObject::setKind(QtUml::ConnectorKind kind)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setKind(kind);
+}
+
+void QUmlConnectorObject::addRedefinedConnector(QObject *redefinedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->addRedefinedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(redefinedConnector));
+}
+
+void QUmlConnectorObject::removeRedefinedConnector(QObject *redefinedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->removeRedefinedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(redefinedConnector));
+}
+
+void QUmlConnectorObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlConnector *>(this)->setType(qmodelingobjectproperty_cast<QUmlAssociation *>(type));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconnectorobject_p.h b/src/uml/qobjects/qumlconnectorobject_p.h
new file mode 100644
index 00000000..a540e0fb
--- /dev/null
+++ b/src/uml/qobjects/qumlconnectorobject_p.h
@@ -0,0 +1,183 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONNECTOROBJECT_H
+#define QUMLCONNECTOROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConnector;
+class Q_UML_EXPORT QUmlConnectorObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [Feature]
+ Q_PROPERTY(QSet<QObject *> featuringClassifier READ featuringClassifier)
+ Q_PROPERTY(bool isStatic READ isStatic)
+
+ // Properties [Connector]
+ Q_PROPERTY(QSet<QObject *> contract READ contract)
+ Q_PROPERTY(QList<QObject *> end READ end)
+ Q_PROPERTY(QtUml::ConnectorKind kind READ kind)
+ Q_PROPERTY(QSet<QObject *> redefinedConnector READ redefinedConnector)
+ Q_PROPERTY(QObject * type READ type)
+
+public:
+ Q_INVOKABLE explicit QUmlConnectorObject(QUmlConnector *qModelingObject);
+ virtual ~QUmlConnectorObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [Feature]
+ Q_INVOKABLE const QSet<QObject *> featuringClassifier() const;
+ Q_INVOKABLE bool isStatic() const;
+
+ // Owned attributes [Connector]
+ Q_INVOKABLE const QSet<QObject *> contract() const;
+ Q_INVOKABLE const QList<QObject *> end() const;
+ Q_INVOKABLE QtUml::ConnectorKind kind() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedConnector() const;
+ Q_INVOKABLE QObject *type() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [Feature]
+ void Q_DECL_HIDDEN addFeaturingClassifier(QObject *featuringClassifier);
+ void Q_DECL_HIDDEN removeFeaturingClassifier(QObject *featuringClassifier);
+ void setStatic(bool isStatic);
+
+ // Slots for owned attributes [Connector]
+ void addContract(QObject *contract);
+ void removeContract(QObject *contract);
+ void addEnd(QObject *end);
+ void removeEnd(QObject *end);
+ void Q_DECL_HIDDEN setKind(QtUml::ConnectorKind kind);
+ void addRedefinedConnector(QObject *redefinedConnector);
+ void removeRedefinedConnector(QObject *redefinedConnector);
+ void setType(QObject *type = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONNECTOROBJECT_H
+
diff --git a/src/uml/qobjects/qumlconsiderignorefragmentobject.cpp b/src/uml/qobjects/qumlconsiderignorefragmentobject.cpp
new file mode 100644
index 00000000..d34739da
--- /dev/null
+++ b/src/uml/qobjects/qumlconsiderignorefragmentobject.cpp
@@ -0,0 +1,370 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconsiderignorefragmentobject_p.h"
+
+#include <QtUml/QUmlConsiderIgnoreFragment>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGate>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConsiderIgnoreFragmentObject::QUmlConsiderIgnoreFragmentObject(QUmlConsiderIgnoreFragment *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConsiderIgnoreFragmentObject::~QUmlConsiderIgnoreFragmentObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConsiderIgnoreFragmentObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlConsiderIgnoreFragmentObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->name();
+}
+
+QObject *QUmlConsiderIgnoreFragmentObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlConsiderIgnoreFragmentObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlConsiderIgnoreFragmentObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlConsiderIgnoreFragmentObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConsiderIgnoreFragmentObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlConsiderIgnoreFragmentObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [CombinedFragment]
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::cfragmentGate() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGate *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->cfragmentGate())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QtUml::InteractionOperatorKind QUmlConsiderIgnoreFragmentObject::interactionOperator() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->interactionOperator();
+}
+
+const QList<QObject *> QUmlConsiderIgnoreFragmentObject::operand() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInteractionOperand *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->operand())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ConsiderIgnoreFragment]
+
+const QSet<QObject *> QUmlConsiderIgnoreFragmentObject::message() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->message())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConsiderIgnoreFragmentObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConsiderIgnoreFragmentObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlConsiderIgnoreFragmentObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlConsiderIgnoreFragmentObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConsiderIgnoreFragmentObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlConsiderIgnoreFragmentObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConsiderIgnoreFragmentObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConsiderIgnoreFragmentObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlConsiderIgnoreFragmentObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setName(name);
+}
+
+void QUmlConsiderIgnoreFragmentObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlConsiderIgnoreFragmentObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlConsiderIgnoreFragmentObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlConsiderIgnoreFragmentObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CombinedFragment]
+
+void QUmlConsiderIgnoreFragmentObject::addCfragmentGate(QObject *cfragmentGate)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addCfragmentGate(qmodelingobjectproperty_cast<QUmlGate *>(cfragmentGate));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeCfragmentGate(QObject *cfragmentGate)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeCfragmentGate(qmodelingobjectproperty_cast<QUmlGate *>(cfragmentGate));
+}
+
+void QUmlConsiderIgnoreFragmentObject::setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->setInteractionOperator(interactionOperator);
+}
+
+void QUmlConsiderIgnoreFragmentObject::addOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(operand));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(operand));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ConsiderIgnoreFragment]
+
+void QUmlConsiderIgnoreFragmentObject::addMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->addMessage(qmodelingobjectproperty_cast<QUmlNamedElement *>(message));
+}
+
+void QUmlConsiderIgnoreFragmentObject::removeMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlConsiderIgnoreFragment *>(this)->removeMessage(qmodelingobjectproperty_cast<QUmlNamedElement *>(message));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconsiderignorefragmentobject_p.h b/src/uml/qobjects/qumlconsiderignorefragmentobject_p.h
new file mode 100644
index 00000000..420db5f1
--- /dev/null
+++ b/src/uml/qobjects/qumlconsiderignorefragmentobject_p.h
@@ -0,0 +1,172 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONSIDERIGNOREFRAGMENTOBJECT_H
+#define QUMLCONSIDERIGNOREFRAGMENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConsiderIgnoreFragment;
+class Q_UML_EXPORT QUmlConsiderIgnoreFragmentObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [CombinedFragment]
+ Q_PROPERTY(QSet<QObject *> cfragmentGate READ cfragmentGate)
+ Q_PROPERTY(QtUml::InteractionOperatorKind interactionOperator READ interactionOperator)
+ Q_PROPERTY(QList<QObject *> operand READ operand)
+
+ // Properties [ConsiderIgnoreFragment]
+ Q_PROPERTY(QSet<QObject *> message READ message)
+
+public:
+ Q_INVOKABLE explicit QUmlConsiderIgnoreFragmentObject(QUmlConsiderIgnoreFragment *qModelingObject);
+ virtual ~QUmlConsiderIgnoreFragmentObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [CombinedFragment]
+ Q_INVOKABLE const QSet<QObject *> cfragmentGate() const;
+ Q_INVOKABLE QtUml::InteractionOperatorKind interactionOperator() const;
+ Q_INVOKABLE const QList<QObject *> operand() const;
+
+ // Owned attributes [ConsiderIgnoreFragment]
+ Q_INVOKABLE const QSet<QObject *> message() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [CombinedFragment]
+ void addCfragmentGate(QObject *cfragmentGate);
+ void removeCfragmentGate(QObject *cfragmentGate);
+ void setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator);
+ void addOperand(QObject *operand);
+ void removeOperand(QObject *operand);
+
+ // Slots for owned attributes [ConsiderIgnoreFragment]
+ void addMessage(QObject *message);
+ void removeMessage(QObject *message);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONSIDERIGNOREFRAGMENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlconstraintobject.cpp b/src/uml/qobjects/qumlconstraintobject.cpp
new file mode 100644
index 00000000..1fc6400a
--- /dev/null
+++ b/src/uml/qobjects/qumlconstraintobject.cpp
@@ -0,0 +1,316 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlconstraintobject_p.h"
+
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlConstraintObject::QUmlConstraintObject(QUmlConstraint *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlConstraintObject::~QUmlConstraintObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlConstraintObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlConstraintObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlConstraintObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlConstraintObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlConstraintObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlConstraintObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlConstraintObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->name();
+}
+
+QObject *QUmlConstraintObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlConstraintObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlConstraintObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlConstraintObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Constraint]
+
+const QList<QObject *> QUmlConstraintObject::constrainedElement() const
+{
+ QList<QObject *> list;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->constrainedElement())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlConstraintObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->context()->asQObject();
+}
+
+QObject *QUmlConstraintObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->specification()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlConstraintObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConstraintObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlConstraintObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlConstraintObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlConstraintObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlConstraintObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlConstraint *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlConstraintObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlConstraintObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlConstraint *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlConstraintObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConstraintObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlConstraintObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConstraintObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlConstraintObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlConstraintObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlConstraintObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlConstraintObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConstraintObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlConstraintObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setName(name);
+}
+
+void QUmlConstraintObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlConstraintObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlConstraintObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlConstraintObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Constraint]
+
+void QUmlConstraintObject::addConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->addConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlConstraintObject::removeConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->removeConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlConstraintObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setContext(qmodelingobjectproperty_cast<QUmlNamespace *>(context));
+}
+
+void QUmlConstraintObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlConstraint *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlValueSpecification *>(specification));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlconstraintobject_p.h b/src/uml/qobjects/qumlconstraintobject_p.h
new file mode 100644
index 00000000..e77500bf
--- /dev/null
+++ b/src/uml/qobjects/qumlconstraintobject_p.h
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONSTRAINTOBJECT_H
+#define QUMLCONSTRAINTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlConstraint;
+class Q_UML_EXPORT QUmlConstraintObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Constraint]
+ Q_PROPERTY(QList<QObject *> constrainedElement READ constrainedElement)
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QObject * specification READ specification)
+
+public:
+ Q_INVOKABLE explicit QUmlConstraintObject(QUmlConstraint *qModelingObject);
+ virtual ~QUmlConstraintObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Constraint]
+ Q_INVOKABLE const QList<QObject *> constrainedElement() const;
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Constraint]
+ void addConstrainedElement(QObject *constrainedElement);
+ void removeConstrainedElement(QObject *constrainedElement);
+ void setContext(QObject *context = 0);
+ void setSpecification(QObject *specification = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONSTRAINTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcontinuationobject.cpp b/src/uml/qobjects/qumlcontinuationobject.cpp
new file mode 100644
index 00000000..347e3334
--- /dev/null
+++ b/src/uml/qobjects/qumlcontinuationobject.cpp
@@ -0,0 +1,311 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcontinuationobject_p.h"
+
+#include <QtUml/QUmlContinuation>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlContinuationObject::QUmlContinuationObject(QUmlContinuation *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlContinuationObject::~QUmlContinuationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlContinuationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlContinuationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlContinuationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlContinuationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlContinuationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->name();
+}
+
+QObject *QUmlContinuationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlContinuationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlContinuationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlContinuationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlContinuationObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlContinuationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlContinuationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlContinuationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Continuation]
+
+bool QUmlContinuationObject::setting() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setting();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlContinuationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlContinuationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlContinuationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlContinuationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlContinuation *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlContinuationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlContinuationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlContinuation *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlContinuationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlContinuationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlContinuationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlContinuationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlContinuationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlContinuationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlContinuationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlContinuationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setName(name);
+}
+
+void QUmlContinuationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlContinuationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlContinuationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlContinuationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlContinuationObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlContinuationObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlContinuationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlContinuationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlContinuationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlContinuationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Continuation]
+
+void QUmlContinuationObject::setSetting(bool setting)
+{
+ qmodelingobjectproperty_cast<QUmlContinuation *>(this)->setSetting(setting);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcontinuationobject_p.h b/src/uml/qobjects/qumlcontinuationobject_p.h
new file mode 100644
index 00000000..5317c7eb
--- /dev/null
+++ b/src/uml/qobjects/qumlcontinuationobject_p.h
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONTINUATIONOBJECT_H
+#define QUMLCONTINUATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlContinuation;
+class Q_UML_EXPORT QUmlContinuationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [Continuation]
+ Q_PROPERTY(bool setting READ setting)
+
+public:
+ Q_INVOKABLE explicit QUmlContinuationObject(QUmlContinuation *qModelingObject);
+ virtual ~QUmlContinuationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [Continuation]
+ Q_INVOKABLE bool setting() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [Continuation]
+ void setSetting(bool setting);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONTINUATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcontrolflowobject.cpp b/src/uml/qobjects/qumlcontrolflowobject.cpp
new file mode 100644
index 00000000..8a13912e
--- /dev/null
+++ b/src/uml/qobjects/qumlcontrolflowobject.cpp
@@ -0,0 +1,433 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcontrolflowobject_p.h"
+
+#include <QtUml/QUmlControlFlow>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlControlFlowObject::QUmlControlFlowObject(QUmlControlFlow *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlControlFlowObject::~QUmlControlFlowObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlControlFlowObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlControlFlowObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlControlFlowObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlControlFlowObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlControlFlowObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->name();
+}
+
+QObject *QUmlControlFlowObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlControlFlowObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlControlFlowObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlControlFlowObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlControlFlowObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlControlFlowObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlControlFlowObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityEdge]
+
+QObject *QUmlControlFlowObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->activity()->asQObject();
+}
+
+QObject *QUmlControlFlowObject::guard() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->guard()->asQObject();
+}
+
+const QSet<QObject *> QUmlControlFlowObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlControlFlowObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlControlFlowObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->inStructuredNode()->asQObject();
+}
+
+QObject *QUmlControlFlowObject::interrupts() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->interrupts()->asQObject();
+}
+
+const QSet<QObject *> QUmlControlFlowObject::redefinedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->redefinedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlControlFlowObject::source() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->source()->asQObject();
+}
+
+QObject *QUmlControlFlowObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->target()->asQObject();
+}
+
+QObject *QUmlControlFlowObject::weight() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->weight()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlControlFlowObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlControlFlowObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlControlFlowObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlControlFlowObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlControlFlowObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlControlFlowObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlControlFlowObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlControlFlowObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlControlFlowObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlControlFlowObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlControlFlowObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlControlFlowObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlControlFlowObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlControlFlowObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlControlFlowObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlControlFlowObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setName(name);
+}
+
+void QUmlControlFlowObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlControlFlowObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlControlFlowObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlControlFlowObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlControlFlowObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlControlFlowObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlControlFlowObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlControlFlowObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlControlFlowObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityEdge]
+
+void QUmlControlFlowObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlControlFlowObject::setGuard(QObject *guard)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setGuard(qmodelingobjectproperty_cast<QUmlValueSpecification *>(guard));
+}
+
+void QUmlControlFlowObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlControlFlowObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlControlFlowObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlControlFlowObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlControlFlowObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlControlFlowObject::setInterrupts(QObject *interrupts)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setInterrupts(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(interrupts));
+}
+
+void QUmlControlFlowObject::addRedefinedEdge(QObject *redefinedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->addRedefinedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(redefinedEdge));
+}
+
+void QUmlControlFlowObject::removeRedefinedEdge(QObject *redefinedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->removeRedefinedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(redefinedEdge));
+}
+
+void QUmlControlFlowObject::setSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setSource(qmodelingobjectproperty_cast<QUmlActivityNode *>(source));
+}
+
+void QUmlControlFlowObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlActivityNode *>(target));
+}
+
+void QUmlControlFlowObject::setWeight(QObject *weight)
+{
+ qmodelingobjectproperty_cast<QUmlControlFlow *>(this)->setWeight(qmodelingobjectproperty_cast<QUmlValueSpecification *>(weight));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcontrolflowobject_p.h b/src/uml/qobjects/qumlcontrolflowobject_p.h
new file mode 100644
index 00000000..02afbc4f
--- /dev/null
+++ b/src/uml/qobjects/qumlcontrolflowobject_p.h
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCONTROLFLOWOBJECT_H
+#define QUMLCONTROLFLOWOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlControlFlow;
+class Q_UML_EXPORT QUmlControlFlowObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityEdge]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QObject * guard READ guard)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QObject * interrupts READ interrupts)
+ Q_PROPERTY(QSet<QObject *> redefinedEdge READ redefinedEdge)
+ Q_PROPERTY(QObject * source READ source)
+ Q_PROPERTY(QObject * target READ target)
+ Q_PROPERTY(QObject * weight READ weight)
+
+public:
+ Q_INVOKABLE explicit QUmlControlFlowObject(QUmlControlFlow *qModelingObject);
+ virtual ~QUmlControlFlowObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityEdge]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE QObject *guard() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE QObject *interrupts() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedEdge() const;
+ Q_INVOKABLE QObject *source() const;
+ Q_INVOKABLE QObject *target() const;
+ Q_INVOKABLE QObject *weight() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityEdge]
+ void setActivity(QObject *activity = 0);
+ void setGuard(QObject *guard = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void setInterrupts(QObject *interrupts = 0);
+ void addRedefinedEdge(QObject *redefinedEdge);
+ void removeRedefinedEdge(QObject *redefinedEdge);
+ void setSource(QObject *source = 0);
+ void setTarget(QObject *target = 0);
+ void setWeight(QObject *weight = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCONTROLFLOWOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcreatelinkactionobject.cpp b/src/uml/qobjects/qumlcreatelinkactionobject.cpp
new file mode 100644
index 00000000..0e3bef10
--- /dev/null
+++ b/src/uml/qobjects/qumlcreatelinkactionobject.cpp
@@ -0,0 +1,612 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcreatelinkactionobject_p.h"
+
+#include <QtUml/QUmlCreateLinkAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlLinkEndCreationData>
+#include <QtUml/QUmlLinkEndData>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCreateLinkActionObject::QUmlCreateLinkActionObject(QUmlCreateLinkAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCreateLinkActionObject::~QUmlCreateLinkActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCreateLinkActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCreateLinkActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCreateLinkActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCreateLinkActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->name();
+}
+
+QObject *QUmlCreateLinkActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCreateLinkActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCreateLinkActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCreateLinkActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCreateLinkActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlCreateLinkActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCreateLinkActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlCreateLinkActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlCreateLinkActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlCreateLinkActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlCreateLinkActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlCreateLinkActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [LinkAction]
+
+const QSet<QObject *> QUmlCreateLinkActionObject::inputValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->inputValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [CreateLinkAction]
+
+const QSet<QObject *> QUmlCreateLinkActionObject::endData() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLinkEndCreationData *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->endData())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCreateLinkActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCreateLinkActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCreateLinkActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCreateLinkActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCreateLinkActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCreateLinkActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCreateLinkActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCreateLinkActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [LinkAction]
+
+QObject *QUmlCreateLinkActionObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->association()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCreateLinkActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCreateLinkActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCreateLinkActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCreateLinkActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCreateLinkActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCreateLinkActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCreateLinkActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCreateLinkActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setName(name);
+}
+
+void QUmlCreateLinkActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCreateLinkActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCreateLinkActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCreateLinkActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCreateLinkActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCreateLinkActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCreateLinkActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCreateLinkActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCreateLinkActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlCreateLinkActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlCreateLinkActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCreateLinkActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCreateLinkActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCreateLinkActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCreateLinkActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCreateLinkActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCreateLinkActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlCreateLinkActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCreateLinkActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCreateLinkActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCreateLinkActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCreateLinkActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlCreateLinkActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlCreateLinkActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlCreateLinkActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlCreateLinkActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlCreateLinkActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCreateLinkActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCreateLinkActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlCreateLinkActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCreateLinkActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCreateLinkActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCreateLinkActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCreateLinkActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlCreateLinkActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
+
+void QUmlCreateLinkActionObject::addInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+void QUmlCreateLinkActionObject::removeInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CreateLinkAction]
+
+void QUmlCreateLinkActionObject::addEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->addEndData(qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(endData));
+}
+
+void QUmlCreateLinkActionObject::removeEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkAction *>(this)->removeEndData(qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(endData));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcreatelinkactionobject_p.h b/src/uml/qobjects/qumlcreatelinkactionobject_p.h
new file mode 100644
index 00000000..0926f013
--- /dev/null
+++ b/src/uml/qobjects/qumlcreatelinkactionobject_p.h
@@ -0,0 +1,243 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCREATELINKACTIONOBJECT_H
+#define QUMLCREATELINKACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCreateLinkAction;
+class Q_UML_EXPORT QUmlCreateLinkActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [LinkAction]
+ Q_PROPERTY(QSet<QObject *> inputValue READ inputValue)
+
+ // Properties [CreateLinkAction]
+ Q_PROPERTY(QSet<QObject *> endData READ endData)
+
+public:
+ Q_INVOKABLE explicit QUmlCreateLinkActionObject(QUmlCreateLinkAction *qModelingObject);
+ virtual ~QUmlCreateLinkActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [LinkAction]
+ Q_INVOKABLE const QSet<QObject *> inputValue() const;
+
+ // Owned attributes [CreateLinkAction]
+ Q_INVOKABLE const QSet<QObject *> endData() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [LinkAction]
+ Q_INVOKABLE QObject *association() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [LinkAction]
+ void addInputValue(QObject *inputValue);
+ void removeInputValue(QObject *inputValue);
+
+ // Slots for owned attributes [CreateLinkAction]
+ void addEndData(QObject *endData);
+ void removeEndData(QObject *endData);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCREATELINKACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcreatelinkobjectactionobject.cpp b/src/uml/qobjects/qumlcreatelinkobjectactionobject.cpp
new file mode 100644
index 00000000..48b96791
--- /dev/null
+++ b/src/uml/qobjects/qumlcreatelinkobjectactionobject.cpp
@@ -0,0 +1,626 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcreatelinkobjectactionobject_p.h"
+
+#include <QtUml/QUmlCreateLinkObjectAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlLinkEndCreationData>
+#include <QtUml/QUmlLinkEndData>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCreateLinkObjectActionObject::QUmlCreateLinkObjectActionObject(QUmlCreateLinkObjectAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCreateLinkObjectActionObject::~QUmlCreateLinkObjectActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCreateLinkObjectActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCreateLinkObjectActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->name();
+}
+
+QObject *QUmlCreateLinkObjectActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCreateLinkObjectActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCreateLinkObjectActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCreateLinkObjectActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCreateLinkObjectActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlCreateLinkObjectActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCreateLinkObjectActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlCreateLinkObjectActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlCreateLinkObjectActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlCreateLinkObjectActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlCreateLinkObjectActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [LinkAction]
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::inputValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->inputValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [CreateLinkAction]
+
+const QSet<QObject *> QUmlCreateLinkObjectActionObject::endData() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLinkEndCreationData *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->endData())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [CreateLinkObjectAction]
+
+QObject *QUmlCreateLinkObjectActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCreateLinkObjectActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCreateLinkObjectActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCreateLinkObjectActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCreateLinkObjectActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCreateLinkObjectActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCreateLinkObjectActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCreateLinkObjectActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCreateLinkObjectActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [LinkAction]
+
+QObject *QUmlCreateLinkObjectActionObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->association()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCreateLinkObjectActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCreateLinkObjectActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCreateLinkObjectActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCreateLinkObjectActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCreateLinkObjectActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCreateLinkObjectActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCreateLinkObjectActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCreateLinkObjectActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setName(name);
+}
+
+void QUmlCreateLinkObjectActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCreateLinkObjectActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCreateLinkObjectActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCreateLinkObjectActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCreateLinkObjectActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCreateLinkObjectActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCreateLinkObjectActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCreateLinkObjectActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCreateLinkObjectActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlCreateLinkObjectActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlCreateLinkObjectActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCreateLinkObjectActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCreateLinkObjectActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCreateLinkObjectActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCreateLinkObjectActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCreateLinkObjectActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCreateLinkObjectActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlCreateLinkObjectActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCreateLinkObjectActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCreateLinkObjectActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCreateLinkObjectActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCreateLinkObjectActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlCreateLinkObjectActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlCreateLinkObjectActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlCreateLinkObjectActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlCreateLinkObjectActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlCreateLinkObjectActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCreateLinkObjectActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCreateLinkObjectActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlCreateLinkObjectActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCreateLinkObjectActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCreateLinkObjectActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCreateLinkObjectActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCreateLinkObjectActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlCreateLinkObjectActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
+
+void QUmlCreateLinkObjectActionObject::addInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+void QUmlCreateLinkObjectActionObject::removeInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CreateLinkAction]
+
+void QUmlCreateLinkObjectActionObject::addEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->addEndData(qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(endData));
+}
+
+void QUmlCreateLinkObjectActionObject::removeEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->removeEndData(qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(endData));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CreateLinkObjectAction]
+
+void QUmlCreateLinkObjectActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlCreateLinkObjectAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcreatelinkobjectactionobject_p.h b/src/uml/qobjects/qumlcreatelinkobjectactionobject_p.h
new file mode 100644
index 00000000..8fe47e57
--- /dev/null
+++ b/src/uml/qobjects/qumlcreatelinkobjectactionobject_p.h
@@ -0,0 +1,252 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCREATELINKOBJECTACTIONOBJECT_H
+#define QUMLCREATELINKOBJECTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCreateLinkObjectAction;
+class Q_UML_EXPORT QUmlCreateLinkObjectActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [LinkAction]
+ Q_PROPERTY(QSet<QObject *> inputValue READ inputValue)
+
+ // Properties [CreateLinkAction]
+ Q_PROPERTY(QSet<QObject *> endData READ endData)
+
+ // Properties [CreateLinkObjectAction]
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlCreateLinkObjectActionObject(QUmlCreateLinkObjectAction *qModelingObject);
+ virtual ~QUmlCreateLinkObjectActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [LinkAction]
+ Q_INVOKABLE const QSet<QObject *> inputValue() const;
+
+ // Owned attributes [CreateLinkAction]
+ Q_INVOKABLE const QSet<QObject *> endData() const;
+
+ // Owned attributes [CreateLinkObjectAction]
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [LinkAction]
+ Q_INVOKABLE QObject *association() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [LinkAction]
+ void addInputValue(QObject *inputValue);
+ void removeInputValue(QObject *inputValue);
+
+ // Slots for owned attributes [CreateLinkAction]
+ void addEndData(QObject *endData);
+ void removeEndData(QObject *endData);
+
+ // Slots for owned attributes [CreateLinkObjectAction]
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCREATELINKOBJECTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlcreateobjectactionobject.cpp b/src/uml/qobjects/qumlcreateobjectactionobject.cpp
new file mode 100644
index 00000000..79637ea1
--- /dev/null
+++ b/src/uml/qobjects/qumlcreateobjectactionobject.cpp
@@ -0,0 +1,582 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlcreateobjectactionobject_p.h"
+
+#include <QtUml/QUmlCreateObjectAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlCreateObjectActionObject::QUmlCreateObjectActionObject(QUmlCreateObjectAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlCreateObjectActionObject::~QUmlCreateObjectActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlCreateObjectActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCreateObjectActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlCreateObjectActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlCreateObjectActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->name();
+}
+
+QObject *QUmlCreateObjectActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlCreateObjectActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlCreateObjectActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlCreateObjectActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlCreateObjectActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlCreateObjectActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlCreateObjectActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlCreateObjectActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlCreateObjectActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlCreateObjectActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlCreateObjectActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlCreateObjectActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlCreateObjectActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [CreateObjectAction]
+
+QObject *QUmlCreateObjectActionObject::classifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->classifier()->asQObject();
+}
+
+QObject *QUmlCreateObjectActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlCreateObjectActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCreateObjectActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlCreateObjectActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlCreateObjectActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlCreateObjectActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlCreateObjectActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlCreateObjectActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlCreateObjectActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlCreateObjectActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCreateObjectActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlCreateObjectActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCreateObjectActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlCreateObjectActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlCreateObjectActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCreateObjectActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlCreateObjectActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setName(name);
+}
+
+void QUmlCreateObjectActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlCreateObjectActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlCreateObjectActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlCreateObjectActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlCreateObjectActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlCreateObjectActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCreateObjectActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlCreateObjectActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlCreateObjectActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlCreateObjectActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlCreateObjectActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCreateObjectActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlCreateObjectActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCreateObjectActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlCreateObjectActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCreateObjectActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlCreateObjectActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlCreateObjectActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCreateObjectActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlCreateObjectActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCreateObjectActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlCreateObjectActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlCreateObjectActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlCreateObjectActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlCreateObjectActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlCreateObjectActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlCreateObjectActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCreateObjectActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlCreateObjectActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlCreateObjectActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCreateObjectActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlCreateObjectActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCreateObjectActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlCreateObjectActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlCreateObjectActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CreateObjectAction]
+
+void QUmlCreateObjectActionObject::setClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier));
+}
+
+void QUmlCreateObjectActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlCreateObjectAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlcreateobjectactionobject_p.h b/src/uml/qobjects/qumlcreateobjectactionobject_p.h
new file mode 100644
index 00000000..aaa4192b
--- /dev/null
+++ b/src/uml/qobjects/qumlcreateobjectactionobject_p.h
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLCREATEOBJECTACTIONOBJECT_H
+#define QUMLCREATEOBJECTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlCreateObjectAction;
+class Q_UML_EXPORT QUmlCreateObjectActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [CreateObjectAction]
+ Q_PROPERTY(QObject * classifier READ classifier)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlCreateObjectActionObject(QUmlCreateObjectAction *qModelingObject);
+ virtual ~QUmlCreateObjectActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [CreateObjectAction]
+ Q_INVOKABLE QObject *classifier() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [CreateObjectAction]
+ void setClassifier(QObject *classifier = 0);
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLCREATEOBJECTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumldatastorenodeobject.cpp b/src/uml/qobjects/qumldatastorenodeobject.cpp
new file mode 100644
index 00000000..a69895e1
--- /dev/null
+++ b/src/uml/qobjects/qumldatastorenodeobject.cpp
@@ -0,0 +1,516 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldatastorenodeobject_p.h"
+
+#include <QtUml/QUmlDataStoreNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDataStoreNodeObject::QUmlDataStoreNodeObject(QUmlDataStoreNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDataStoreNodeObject::~QUmlDataStoreNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDataStoreNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDataStoreNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDataStoreNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDataStoreNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->name();
+}
+
+QObject *QUmlDataStoreNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDataStoreNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDataStoreNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlDataStoreNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDataStoreNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlDataStoreNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDataStoreNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataStoreNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlDataStoreNodeObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlDataStoreNodeObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataStoreNodeObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlDataStoreNodeObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->ordering();
+}
+
+QObject *QUmlDataStoreNodeObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlDataStoreNodeObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->upperBound()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDataStoreNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataStoreNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDataStoreNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDataStoreNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataStoreNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDataStoreNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDataStoreNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDataStoreNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDataStoreNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDataStoreNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDataStoreNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDataStoreNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDataStoreNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDataStoreNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDataStoreNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDataStoreNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setName(name);
+}
+
+void QUmlDataStoreNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDataStoreNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDataStoreNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlDataStoreNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDataStoreNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDataStoreNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDataStoreNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDataStoreNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDataStoreNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlDataStoreNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlDataStoreNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDataStoreNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDataStoreNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDataStoreNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDataStoreNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDataStoreNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDataStoreNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlDataStoreNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDataStoreNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDataStoreNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDataStoreNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDataStoreNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlDataStoreNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlDataStoreNodeObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlDataStoreNodeObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlDataStoreNodeObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlDataStoreNodeObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setControlType(isControlType);
+}
+
+void QUmlDataStoreNodeObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setOrdering(ordering);
+}
+
+void QUmlDataStoreNodeObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlDataStoreNodeObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlDataStoreNode *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldatastorenodeobject_p.h b/src/uml/qobjects/qumldatastorenodeobject_p.h
new file mode 100644
index 00000000..eb0bfd80
--- /dev/null
+++ b/src/uml/qobjects/qumldatastorenodeobject_p.h
@@ -0,0 +1,213 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDATASTORENODEOBJECT_H
+#define QUMLDATASTORENODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDataStoreNode;
+class Q_UML_EXPORT QUmlDataStoreNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+public:
+ Q_INVOKABLE explicit QUmlDataStoreNodeObject(QUmlDataStoreNode *qModelingObject);
+ virtual ~QUmlDataStoreNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDATASTORENODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumldatatypeobject.cpp b/src/uml/qobjects/qumldatatypeobject.cpp
new file mode 100644
index 00000000..bfc710ac
--- /dev/null
+++ b/src/uml/qobjects/qumldatatypeobject.cpp
@@ -0,0 +1,894 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldatatypeobject_p.h"
+
+#include <QtUml/QUmlDataType>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDataTypeObject::QUmlDataTypeObject(QUmlDataType *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDataTypeObject::~QUmlDataTypeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDataTypeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDataTypeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDataTypeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDataTypeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->name();
+}
+
+QObject *QUmlDataTypeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDataTypeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDataTypeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlDataTypeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDataTypeObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDataTypeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlDataTypeObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDataTypeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDataTypeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlDataTypeObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlDataTypeObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataTypeObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isAbstract();
+}
+
+bool QUmlDataTypeObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlDataTypeObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlDataTypeObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDataTypeObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDataTypeObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlDataTypeObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDataTypeObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlDataTypeObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DataType]
+
+const QList<QObject *> QUmlDataTypeObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlDataTypeObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDataTypeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataTypeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDataTypeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDataTypeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataTypeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDataTypeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlDataTypeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlDataTypeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlDataTypeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataTypeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDataTypeObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDataTypeObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDataTypeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDataTypeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlDataTypeObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlDataTypeObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDataTypeObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataTypeObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlDataTypeObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlDataTypeObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDataTypeObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->isTemplate();
+}
+
+bool QUmlDataTypeObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlDataType *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlDataTypeObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [DataType]
+
+QSet<QObject *> QUmlDataTypeObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDataType *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDataTypeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDataTypeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDataTypeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDataTypeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDataTypeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDataTypeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDataTypeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDataTypeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setName(name);
+}
+
+void QUmlDataTypeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDataTypeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDataTypeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlDataTypeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlDataTypeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlDataTypeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlDataTypeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlDataTypeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlDataTypeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlDataTypeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlDataTypeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlDataTypeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlDataTypeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlDataTypeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlDataTypeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDataTypeObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDataTypeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlDataTypeObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDataTypeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDataTypeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDataTypeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDataTypeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDataTypeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlDataTypeObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlDataTypeObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlDataTypeObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlDataTypeObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlDataTypeObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlDataTypeObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlDataTypeObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlDataTypeObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlDataTypeObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlDataTypeObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlDataTypeObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlDataTypeObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlDataTypeObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlDataTypeObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlDataTypeObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlDataTypeObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlDataTypeObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlDataTypeObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlDataTypeObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlDataTypeObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlDataTypeObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlDataTypeObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlDataTypeObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlDataTypeObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlDataTypeObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlDataTypeObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlDataTypeObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlDataTypeObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlDataTypeObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DataType]
+
+void QUmlDataTypeObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlDataTypeObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlDataTypeObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlDataTypeObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlDataType *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldatatypeobject_p.h b/src/uml/qobjects/qumldatatypeobject_p.h
new file mode 100644
index 00000000..7bf5053e
--- /dev/null
+++ b/src/uml/qobjects/qumldatatypeobject_p.h
@@ -0,0 +1,317 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDATATYPEOBJECT_H
+#define QUMLDATATYPEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDataType;
+class Q_UML_EXPORT QUmlDataTypeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [DataType]
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+
+public:
+ Q_INVOKABLE explicit QUmlDataTypeObject(QUmlDataType *qModelingObject);
+ virtual ~QUmlDataTypeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [DataType]
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [DataType]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [DataType]
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDATATYPEOBJECT_H
+
diff --git a/src/uml/qobjects/qumldecisionnodeobject.cpp b/src/uml/qobjects/qumldecisionnodeobject.cpp
new file mode 100644
index 00000000..4b8a0d49
--- /dev/null
+++ b/src/uml/qobjects/qumldecisionnodeobject.cpp
@@ -0,0 +1,462 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldecisionnodeobject_p.h"
+
+#include <QtUml/QUmlDecisionNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlObjectFlow>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDecisionNodeObject::QUmlDecisionNodeObject(QUmlDecisionNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDecisionNodeObject::~QUmlDecisionNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDecisionNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDecisionNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDecisionNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDecisionNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->name();
+}
+
+QObject *QUmlDecisionNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDecisionNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDecisionNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlDecisionNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDecisionNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlDecisionNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDecisionNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDecisionNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DecisionNode]
+
+QObject *QUmlDecisionNodeObject::decisionInput() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->decisionInput()->asQObject();
+}
+
+QObject *QUmlDecisionNodeObject::decisionInputFlow() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->decisionInputFlow()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDecisionNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDecisionNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDecisionNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDecisionNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDecisionNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDecisionNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDecisionNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDecisionNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDecisionNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDecisionNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDecisionNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDecisionNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDecisionNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDecisionNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDecisionNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDecisionNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setName(name);
+}
+
+void QUmlDecisionNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDecisionNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDecisionNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlDecisionNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDecisionNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDecisionNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDecisionNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDecisionNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDecisionNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlDecisionNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlDecisionNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDecisionNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDecisionNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDecisionNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDecisionNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDecisionNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDecisionNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlDecisionNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDecisionNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDecisionNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDecisionNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDecisionNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlDecisionNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DecisionNode]
+
+void QUmlDecisionNodeObject::setDecisionInput(QObject *decisionInput)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setDecisionInput(qmodelingobjectproperty_cast<QUmlBehavior *>(decisionInput));
+}
+
+void QUmlDecisionNodeObject::setDecisionInputFlow(QObject *decisionInputFlow)
+{
+ qmodelingobjectproperty_cast<QUmlDecisionNode *>(this)->setDecisionInputFlow(qmodelingobjectproperty_cast<QUmlObjectFlow *>(decisionInputFlow));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldecisionnodeobject_p.h b/src/uml/qobjects/qumldecisionnodeobject_p.h
new file mode 100644
index 00000000..3fdd1e86
--- /dev/null
+++ b/src/uml/qobjects/qumldecisionnodeobject_p.h
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDECISIONNODEOBJECT_H
+#define QUMLDECISIONNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDecisionNode;
+class Q_UML_EXPORT QUmlDecisionNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [DecisionNode]
+ Q_PROPERTY(QObject * decisionInput READ decisionInput)
+ Q_PROPERTY(QObject * decisionInputFlow READ decisionInputFlow)
+
+public:
+ Q_INVOKABLE explicit QUmlDecisionNodeObject(QUmlDecisionNode *qModelingObject);
+ virtual ~QUmlDecisionNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [DecisionNode]
+ Q_INVOKABLE QObject *decisionInput() const;
+ Q_INVOKABLE QObject *decisionInputFlow() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [DecisionNode]
+ void setDecisionInput(QObject *decisionInput = 0);
+ void setDecisionInputFlow(QObject *decisionInputFlow = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDECISIONNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumldependencyobject.cpp b/src/uml/qobjects/qumldependencyobject.cpp
new file mode 100644
index 00000000..b7668557
--- /dev/null
+++ b/src/uml/qobjects/qumldependencyobject.cpp
@@ -0,0 +1,374 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldependencyobject_p.h"
+
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDependencyObject::QUmlDependencyObject(QUmlDependency *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDependencyObject::~QUmlDependencyObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDependencyObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDependencyObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDependencyObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDependencyObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlDependencyObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDependencyObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDependencyObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->name();
+}
+
+QObject *QUmlDependencyObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDependencyObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDependencyObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDependencyObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlDependencyObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlDependencyObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDependencyObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlDependencyObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDependencyObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDependencyObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDependencyObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDependencyObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDependencyObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDependencyObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDependencyObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDependency *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDependencyObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDependencyObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDependency *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDependencyObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDependencyObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDependencyObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDependencyObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDependencyObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDependencyObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlDependencyObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDependencyObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDependencyObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDependencyObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setName(name);
+}
+
+void QUmlDependencyObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDependencyObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDependencyObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDependencyObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlDependencyObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlDependencyObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlDependencyObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlDependencyObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlDependencyObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlDependencyObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlDependencyObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlDependencyObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlDependencyObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlDependencyObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlDependency *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldependencyobject_p.h b/src/uml/qobjects/qumldependencyobject_p.h
new file mode 100644
index 00000000..5a310750
--- /dev/null
+++ b/src/uml/qobjects/qumldependencyobject_p.h
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDEPENDENCYOBJECT_H
+#define QUMLDEPENDENCYOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDependency;
+class Q_UML_EXPORT QUmlDependencyObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+public:
+ Q_INVOKABLE explicit QUmlDependencyObject(QUmlDependency *qModelingObject);
+ virtual ~QUmlDependencyObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDEPENDENCYOBJECT_H
+
diff --git a/src/uml/qobjects/qumldeploymentobject.cpp b/src/uml/qobjects/qumldeploymentobject.cpp
new file mode 100644
index 00000000..f7acebdb
--- /dev/null
+++ b/src/uml/qobjects/qumldeploymentobject.cpp
@@ -0,0 +1,428 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldeploymentobject_p.h"
+
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployedArtifact>
+#include <QtUml/QUmlDeploymentSpecification>
+#include <QtUml/QUmlDeploymentTarget>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDeploymentObject::QUmlDeploymentObject(QUmlDeployment *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDeploymentObject::~QUmlDeploymentObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDeploymentObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeploymentObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDeploymentObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlDeploymentObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDeploymentObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDeploymentObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->name();
+}
+
+QObject *QUmlDeploymentObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDeploymentObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDeploymentObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDeploymentObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlDeploymentObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlDeploymentObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlDeploymentObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Deployment]
+
+const QSet<QObject *> QUmlDeploymentObject::configuration() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeploymentSpecification *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->configuration())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentObject::deployedArtifact() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployedArtifact *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->deployedArtifact())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeploymentObject::location() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->location()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDeploymentObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDeploymentObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDeploymentObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDeploymentObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDeploymentObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDeployment *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDeploymentObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeployment *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDeploymentObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDeploymentObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDeploymentObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDeploymentObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDeploymentObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDeploymentObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlDeploymentObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDeploymentObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDeploymentObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDeploymentObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setName(name);
+}
+
+void QUmlDeploymentObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDeploymentObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDeploymentObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDeploymentObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlDeploymentObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlDeploymentObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlDeploymentObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlDeploymentObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlDeploymentObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlDeploymentObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlDeploymentObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlDeploymentObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlDeploymentObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlDeploymentObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Deployment]
+
+void QUmlDeploymentObject::addConfiguration(QObject *configuration)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addConfiguration(qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(configuration));
+}
+
+void QUmlDeploymentObject::removeConfiguration(QObject *configuration)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeConfiguration(qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(configuration));
+}
+
+void QUmlDeploymentObject::addDeployedArtifact(QObject *deployedArtifact)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->addDeployedArtifact(qmodelingobjectproperty_cast<QUmlDeployedArtifact *>(deployedArtifact));
+}
+
+void QUmlDeploymentObject::removeDeployedArtifact(QObject *deployedArtifact)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->removeDeployedArtifact(qmodelingobjectproperty_cast<QUmlDeployedArtifact *>(deployedArtifact));
+}
+
+void QUmlDeploymentObject::setLocation(QObject *location)
+{
+ qmodelingobjectproperty_cast<QUmlDeployment *>(this)->setLocation(qmodelingobjectproperty_cast<QUmlDeploymentTarget *>(location));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldeploymentobject_p.h b/src/uml/qobjects/qumldeploymentobject_p.h
new file mode 100644
index 00000000..29917e31
--- /dev/null
+++ b/src/uml/qobjects/qumldeploymentobject_p.h
@@ -0,0 +1,202 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDEPLOYMENTOBJECT_H
+#define QUMLDEPLOYMENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDeployment;
+class Q_UML_EXPORT QUmlDeploymentObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Deployment]
+ Q_PROPERTY(QSet<QObject *> configuration READ configuration)
+ Q_PROPERTY(QSet<QObject *> deployedArtifact READ deployedArtifact)
+ Q_PROPERTY(QObject * location READ location)
+
+public:
+ Q_INVOKABLE explicit QUmlDeploymentObject(QUmlDeployment *qModelingObject);
+ virtual ~QUmlDeploymentObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Deployment]
+ Q_INVOKABLE const QSet<QObject *> configuration() const;
+ Q_INVOKABLE const QSet<QObject *> deployedArtifact() const;
+ Q_INVOKABLE QObject *location() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Deployment]
+ void addConfiguration(QObject *configuration);
+ void removeConfiguration(QObject *configuration);
+ void addDeployedArtifact(QObject *deployedArtifact);
+ void removeDeployedArtifact(QObject *deployedArtifact);
+ void setLocation(QObject *location = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDEPLOYMENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumldeploymentspecificationobject.cpp b/src/uml/qobjects/qumldeploymentspecificationobject.cpp
new file mode 100644
index 00000000..bc88a2fe
--- /dev/null
+++ b/src/uml/qobjects/qumldeploymentspecificationobject.cpp
@@ -0,0 +1,975 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldeploymentspecificationobject_p.h"
+
+#include <QtUml/QUmlDeploymentSpecification>
+#include <QtUml/QUmlArtifact>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlManifestation>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDeploymentSpecificationObject::QUmlDeploymentSpecificationObject(QUmlDeploymentSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDeploymentSpecificationObject::~QUmlDeploymentSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeploymentSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDeploymentSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->name();
+}
+
+QObject *QUmlDeploymentSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDeploymentSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDeploymentSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDeploymentSpecificationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDeploymentSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlDeploymentSpecificationObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDeploymentSpecificationObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentSpecificationObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isAbstract();
+}
+
+bool QUmlDeploymentSpecificationObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlDeploymentSpecificationObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeploymentSpecificationObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeploymentSpecificationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Artifact]
+
+QString QUmlDeploymentSpecificationObject::fileName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->fileName();
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::manifestation() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlManifestation *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->manifestation())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeploymentSpecificationObject::nestedArtifact() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlArtifact *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->nestedArtifact())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlDeploymentSpecificationObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlDeploymentSpecificationObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [DeploymentSpecification]
+
+QObject *QUmlDeploymentSpecificationObject::deployment() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->deployment()->asQObject();
+}
+
+QString QUmlDeploymentSpecificationObject::deploymentLocation() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->deploymentLocation();
+}
+
+QString QUmlDeploymentSpecificationObject::executionLocation() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->executionLocation();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDeploymentSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDeploymentSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlDeploymentSpecificationObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentSpecificationObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDeploymentSpecificationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDeploymentSpecificationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDeploymentSpecificationObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDeploymentSpecificationObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentSpecificationObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlDeploymentSpecificationObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeploymentSpecificationObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->isTemplate();
+}
+
+bool QUmlDeploymentSpecificationObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlDeploymentSpecificationObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDeploymentSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDeploymentSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDeploymentSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDeploymentSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDeploymentSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDeploymentSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setName(name);
+}
+
+void QUmlDeploymentSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDeploymentSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDeploymentSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlDeploymentSpecificationObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlDeploymentSpecificationObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlDeploymentSpecificationObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlDeploymentSpecificationObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlDeploymentSpecificationObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlDeploymentSpecificationObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlDeploymentSpecificationObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlDeploymentSpecificationObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlDeploymentSpecificationObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlDeploymentSpecificationObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDeploymentSpecificationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDeploymentSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlDeploymentSpecificationObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDeploymentSpecificationObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDeploymentSpecificationObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDeploymentSpecificationObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDeploymentSpecificationObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDeploymentSpecificationObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlDeploymentSpecificationObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlDeploymentSpecificationObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlDeploymentSpecificationObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlDeploymentSpecificationObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlDeploymentSpecificationObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlDeploymentSpecificationObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlDeploymentSpecificationObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlDeploymentSpecificationObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlDeploymentSpecificationObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlDeploymentSpecificationObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlDeploymentSpecificationObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlDeploymentSpecificationObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlDeploymentSpecificationObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlDeploymentSpecificationObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlDeploymentSpecificationObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlDeploymentSpecificationObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlDeploymentSpecificationObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlDeploymentSpecificationObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlDeploymentSpecificationObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlDeploymentSpecificationObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlDeploymentSpecificationObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlDeploymentSpecificationObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlDeploymentSpecificationObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlDeploymentSpecificationObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlDeploymentSpecificationObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlDeploymentSpecificationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlDeploymentSpecificationObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlDeploymentSpecificationObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Artifact]
+
+void QUmlDeploymentSpecificationObject::setFileName(QString fileName)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setFileName(fileName);
+}
+
+void QUmlDeploymentSpecificationObject::addManifestation(QObject *manifestation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addManifestation(qmodelingobjectproperty_cast<QUmlManifestation *>(manifestation));
+}
+
+void QUmlDeploymentSpecificationObject::removeManifestation(QObject *manifestation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeManifestation(qmodelingobjectproperty_cast<QUmlManifestation *>(manifestation));
+}
+
+void QUmlDeploymentSpecificationObject::addNestedArtifact(QObject *nestedArtifact)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addNestedArtifact(qmodelingobjectproperty_cast<QUmlArtifact *>(nestedArtifact));
+}
+
+void QUmlDeploymentSpecificationObject::removeNestedArtifact(QObject *nestedArtifact)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeNestedArtifact(qmodelingobjectproperty_cast<QUmlArtifact *>(nestedArtifact));
+}
+
+void QUmlDeploymentSpecificationObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlDeploymentSpecificationObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlDeploymentSpecificationObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentSpecification]
+
+void QUmlDeploymentSpecificationObject::setDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlDeploymentSpecificationObject::setDeploymentLocation(QString deploymentLocation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setDeploymentLocation(deploymentLocation);
+}
+
+void QUmlDeploymentSpecificationObject::setExecutionLocation(QString executionLocation)
+{
+ qmodelingobjectproperty_cast<QUmlDeploymentSpecification *>(this)->setExecutionLocation(executionLocation);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldeploymentspecificationobject_p.h b/src/uml/qobjects/qumldeploymentspecificationobject_p.h
new file mode 100644
index 00000000..6887cf0a
--- /dev/null
+++ b/src/uml/qobjects/qumldeploymentspecificationobject_p.h
@@ -0,0 +1,341 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDEPLOYMENTSPECIFICATIONOBJECT_H
+#define QUMLDEPLOYMENTSPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDeploymentSpecification;
+class Q_UML_EXPORT QUmlDeploymentSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Artifact]
+ Q_PROPERTY(QString fileName READ fileName)
+ Q_PROPERTY(QSet<QObject *> manifestation READ manifestation)
+ Q_PROPERTY(QSet<QObject *> nestedArtifact READ nestedArtifact)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+
+ // Properties [DeploymentSpecification]
+ Q_PROPERTY(QObject * deployment READ deployment)
+ Q_PROPERTY(QString deploymentLocation READ deploymentLocation)
+ Q_PROPERTY(QString executionLocation READ executionLocation)
+
+public:
+ Q_INVOKABLE explicit QUmlDeploymentSpecificationObject(QUmlDeploymentSpecification *qModelingObject);
+ virtual ~QUmlDeploymentSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Artifact]
+ Q_INVOKABLE QString fileName() const;
+ Q_INVOKABLE const QSet<QObject *> manifestation() const;
+ Q_INVOKABLE const QSet<QObject *> nestedArtifact() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+
+ // Owned attributes [DeploymentSpecification]
+ Q_INVOKABLE QObject *deployment() const;
+ Q_INVOKABLE QString deploymentLocation() const;
+ Q_INVOKABLE QString executionLocation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Artifact]
+ void setFileName(QString fileName);
+ void addManifestation(QObject *manifestation);
+ void removeManifestation(QObject *manifestation);
+ void addNestedArtifact(QObject *nestedArtifact);
+ void removeNestedArtifact(QObject *nestedArtifact);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+
+ // Slots for owned attributes [DeploymentSpecification]
+ void setDeployment(QObject *deployment = 0);
+ void setDeploymentLocation(QString deploymentLocation);
+ void setExecutionLocation(QString executionLocation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDEPLOYMENTSPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumldestroylinkactionobject.cpp b/src/uml/qobjects/qumldestroylinkactionobject.cpp
new file mode 100644
index 00000000..d4ca65ae
--- /dev/null
+++ b/src/uml/qobjects/qumldestroylinkactionobject.cpp
@@ -0,0 +1,612 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldestroylinkactionobject_p.h"
+
+#include <QtUml/QUmlDestroyLinkAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlLinkEndData>
+#include <QtUml/QUmlLinkEndDestructionData>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDestroyLinkActionObject::QUmlDestroyLinkActionObject(QUmlDestroyLinkAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDestroyLinkActionObject::~QUmlDestroyLinkActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDestroyLinkActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDestroyLinkActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->name();
+}
+
+QObject *QUmlDestroyLinkActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDestroyLinkActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDestroyLinkActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlDestroyLinkActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDestroyLinkActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlDestroyLinkActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDestroyLinkActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlDestroyLinkActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlDestroyLinkActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlDestroyLinkActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlDestroyLinkActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [LinkAction]
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::inputValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->inputValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DestroyLinkAction]
+
+const QSet<QObject *> QUmlDestroyLinkActionObject::endData() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLinkEndDestructionData *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->endData())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDestroyLinkActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDestroyLinkActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDestroyLinkActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDestroyLinkActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDestroyLinkActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDestroyLinkActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDestroyLinkActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDestroyLinkActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [LinkAction]
+
+QObject *QUmlDestroyLinkActionObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->association()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDestroyLinkActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDestroyLinkActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDestroyLinkActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDestroyLinkActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDestroyLinkActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDestroyLinkActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDestroyLinkActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDestroyLinkActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setName(name);
+}
+
+void QUmlDestroyLinkActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDestroyLinkActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDestroyLinkActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlDestroyLinkActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDestroyLinkActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDestroyLinkActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDestroyLinkActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDestroyLinkActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDestroyLinkActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlDestroyLinkActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlDestroyLinkActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDestroyLinkActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDestroyLinkActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDestroyLinkActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDestroyLinkActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDestroyLinkActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDestroyLinkActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlDestroyLinkActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDestroyLinkActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDestroyLinkActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDestroyLinkActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDestroyLinkActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlDestroyLinkActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlDestroyLinkActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlDestroyLinkActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlDestroyLinkActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlDestroyLinkActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlDestroyLinkActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlDestroyLinkActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlDestroyLinkActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlDestroyLinkActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlDestroyLinkActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlDestroyLinkActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlDestroyLinkActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlDestroyLinkActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
+
+void QUmlDestroyLinkActionObject::addInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+void QUmlDestroyLinkActionObject::removeInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DestroyLinkAction]
+
+void QUmlDestroyLinkActionObject::addEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->addEndData(qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(endData));
+}
+
+void QUmlDestroyLinkActionObject::removeEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyLinkAction *>(this)->removeEndData(qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(endData));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldestroylinkactionobject_p.h b/src/uml/qobjects/qumldestroylinkactionobject_p.h
new file mode 100644
index 00000000..3b09e9dc
--- /dev/null
+++ b/src/uml/qobjects/qumldestroylinkactionobject_p.h
@@ -0,0 +1,243 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDESTROYLINKACTIONOBJECT_H
+#define QUMLDESTROYLINKACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDestroyLinkAction;
+class Q_UML_EXPORT QUmlDestroyLinkActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [LinkAction]
+ Q_PROPERTY(QSet<QObject *> inputValue READ inputValue)
+
+ // Properties [DestroyLinkAction]
+ Q_PROPERTY(QSet<QObject *> endData READ endData)
+
+public:
+ Q_INVOKABLE explicit QUmlDestroyLinkActionObject(QUmlDestroyLinkAction *qModelingObject);
+ virtual ~QUmlDestroyLinkActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [LinkAction]
+ Q_INVOKABLE const QSet<QObject *> inputValue() const;
+
+ // Owned attributes [DestroyLinkAction]
+ Q_INVOKABLE const QSet<QObject *> endData() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [LinkAction]
+ Q_INVOKABLE QObject *association() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [LinkAction]
+ void addInputValue(QObject *inputValue);
+ void removeInputValue(QObject *inputValue);
+
+ // Slots for owned attributes [DestroyLinkAction]
+ void addEndData(QObject *endData);
+ void removeEndData(QObject *endData);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDESTROYLINKACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumldestroyobjectactionobject.cpp b/src/uml/qobjects/qumldestroyobjectactionobject.cpp
new file mode 100644
index 00000000..b6392ed6
--- /dev/null
+++ b/src/uml/qobjects/qumldestroyobjectactionobject.cpp
@@ -0,0 +1,592 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldestroyobjectactionobject_p.h"
+
+#include <QtUml/QUmlDestroyObjectAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDestroyObjectActionObject::QUmlDestroyObjectActionObject(QUmlDestroyObjectAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDestroyObjectActionObject::~QUmlDestroyObjectActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDestroyObjectActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDestroyObjectActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->name();
+}
+
+QObject *QUmlDestroyObjectActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDestroyObjectActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDestroyObjectActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlDestroyObjectActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDestroyObjectActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlDestroyObjectActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDestroyObjectActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlDestroyObjectActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlDestroyObjectActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlDestroyObjectActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestroyObjectActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlDestroyObjectActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [DestroyObjectAction]
+
+bool QUmlDestroyObjectActionObject::isDestroyLinks() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isDestroyLinks();
+}
+
+bool QUmlDestroyObjectActionObject::isDestroyOwnedObjects() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isDestroyOwnedObjects();
+}
+
+QObject *QUmlDestroyObjectActionObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->target()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDestroyObjectActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDestroyObjectActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDestroyObjectActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDestroyObjectActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDestroyObjectActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDestroyObjectActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDestroyObjectActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDestroyObjectActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDestroyObjectActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDestroyObjectActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDestroyObjectActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDestroyObjectActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDestroyObjectActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDestroyObjectActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDestroyObjectActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDestroyObjectActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setName(name);
+}
+
+void QUmlDestroyObjectActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDestroyObjectActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDestroyObjectActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlDestroyObjectActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDestroyObjectActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDestroyObjectActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDestroyObjectActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDestroyObjectActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDestroyObjectActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlDestroyObjectActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlDestroyObjectActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDestroyObjectActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlDestroyObjectActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDestroyObjectActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlDestroyObjectActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDestroyObjectActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlDestroyObjectActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlDestroyObjectActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDestroyObjectActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlDestroyObjectActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDestroyObjectActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlDestroyObjectActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlDestroyObjectActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlDestroyObjectActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlDestroyObjectActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlDestroyObjectActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlDestroyObjectActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlDestroyObjectActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlDestroyObjectActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlDestroyObjectActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlDestroyObjectActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlDestroyObjectActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlDestroyObjectActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlDestroyObjectActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlDestroyObjectActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DestroyObjectAction]
+
+void QUmlDestroyObjectActionObject::setDestroyLinks(bool isDestroyLinks)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setDestroyLinks(isDestroyLinks);
+}
+
+void QUmlDestroyObjectActionObject::setDestroyOwnedObjects(bool isDestroyOwnedObjects)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setDestroyOwnedObjects(isDestroyOwnedObjects);
+}
+
+void QUmlDestroyObjectActionObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlDestroyObjectAction *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlInputPin *>(target));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldestroyobjectactionobject_p.h b/src/uml/qobjects/qumldestroyobjectactionobject_p.h
new file mode 100644
index 00000000..637066d9
--- /dev/null
+++ b/src/uml/qobjects/qumldestroyobjectactionobject_p.h
@@ -0,0 +1,235 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDESTROYOBJECTACTIONOBJECT_H
+#define QUMLDESTROYOBJECTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDestroyObjectAction;
+class Q_UML_EXPORT QUmlDestroyObjectActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [DestroyObjectAction]
+ Q_PROPERTY(bool isDestroyLinks READ isDestroyLinks)
+ Q_PROPERTY(bool isDestroyOwnedObjects READ isDestroyOwnedObjects)
+ Q_PROPERTY(QObject * target READ target)
+
+public:
+ Q_INVOKABLE explicit QUmlDestroyObjectActionObject(QUmlDestroyObjectAction *qModelingObject);
+ virtual ~QUmlDestroyObjectActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [DestroyObjectAction]
+ Q_INVOKABLE bool isDestroyLinks() const;
+ Q_INVOKABLE bool isDestroyOwnedObjects() const;
+ Q_INVOKABLE QObject *target() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [DestroyObjectAction]
+ void setDestroyLinks(bool isDestroyLinks);
+ void setDestroyOwnedObjects(bool isDestroyOwnedObjects);
+ void setTarget(QObject *target = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDESTROYOBJECTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumldestructionoccurrencespecificationobject.cpp b/src/uml/qobjects/qumldestructionoccurrencespecificationobject.cpp
new file mode 100644
index 00000000..ef4fa57e
--- /dev/null
+++ b/src/uml/qobjects/qumldestructionoccurrencespecificationobject.cpp
@@ -0,0 +1,344 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldestructionoccurrencespecificationobject_p.h"
+
+#include <QtUml/QUmlDestructionOccurrenceSpecification>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlMessage>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDestructionOccurrenceSpecificationObject::QUmlDestructionOccurrenceSpecificationObject(QUmlDestructionOccurrenceSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDestructionOccurrenceSpecificationObject::~QUmlDestructionOccurrenceSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDestructionOccurrenceSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->name();
+}
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDestructionOccurrenceSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlDestructionOccurrenceSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [OccurrenceSpecification]
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::covered() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->covered()->asQObject();
+}
+
+const QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::toAfter() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->toAfter())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::toBefore() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->toBefore())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [MessageEnd]
+
+QObject *QUmlDestructionOccurrenceSpecificationObject::message() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->message()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDestructionOccurrenceSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDestructionOccurrenceSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDestructionOccurrenceSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDestructionOccurrenceSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDestructionOccurrenceSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDestructionOccurrenceSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDestructionOccurrenceSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setName(name);
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlDestructionOccurrenceSpecificationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
+
+void QUmlDestructionOccurrenceSpecificationObject::setCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::addToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->addToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::removeToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->removeToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::addToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->addToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+void QUmlDestructionOccurrenceSpecificationObject::removeToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->removeToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
+
+void QUmlDestructionOccurrenceSpecificationObject::setMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlDestructionOccurrenceSpecification *>(this)->setMessage(qmodelingobjectproperty_cast<QUmlMessage *>(message));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldestructionoccurrencespecificationobject_p.h b/src/uml/qobjects/qumldestructionoccurrencespecificationobject_p.h
new file mode 100644
index 00000000..7a53b9a6
--- /dev/null
+++ b/src/uml/qobjects/qumldestructionoccurrencespecificationobject_p.h
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDESTRUCTIONOCCURRENCESPECIFICATIONOBJECT_H
+#define QUMLDESTRUCTIONOCCURRENCESPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDestructionOccurrenceSpecification;
+class Q_UML_EXPORT QUmlDestructionOccurrenceSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [OccurrenceSpecification]
+ Q_PROPERTY(QObject * covered READ covered)
+ Q_PROPERTY(QSet<QObject *> toAfter READ toAfter)
+ Q_PROPERTY(QSet<QObject *> toBefore READ toBefore)
+
+ // Properties [MessageEnd]
+ Q_PROPERTY(QObject * message READ message)
+
+public:
+ Q_INVOKABLE explicit QUmlDestructionOccurrenceSpecificationObject(QUmlDestructionOccurrenceSpecification *qModelingObject);
+ virtual ~QUmlDestructionOccurrenceSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [OccurrenceSpecification]
+ Q_INVOKABLE QObject *covered() const;
+ Q_INVOKABLE const QSet<QObject *> toAfter() const;
+ Q_INVOKABLE const QSet<QObject *> toBefore() const;
+
+ // Owned attributes [MessageEnd]
+ Q_INVOKABLE QObject *message() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [OccurrenceSpecification]
+ void setCovered(QObject *covered = 0);
+ void addToAfter(QObject *toAfter);
+ void removeToAfter(QObject *toAfter);
+ void addToBefore(QObject *toBefore);
+ void removeToBefore(QObject *toBefore);
+
+ // Slots for owned attributes [MessageEnd]
+ void setMessage(QObject *message = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDESTRUCTIONOCCURRENCESPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumldeviceobject.cpp b/src/uml/qobjects/qumldeviceobject.cpp
new file mode 100644
index 00000000..3be5fd80
--- /dev/null
+++ b/src/uml/qobjects/qumldeviceobject.cpp
@@ -0,0 +1,1160 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldeviceobject_p.h"
+
+#include <QtUml/QUmlDevice>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlNode>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDeviceObject::QUmlDeviceObject(QUmlDevice *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDeviceObject::~QUmlDeviceObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDeviceObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeviceObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDeviceObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDeviceObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->name();
+}
+
+QObject *QUmlDeviceObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDeviceObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDeviceObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlDeviceObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDeviceObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDeviceObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlDeviceObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlDeviceObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlDeviceObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlDeviceObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlDeviceObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlDeviceObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeviceObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeviceObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeviceObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDeviceObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeviceObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlDeviceObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlDeviceObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlDeviceObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlDeviceObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlDeviceObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isAbstract();
+}
+
+bool QUmlDeviceObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlDeviceObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlDeviceObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlDeviceObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlDeviceObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlDeviceObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDeviceObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Node]
+
+const QSet<QObject *> QUmlDeviceObject::nestedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNode *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->nestedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDeviceObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDeviceObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDeviceObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDeviceObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlDeviceObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlDeviceObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlDeviceObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDeviceObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDeviceObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlDeviceObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlDeviceObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlDeviceObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlDeviceObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDeviceObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlDeviceObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlDeviceObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDeviceObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->isTemplate();
+}
+
+bool QUmlDeviceObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlDevice *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlDeviceObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlDeviceObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlDevice *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDeviceObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDeviceObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDeviceObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDeviceObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDeviceObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDeviceObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDeviceObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDeviceObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setName(name);
+}
+
+void QUmlDeviceObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDeviceObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDeviceObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlDeviceObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlDeviceObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlDeviceObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlDeviceObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlDeviceObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlDeviceObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlDeviceObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlDeviceObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlDeviceObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlDeviceObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlDeviceObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlDeviceObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDeviceObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDeviceObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlDeviceObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlDeviceObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlDeviceObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDeviceObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlDeviceObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlDeviceObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlDeviceObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlDeviceObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlDeviceObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlDeviceObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlDeviceObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlDeviceObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlDeviceObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlDeviceObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlDeviceObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlDeviceObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlDeviceObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlDeviceObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlDeviceObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlDeviceObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlDeviceObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlDeviceObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlDeviceObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlDeviceObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlDeviceObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlDeviceObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlDeviceObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlDeviceObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlDeviceObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlDeviceObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlDeviceObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlDeviceObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlDeviceObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlDeviceObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlDeviceObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlDeviceObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlDeviceObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlDeviceObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlDeviceObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlDeviceObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlDeviceObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlDeviceObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlDeviceObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlDeviceObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlDeviceObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlDeviceObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlDeviceObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlDeviceObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlDeviceObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->setActive(isActive);
+}
+
+void QUmlDeviceObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlDeviceObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlDeviceObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlDeviceObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlDeviceObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlDeviceObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlDeviceObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlDeviceObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlDeviceObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlDeviceObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlDeviceObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlDeviceObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlDeviceObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlDeviceObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Node]
+
+void QUmlDeviceObject::addNestedNode(QObject *nestedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->addNestedNode(qmodelingobjectproperty_cast<QUmlNode *>(nestedNode));
+}
+
+void QUmlDeviceObject::removeNestedNode(QObject *nestedNode)
+{
+ qmodelingobjectproperty_cast<QUmlDevice *>(this)->removeNestedNode(qmodelingobjectproperty_cast<QUmlNode *>(nestedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldeviceobject_p.h b/src/uml/qobjects/qumldeviceobject_p.h
new file mode 100644
index 00000000..7eb4def7
--- /dev/null
+++ b/src/uml/qobjects/qumldeviceobject_p.h
@@ -0,0 +1,401 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDEVICEOBJECT_H
+#define QUMLDEVICEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDevice;
+class Q_UML_EXPORT QUmlDeviceObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [Node]
+ Q_PROPERTY(QSet<QObject *> nestedNode READ nestedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlDeviceObject(QUmlDevice *qModelingObject);
+ virtual ~QUmlDeviceObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [Node]
+ Q_INVOKABLE const QSet<QObject *> nestedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [Node]
+ void addNestedNode(QObject *nestedNode);
+ void removeNestedNode(QObject *nestedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDEVICEOBJECT_H
+
diff --git a/src/uml/qobjects/qumldurationconstraintobject.cpp b/src/uml/qobjects/qumldurationconstraintobject.cpp
new file mode 100644
index 00000000..9414288e
--- /dev/null
+++ b/src/uml/qobjects/qumldurationconstraintobject.cpp
@@ -0,0 +1,330 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldurationconstraintobject_p.h"
+
+#include <QtUml/QUmlDurationConstraint>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDurationInterval>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterval>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDurationConstraintObject::QUmlDurationConstraintObject(QUmlDurationConstraint *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDurationConstraintObject::~QUmlDurationConstraintObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDurationConstraintObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDurationConstraintObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDurationConstraintObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDurationConstraintObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlDurationConstraintObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDurationConstraintObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDurationConstraintObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->name();
+}
+
+QObject *QUmlDurationConstraintObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDurationConstraintObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDurationConstraintObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDurationConstraintObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Constraint]
+
+const QList<QObject *> QUmlDurationConstraintObject::constrainedElement() const
+{
+ QList<QObject *> list;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->constrainedElement())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlDurationConstraintObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->context()->asQObject();
+}
+// OWNED ATTRIBUTES [DurationConstraint]
+
+bool QUmlDurationConstraintObject::firstEvent() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->firstEvent();
+}
+
+QObject *QUmlDurationConstraintObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->specification()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDurationConstraintObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationConstraintObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDurationConstraintObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDurationConstraintObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDurationConstraintObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDurationConstraintObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationConstraintObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDurationConstraintObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDurationConstraintObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationConstraintObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationConstraintObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationConstraintObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationConstraintObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDurationConstraintObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlDurationConstraintObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDurationConstraintObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationConstraintObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationConstraintObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setName(name);
+}
+
+void QUmlDurationConstraintObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDurationConstraintObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDurationConstraintObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDurationConstraintObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Constraint]
+
+void QUmlDurationConstraintObject::addConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->addConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlDurationConstraintObject::removeConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->removeConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlDurationConstraintObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setContext(qmodelingobjectproperty_cast<QUmlNamespace *>(context));
+}
+// SLOTS FOR OWNED ATTRIBUTES [DurationConstraint]
+
+void QUmlDurationConstraintObject::setFirstEvent(bool firstEvent)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setFirstEvent(firstEvent);
+}
+
+void QUmlDurationConstraintObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlDurationConstraint *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlDurationInterval *>(specification));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldurationconstraintobject_p.h b/src/uml/qobjects/qumldurationconstraintobject_p.h
new file mode 100644
index 00000000..fe44ec63
--- /dev/null
+++ b/src/uml/qobjects/qumldurationconstraintobject_p.h
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDURATIONCONSTRAINTOBJECT_H
+#define QUMLDURATIONCONSTRAINTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDurationConstraint;
+class Q_UML_EXPORT QUmlDurationConstraintObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Constraint]
+ Q_PROPERTY(QList<QObject *> constrainedElement READ constrainedElement)
+ Q_PROPERTY(QObject * context READ context)
+
+ // Properties [IntervalConstraint]
+
+ // Properties [DurationConstraint]
+ Q_PROPERTY(bool firstEvent READ firstEvent)
+ Q_PROPERTY(QObject * specification READ specification)
+
+public:
+ Q_INVOKABLE explicit QUmlDurationConstraintObject(QUmlDurationConstraint *qModelingObject);
+ virtual ~QUmlDurationConstraintObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Constraint]
+ Q_INVOKABLE const QList<QObject *> constrainedElement() const;
+ Q_INVOKABLE QObject *context() const;
+
+ // Owned attributes [IntervalConstraint]
+
+ // Owned attributes [DurationConstraint]
+ Q_INVOKABLE bool firstEvent() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Constraint]
+ void addConstrainedElement(QObject *constrainedElement);
+ void removeConstrainedElement(QObject *constrainedElement);
+ void setContext(QObject *context = 0);
+
+ // Slots for owned attributes [IntervalConstraint]
+
+ // Slots for owned attributes [DurationConstraint]
+ void setFirstEvent(bool firstEvent);
+ void setSpecification(QObject *specification = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDURATIONCONSTRAINTOBJECT_H
+
diff --git a/src/uml/qobjects/qumldurationintervalobject.cpp b/src/uml/qobjects/qumldurationintervalobject.cpp
new file mode 100644
index 00000000..179f424b
--- /dev/null
+++ b/src/uml/qobjects/qumldurationintervalobject.cpp
@@ -0,0 +1,351 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldurationintervalobject_p.h"
+
+#include <QtUml/QUmlDurationInterval>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDuration>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDurationIntervalObject::QUmlDurationIntervalObject(QUmlDurationInterval *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDurationIntervalObject::~QUmlDurationIntervalObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDurationIntervalObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDurationIntervalObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDurationIntervalObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDurationIntervalObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDurationIntervalObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->name();
+}
+
+QObject *QUmlDurationIntervalObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDurationIntervalObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDurationIntervalObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlDurationIntervalObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDurationIntervalObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlDurationIntervalObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDurationIntervalObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [DurationInterval]
+
+QObject *QUmlDurationIntervalObject::max() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->max()->asQObject();
+}
+
+QObject *QUmlDurationIntervalObject::min() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->min()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDurationIntervalObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationIntervalObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDurationIntervalObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDurationIntervalObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationIntervalObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDurationIntervalObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDurationIntervalObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlDurationIntervalObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->booleanValue();
+}
+
+int QUmlDurationIntervalObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->integerValue();
+}
+
+bool QUmlDurationIntervalObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDurationIntervalObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->isComputable();
+}
+
+bool QUmlDurationIntervalObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->isNull();
+}
+
+double QUmlDurationIntervalObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->realValue();
+}
+
+QString QUmlDurationIntervalObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->stringValue();
+}
+
+int QUmlDurationIntervalObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDurationIntervalObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationIntervalObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationIntervalObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationIntervalObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationIntervalObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDurationIntervalObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationIntervalObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationIntervalObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setName(name);
+}
+
+void QUmlDurationIntervalObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDurationIntervalObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDurationIntervalObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlDurationIntervalObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDurationIntervalObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlDurationIntervalObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDurationIntervalObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DurationInterval]
+
+void QUmlDurationIntervalObject::setMax(QObject *max)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setMax(qmodelingobjectproperty_cast<QUmlDuration *>(max));
+}
+
+void QUmlDurationIntervalObject::setMin(QObject *min)
+{
+ qmodelingobjectproperty_cast<QUmlDurationInterval *>(this)->setMin(qmodelingobjectproperty_cast<QUmlDuration *>(min));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldurationintervalobject_p.h b/src/uml/qobjects/qumldurationintervalobject_p.h
new file mode 100644
index 00000000..cd4159d0
--- /dev/null
+++ b/src/uml/qobjects/qumldurationintervalobject_p.h
@@ -0,0 +1,183 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDURATIONINTERVALOBJECT_H
+#define QUMLDURATIONINTERVALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDurationInterval;
+class Q_UML_EXPORT QUmlDurationIntervalObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Interval]
+
+ // Properties [DurationInterval]
+ Q_PROPERTY(QObject * max READ max)
+ Q_PROPERTY(QObject * min READ min)
+
+public:
+ Q_INVOKABLE explicit QUmlDurationIntervalObject(QUmlDurationInterval *qModelingObject);
+ virtual ~QUmlDurationIntervalObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Interval]
+
+ // Owned attributes [DurationInterval]
+ Q_INVOKABLE QObject *max() const;
+ Q_INVOKABLE QObject *min() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Interval]
+
+ // Slots for owned attributes [DurationInterval]
+ void setMax(QObject *max = 0);
+ void setMin(QObject *min = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDURATIONINTERVALOBJECT_H
+
diff --git a/src/uml/qobjects/qumldurationobject.cpp b/src/uml/qobjects/qumldurationobject.cpp
new file mode 100644
index 00000000..d5482db5
--- /dev/null
+++ b/src/uml/qobjects/qumldurationobject.cpp
@@ -0,0 +1,359 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldurationobject_p.h"
+
+#include <QtUml/QUmlDuration>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlObservation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDurationObject::QUmlDurationObject(QUmlDuration *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDurationObject::~QUmlDurationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDurationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDurationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDurationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDurationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDurationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->name();
+}
+
+QObject *QUmlDurationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDurationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDurationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlDurationObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDurationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlDurationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDurationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Duration]
+
+QObject *QUmlDurationObject::expr() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->expr()->asQObject();
+}
+
+const QSet<QObject *> QUmlDurationObject::observation() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlObservation *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->observation())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDurationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDurationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDurationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDuration *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDurationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDurationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlDurationObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->booleanValue();
+}
+
+int QUmlDurationObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->integerValue();
+}
+
+bool QUmlDurationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDurationObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->isComputable();
+}
+
+bool QUmlDurationObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->isNull();
+}
+
+double QUmlDurationObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->realValue();
+}
+
+QString QUmlDurationObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->stringValue();
+}
+
+int QUmlDurationObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlDuration *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDurationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDurationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setName(name);
+}
+
+void QUmlDurationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDurationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDurationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlDurationObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDurationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlDurationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDurationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Duration]
+
+void QUmlDurationObject::setExpr(QObject *expr)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->setExpr(qmodelingobjectproperty_cast<QUmlValueSpecification *>(expr));
+}
+
+void QUmlDurationObject::addObservation(QObject *observation)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->addObservation(qmodelingobjectproperty_cast<QUmlObservation *>(observation));
+}
+
+void QUmlDurationObject::removeObservation(QObject *observation)
+{
+ qmodelingobjectproperty_cast<QUmlDuration *>(this)->removeObservation(qmodelingobjectproperty_cast<QUmlObservation *>(observation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldurationobject_p.h b/src/uml/qobjects/qumldurationobject_p.h
new file mode 100644
index 00000000..89ab6e56
--- /dev/null
+++ b/src/uml/qobjects/qumldurationobject_p.h
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDURATIONOBJECT_H
+#define QUMLDURATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDuration;
+class Q_UML_EXPORT QUmlDurationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Duration]
+ Q_PROPERTY(QObject * expr READ expr)
+ Q_PROPERTY(QSet<QObject *> observation READ observation)
+
+public:
+ Q_INVOKABLE explicit QUmlDurationObject(QUmlDuration *qModelingObject);
+ virtual ~QUmlDurationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Duration]
+ Q_INVOKABLE QObject *expr() const;
+ Q_INVOKABLE const QSet<QObject *> observation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Duration]
+ void setExpr(QObject *expr = 0);
+ void addObservation(QObject *observation);
+ void removeObservation(QObject *observation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDURATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumldurationobservationobject.cpp b/src/uml/qobjects/qumldurationobservationobject.cpp
new file mode 100644
index 00000000..5439ddf8
--- /dev/null
+++ b/src/uml/qobjects/qumldurationobservationobject.cpp
@@ -0,0 +1,297 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumldurationobservationobject_p.h"
+
+#include <QtUml/QUmlDurationObservation>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlDurationObservationObject::QUmlDurationObservationObject(QUmlDurationObservation *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlDurationObservationObject::~QUmlDurationObservationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlDurationObservationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlDurationObservationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlDurationObservationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlDurationObservationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlDurationObservationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlDurationObservationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlDurationObservationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->name();
+}
+
+QObject *QUmlDurationObservationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlDurationObservationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlDurationObservationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlDurationObservationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [DurationObservation]
+
+QObject *QUmlDurationObservationObject::event() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->event()->asQObject();
+}
+
+bool QUmlDurationObservationObject::firstEvent() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->firstEvent();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlDurationObservationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationObservationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlDurationObservationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlDurationObservationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlDurationObservationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlDurationObservationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlDurationObservationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlDurationObservationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlDurationObservationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationObservationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlDurationObservationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationObservationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlDurationObservationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlDurationObservationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlDurationObservationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlDurationObservationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationObservationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlDurationObservationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setName(name);
+}
+
+void QUmlDurationObservationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlDurationObservationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlDurationObservationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlDurationObservationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DurationObservation]
+
+void QUmlDurationObservationObject::setEvent(QObject *event)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setEvent(qmodelingobjectproperty_cast<QUmlNamedElement *>(event));
+}
+
+void QUmlDurationObservationObject::setFirstEvent(bool firstEvent)
+{
+ qmodelingobjectproperty_cast<QUmlDurationObservation *>(this)->setFirstEvent(firstEvent);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumldurationobservationobject_p.h b/src/uml/qobjects/qumldurationobservationobject_p.h
new file mode 100644
index 00000000..f11a6062
--- /dev/null
+++ b/src/uml/qobjects/qumldurationobservationobject_p.h
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLDURATIONOBSERVATIONOBJECT_H
+#define QUMLDURATIONOBSERVATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlDurationObservation;
+class Q_UML_EXPORT QUmlDurationObservationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [DurationObservation]
+ Q_PROPERTY(QObject * event READ event)
+ Q_PROPERTY(bool firstEvent READ firstEvent)
+
+public:
+ Q_INVOKABLE explicit QUmlDurationObservationObject(QUmlDurationObservation *qModelingObject);
+ virtual ~QUmlDurationObservationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [DurationObservation]
+ Q_INVOKABLE QObject *event() const;
+ Q_INVOKABLE bool firstEvent() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [DurationObservation]
+ void setEvent(QObject *event = 0);
+ void setFirstEvent(bool firstEvent);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLDURATIONOBSERVATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlelementimportobject.cpp b/src/uml/qobjects/qumlelementimportobject.cpp
new file mode 100644
index 00000000..4e110db5
--- /dev/null
+++ b/src/uml/qobjects/qumlelementimportobject.cpp
@@ -0,0 +1,243 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlelementimportobject_p.h"
+
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackageableElement>
+
+QT_BEGIN_NAMESPACE
+
+QUmlElementImportObject::QUmlElementImportObject(QUmlElementImport *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlElementImportObject::~QUmlElementImportObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlElementImportObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlElementImport *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlElementImportObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlElementImport *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlElementImportObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlElementImportObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlElementImport *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlElementImportObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlElementImport *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlElementImportObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlElementImport *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ElementImport]
+
+QString QUmlElementImportObject::alias() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->alias();
+}
+
+QObject *QUmlElementImportObject::importedElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->importedElement()->asQObject();
+}
+
+QObject *QUmlElementImportObject::importingNamespace() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->importingNamespace()->asQObject();
+}
+
+QtUml::VisibilityKind QUmlElementImportObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->visibility();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlElementImportObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlElementImport *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlElementImportObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ElementImport]
+
+QString QUmlElementImportObject::getName() const
+{
+ return qmodelingobjectproperty_cast<QUmlElementImport *>(this)->getName();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlElementImportObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlElementImportObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlElementImportObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlElementImportObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlElementImportObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlElementImportObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlElementImportObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlElementImportObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlElementImportObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlElementImportObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlElementImportObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ElementImport]
+
+void QUmlElementImportObject::setAlias(QString alias)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->setAlias(alias);
+}
+
+void QUmlElementImportObject::setImportedElement(QObject *importedElement)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->setImportedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedElement));
+}
+
+void QUmlElementImportObject::setImportingNamespace(QObject *importingNamespace)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->setImportingNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(importingNamespace));
+}
+
+void QUmlElementImportObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlElementImport *>(this)->setVisibility(visibility);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlelementimportobject_p.h b/src/uml/qobjects/qumlelementimportobject_p.h
new file mode 100644
index 00000000..8895d8cd
--- /dev/null
+++ b/src/uml/qobjects/qumlelementimportobject_p.h
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLELEMENTIMPORTOBJECT_H
+#define QUMLELEMENTIMPORTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlElementImport;
+class Q_UML_EXPORT QUmlElementImportObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [ElementImport]
+ Q_PROPERTY(QString alias READ alias)
+ Q_PROPERTY(QObject * importedElement READ importedElement)
+ Q_PROPERTY(QObject * importingNamespace READ importingNamespace)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+public:
+ Q_INVOKABLE explicit QUmlElementImportObject(QUmlElementImport *qModelingObject);
+ virtual ~QUmlElementImportObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [ElementImport]
+ Q_INVOKABLE QString alias() const;
+ Q_INVOKABLE QObject *importedElement() const;
+ Q_INVOKABLE QObject *importingNamespace() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ElementImport]
+ Q_INVOKABLE QString getName() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [ElementImport]
+ void setAlias(QString alias);
+ void setImportedElement(QObject *importedElement = 0);
+ void setImportingNamespace(QObject *importingNamespace = 0);
+ void setVisibility(QtUml::VisibilityKind visibility);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLELEMENTIMPORTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlenumerationliteralobject.cpp b/src/uml/qobjects/qumlenumerationliteralobject.cpp
new file mode 100644
index 00000000..107145f7
--- /dev/null
+++ b/src/uml/qobjects/qumlenumerationliteralobject.cpp
@@ -0,0 +1,375 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlenumerationliteralobject_p.h"
+
+#include <QtUml/QUmlEnumerationLiteral>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlEnumeration>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlSlot>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlEnumerationLiteralObject::QUmlEnumerationLiteralObject(QUmlEnumerationLiteral *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlEnumerationLiteralObject::~QUmlEnumerationLiteralObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlEnumerationLiteralObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationLiteralObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlEnumerationLiteralObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlEnumerationLiteralObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlEnumerationLiteralObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->name();
+}
+
+QObject *QUmlEnumerationLiteralObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlEnumerationLiteralObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlEnumerationLiteralObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlEnumerationLiteralObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlEnumerationLiteralObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlEnumerationLiteralObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlEnumerationLiteralObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationLiteralObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [InstanceSpecification]
+
+const QSet<QObject *> QUmlEnumerationLiteralObject::slot_() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSlot *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->slot_())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlEnumerationLiteralObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [EnumerationLiteral]
+
+QObject *QUmlEnumerationLiteralObject::classifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->classifier()->asQObject();
+}
+
+QObject *QUmlEnumerationLiteralObject::enumeration() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->enumeration()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlEnumerationLiteralObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationLiteralObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlEnumerationLiteralObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlEnumerationLiteralObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationLiteralObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlEnumerationLiteralObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlEnumerationLiteralObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlEnumerationLiteralObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->isTemplateParameter();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlEnumerationLiteralObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlEnumerationLiteralObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlEnumerationLiteralObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlEnumerationLiteralObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlEnumerationLiteralObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlEnumerationLiteralObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlEnumerationLiteralObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlEnumerationLiteralObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setName(name);
+}
+
+void QUmlEnumerationLiteralObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlEnumerationLiteralObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlEnumerationLiteralObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlEnumerationLiteralObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlEnumerationLiteralObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlEnumerationLiteralObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlEnumerationLiteralObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlEnumerationLiteralObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlEnumerationLiteralObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlEnumerationLiteralObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InstanceSpecification]
+
+void QUmlEnumerationLiteralObject::addSlot(QObject *slot_)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->addSlot(qmodelingobjectproperty_cast<QUmlSlot *>(slot_));
+}
+
+void QUmlEnumerationLiteralObject::removeSlot(QObject *slot_)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->removeSlot(qmodelingobjectproperty_cast<QUmlSlot *>(slot_));
+}
+
+void QUmlEnumerationLiteralObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlValueSpecification *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EnumerationLiteral]
+
+void QUmlEnumerationLiteralObject::setClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setClassifier(qmodelingobjectproperty_cast<QUmlEnumeration *>(classifier));
+}
+
+void QUmlEnumerationLiteralObject::setEnumeration(QObject *enumeration)
+{
+ qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(this)->setEnumeration(qmodelingobjectproperty_cast<QUmlEnumeration *>(enumeration));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlenumerationliteralobject_p.h b/src/uml/qobjects/qumlenumerationliteralobject_p.h
new file mode 100644
index 00000000..ce7b2c74
--- /dev/null
+++ b/src/uml/qobjects/qumlenumerationliteralobject_p.h
@@ -0,0 +1,186 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLENUMERATIONLITERALOBJECT_H
+#define QUMLENUMERATIONLITERALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlEnumerationLiteral;
+class Q_UML_EXPORT QUmlEnumerationLiteralObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [InstanceSpecification]
+ Q_PROPERTY(QSet<QObject *> slot_ READ slot_)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [EnumerationLiteral]
+ Q_PROPERTY(QObject * classifier READ classifier)
+ Q_PROPERTY(QObject * enumeration READ enumeration)
+
+public:
+ Q_INVOKABLE explicit QUmlEnumerationLiteralObject(QUmlEnumerationLiteral *qModelingObject);
+ virtual ~QUmlEnumerationLiteralObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [InstanceSpecification]
+ Q_INVOKABLE const QSet<QObject *> slot_() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [EnumerationLiteral]
+ Q_INVOKABLE QObject *classifier() const;
+ Q_INVOKABLE QObject *enumeration() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [InstanceSpecification]
+ void addSlot(QObject *slot_);
+ void removeSlot(QObject *slot_);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [EnumerationLiteral]
+ void Q_DECL_HIDDEN setClassifier(QObject *classifier = 0);
+ void setEnumeration(QObject *enumeration = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLENUMERATIONLITERALOBJECT_H
+
diff --git a/src/uml/qobjects/qumlenumerationobject.cpp b/src/uml/qobjects/qumlenumerationobject.cpp
new file mode 100644
index 00000000..7f51fbd5
--- /dev/null
+++ b/src/uml/qobjects/qumlenumerationobject.cpp
@@ -0,0 +1,917 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlenumerationobject_p.h"
+
+#include <QtUml/QUmlEnumeration>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlEnumerationLiteral>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlEnumerationObject::QUmlEnumerationObject(QUmlEnumeration *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlEnumerationObject::~QUmlEnumerationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlEnumerationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlEnumerationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlEnumerationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlEnumerationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->name();
+}
+
+QObject *QUmlEnumerationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlEnumerationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlEnumerationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlEnumerationObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlEnumerationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlEnumerationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlEnumerationObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlEnumerationObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlEnumerationObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlEnumerationObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlEnumerationObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isAbstract();
+}
+
+bool QUmlEnumerationObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlEnumerationObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlEnumerationObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlEnumerationObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlEnumerationObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlEnumerationObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlEnumerationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlEnumerationObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DataType]
+
+const QList<QObject *> QUmlEnumerationObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlEnumerationObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [Enumeration]
+
+const QList<QObject *> QUmlEnumerationObject::ownedLiteral() const
+{
+ QList<QObject *> list;
+ foreach (QUmlEnumerationLiteral *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->ownedLiteral())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlEnumerationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlEnumerationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlEnumerationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlEnumerationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlEnumerationObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlEnumerationObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlEnumerationObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlEnumerationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlEnumerationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlEnumerationObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlEnumerationObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlEnumerationObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlEnumerationObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlEnumerationObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlEnumerationObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlEnumerationObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlEnumerationObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->isTemplate();
+}
+
+bool QUmlEnumerationObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlEnumerationObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [DataType]
+
+QSet<QObject *> QUmlEnumerationObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlEnumerationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlEnumerationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlEnumerationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlEnumerationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlEnumerationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlEnumerationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlEnumerationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlEnumerationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setName(name);
+}
+
+void QUmlEnumerationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlEnumerationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlEnumerationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlEnumerationObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlEnumerationObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlEnumerationObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlEnumerationObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlEnumerationObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlEnumerationObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlEnumerationObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlEnumerationObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlEnumerationObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlEnumerationObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlEnumerationObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlEnumerationObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlEnumerationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlEnumerationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlEnumerationObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlEnumerationObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlEnumerationObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlEnumerationObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlEnumerationObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlEnumerationObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlEnumerationObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlEnumerationObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlEnumerationObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlEnumerationObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlEnumerationObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlEnumerationObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlEnumerationObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlEnumerationObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlEnumerationObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlEnumerationObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlEnumerationObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlEnumerationObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlEnumerationObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlEnumerationObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlEnumerationObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlEnumerationObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlEnumerationObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlEnumerationObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlEnumerationObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlEnumerationObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlEnumerationObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlEnumerationObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlEnumerationObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlEnumerationObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlEnumerationObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlEnumerationObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlEnumerationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlEnumerationObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlEnumerationObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DataType]
+
+void QUmlEnumerationObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlEnumerationObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlEnumerationObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlEnumerationObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Enumeration]
+
+void QUmlEnumerationObject::addOwnedLiteral(QObject *ownedLiteral)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->addOwnedLiteral(qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(ownedLiteral));
+}
+
+void QUmlEnumerationObject::removeOwnedLiteral(QObject *ownedLiteral)
+{
+ qmodelingobjectproperty_cast<QUmlEnumeration *>(this)->removeOwnedLiteral(qmodelingobjectproperty_cast<QUmlEnumerationLiteral *>(ownedLiteral));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlenumerationobject_p.h b/src/uml/qobjects/qumlenumerationobject_p.h
new file mode 100644
index 00000000..dde48c37
--- /dev/null
+++ b/src/uml/qobjects/qumlenumerationobject_p.h
@@ -0,0 +1,327 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLENUMERATIONOBJECT_H
+#define QUMLENUMERATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlEnumeration;
+class Q_UML_EXPORT QUmlEnumerationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [DataType]
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+
+ // Properties [Enumeration]
+ Q_PROPERTY(QList<QObject *> ownedLiteral READ ownedLiteral)
+
+public:
+ Q_INVOKABLE explicit QUmlEnumerationObject(QUmlEnumeration *qModelingObject);
+ virtual ~QUmlEnumerationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [DataType]
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+
+ // Owned attributes [Enumeration]
+ Q_INVOKABLE const QList<QObject *> ownedLiteral() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [DataType]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [DataType]
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+
+ // Slots for owned attributes [Enumeration]
+ void addOwnedLiteral(QObject *ownedLiteral);
+ void removeOwnedLiteral(QObject *ownedLiteral);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLENUMERATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlexceptionhandlerobject.cpp b/src/uml/qobjects/qumlexceptionhandlerobject.cpp
new file mode 100644
index 00000000..9929392e
--- /dev/null
+++ b/src/uml/qobjects/qumlexceptionhandlerobject.cpp
@@ -0,0 +1,183 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlexceptionhandlerobject_p.h"
+
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExecutableNode>
+#include <QtUml/QUmlObjectNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExceptionHandlerObject::QUmlExceptionHandlerObject(QUmlExceptionHandler *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExceptionHandlerObject::~QUmlExceptionHandlerObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExceptionHandlerObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExceptionHandlerObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExceptionHandlerObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ExceptionHandler]
+
+QObject *QUmlExceptionHandlerObject::exceptionInput() const
+{
+ return qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->exceptionInput()->asQObject();
+}
+
+const QSet<QObject *> QUmlExceptionHandlerObject::exceptionType() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->exceptionType())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExceptionHandlerObject::handlerBody() const
+{
+ return qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->handlerBody()->asQObject();
+}
+
+QObject *QUmlExceptionHandlerObject::protectedNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->protectedNode()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExceptionHandlerObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExceptionHandlerObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExceptionHandlerObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExceptionHandlerObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExceptionHandlerObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExceptionHandlerObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExceptionHandlerObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExceptionHandler]
+
+void QUmlExceptionHandlerObject::setExceptionInput(QObject *exceptionInput)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->setExceptionInput(qmodelingobjectproperty_cast<QUmlObjectNode *>(exceptionInput));
+}
+
+void QUmlExceptionHandlerObject::addExceptionType(QObject *exceptionType)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->addExceptionType(qmodelingobjectproperty_cast<QUmlClassifier *>(exceptionType));
+}
+
+void QUmlExceptionHandlerObject::removeExceptionType(QObject *exceptionType)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->removeExceptionType(qmodelingobjectproperty_cast<QUmlClassifier *>(exceptionType));
+}
+
+void QUmlExceptionHandlerObject::setHandlerBody(QObject *handlerBody)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->setHandlerBody(qmodelingobjectproperty_cast<QUmlExecutableNode *>(handlerBody));
+}
+
+void QUmlExceptionHandlerObject::setProtectedNode(QObject *protectedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExceptionHandler *>(this)->setProtectedNode(qmodelingobjectproperty_cast<QUmlExecutableNode *>(protectedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlexceptionhandlerobject_p.h b/src/uml/qobjects/qumlexceptionhandlerobject_p.h
new file mode 100644
index 00000000..06bf54e0
--- /dev/null
+++ b/src/uml/qobjects/qumlexceptionhandlerobject_p.h
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXCEPTIONHANDLEROBJECT_H
+#define QUMLEXCEPTIONHANDLEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExceptionHandler;
+class Q_UML_EXPORT QUmlExceptionHandlerObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ExceptionHandler]
+ Q_PROPERTY(QObject * exceptionInput READ exceptionInput)
+ Q_PROPERTY(QSet<QObject *> exceptionType READ exceptionType)
+ Q_PROPERTY(QObject * handlerBody READ handlerBody)
+ Q_PROPERTY(QObject * protectedNode READ protectedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlExceptionHandlerObject(QUmlExceptionHandler *qModelingObject);
+ virtual ~QUmlExceptionHandlerObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ExceptionHandler]
+ Q_INVOKABLE QObject *exceptionInput() const;
+ Q_INVOKABLE const QSet<QObject *> exceptionType() const;
+ Q_INVOKABLE QObject *handlerBody() const;
+ Q_INVOKABLE QObject *protectedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ExceptionHandler]
+ void setExceptionInput(QObject *exceptionInput = 0);
+ void addExceptionType(QObject *exceptionType);
+ void removeExceptionType(QObject *exceptionType);
+ void setHandlerBody(QObject *handlerBody = 0);
+ void setProtectedNode(QObject *protectedNode = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXCEPTIONHANDLEROBJECT_H
+
diff --git a/src/uml/qobjects/qumlexecutionenvironmentobject.cpp b/src/uml/qobjects/qumlexecutionenvironmentobject.cpp
new file mode 100644
index 00000000..9632b631
--- /dev/null
+++ b/src/uml/qobjects/qumlexecutionenvironmentobject.cpp
@@ -0,0 +1,1160 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlexecutionenvironmentobject_p.h"
+
+#include <QtUml/QUmlExecutionEnvironment>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlNode>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExecutionEnvironmentObject::QUmlExecutionEnvironmentObject(QUmlExecutionEnvironment *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExecutionEnvironmentObject::~QUmlExecutionEnvironmentObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExecutionEnvironmentObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExecutionEnvironmentObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->name();
+}
+
+QObject *QUmlExecutionEnvironmentObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExecutionEnvironmentObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExecutionEnvironmentObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlExecutionEnvironmentObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlExecutionEnvironmentObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlExecutionEnvironmentObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlExecutionEnvironmentObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlExecutionEnvironmentObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExecutionEnvironmentObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExecutionEnvironmentObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlExecutionEnvironmentObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isAbstract();
+}
+
+bool QUmlExecutionEnvironmentObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlExecutionEnvironmentObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlExecutionEnvironmentObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlExecutionEnvironmentObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Node]
+
+const QSet<QObject *> QUmlExecutionEnvironmentObject::nestedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNode *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->nestedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExecutionEnvironmentObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExecutionEnvironmentObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlExecutionEnvironmentObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlExecutionEnvironmentObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlExecutionEnvironmentObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlExecutionEnvironmentObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlExecutionEnvironmentObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlExecutionEnvironmentObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionEnvironmentObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->isTemplate();
+}
+
+bool QUmlExecutionEnvironmentObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlExecutionEnvironmentObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExecutionEnvironmentObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExecutionEnvironmentObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExecutionEnvironmentObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExecutionEnvironmentObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExecutionEnvironmentObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setName(name);
+}
+
+void QUmlExecutionEnvironmentObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExecutionEnvironmentObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExecutionEnvironmentObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlExecutionEnvironmentObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlExecutionEnvironmentObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlExecutionEnvironmentObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlExecutionEnvironmentObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlExecutionEnvironmentObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlExecutionEnvironmentObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlExecutionEnvironmentObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlExecutionEnvironmentObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlExecutionEnvironmentObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlExecutionEnvironmentObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlExecutionEnvironmentObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlExecutionEnvironmentObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlExecutionEnvironmentObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExecutionEnvironmentObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExecutionEnvironmentObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlExecutionEnvironmentObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlExecutionEnvironmentObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlExecutionEnvironmentObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlExecutionEnvironmentObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlExecutionEnvironmentObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlExecutionEnvironmentObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlExecutionEnvironmentObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlExecutionEnvironmentObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlExecutionEnvironmentObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlExecutionEnvironmentObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlExecutionEnvironmentObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlExecutionEnvironmentObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlExecutionEnvironmentObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlExecutionEnvironmentObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlExecutionEnvironmentObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlExecutionEnvironmentObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlExecutionEnvironmentObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlExecutionEnvironmentObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlExecutionEnvironmentObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlExecutionEnvironmentObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlExecutionEnvironmentObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlExecutionEnvironmentObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlExecutionEnvironmentObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlExecutionEnvironmentObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlExecutionEnvironmentObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlExecutionEnvironmentObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlExecutionEnvironmentObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlExecutionEnvironmentObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlExecutionEnvironmentObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlExecutionEnvironmentObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlExecutionEnvironmentObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlExecutionEnvironmentObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlExecutionEnvironmentObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlExecutionEnvironmentObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlExecutionEnvironmentObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlExecutionEnvironmentObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlExecutionEnvironmentObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlExecutionEnvironmentObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->setActive(isActive);
+}
+
+void QUmlExecutionEnvironmentObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlExecutionEnvironmentObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlExecutionEnvironmentObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlExecutionEnvironmentObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlExecutionEnvironmentObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlExecutionEnvironmentObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlExecutionEnvironmentObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlExecutionEnvironmentObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlExecutionEnvironmentObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlExecutionEnvironmentObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Node]
+
+void QUmlExecutionEnvironmentObject::addNestedNode(QObject *nestedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->addNestedNode(qmodelingobjectproperty_cast<QUmlNode *>(nestedNode));
+}
+
+void QUmlExecutionEnvironmentObject::removeNestedNode(QObject *nestedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionEnvironment *>(this)->removeNestedNode(qmodelingobjectproperty_cast<QUmlNode *>(nestedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlexecutionenvironmentobject_p.h b/src/uml/qobjects/qumlexecutionenvironmentobject_p.h
new file mode 100644
index 00000000..3d292576
--- /dev/null
+++ b/src/uml/qobjects/qumlexecutionenvironmentobject_p.h
@@ -0,0 +1,401 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXECUTIONENVIRONMENTOBJECT_H
+#define QUMLEXECUTIONENVIRONMENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExecutionEnvironment;
+class Q_UML_EXPORT QUmlExecutionEnvironmentObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [Node]
+ Q_PROPERTY(QSet<QObject *> nestedNode READ nestedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlExecutionEnvironmentObject(QUmlExecutionEnvironment *qModelingObject);
+ virtual ~QUmlExecutionEnvironmentObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [Node]
+ Q_INVOKABLE const QSet<QObject *> nestedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [Node]
+ void addNestedNode(QObject *nestedNode);
+ void removeNestedNode(QObject *nestedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXECUTIONENVIRONMENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlexecutionoccurrencespecificationobject.cpp b/src/uml/qobjects/qumlexecutionoccurrencespecificationobject.cpp
new file mode 100644
index 00000000..027dc29a
--- /dev/null
+++ b/src/uml/qobjects/qumlexecutionoccurrencespecificationobject.cpp
@@ -0,0 +1,344 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlexecutionoccurrencespecificationobject_p.h"
+
+#include <QtUml/QUmlExecutionOccurrenceSpecification>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExecutionSpecification>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExecutionOccurrenceSpecificationObject::QUmlExecutionOccurrenceSpecificationObject(QUmlExecutionOccurrenceSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExecutionOccurrenceSpecificationObject::~QUmlExecutionOccurrenceSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExecutionOccurrenceSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->name();
+}
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExecutionOccurrenceSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlExecutionOccurrenceSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [OccurrenceSpecification]
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::covered() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->covered()->asQObject();
+}
+
+const QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::toAfter() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->toAfter())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::toBefore() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->toBefore())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutionOccurrenceSpecification]
+
+QObject *QUmlExecutionOccurrenceSpecificationObject::execution() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->execution()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionOccurrenceSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExecutionOccurrenceSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExecutionOccurrenceSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExecutionOccurrenceSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExecutionOccurrenceSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExecutionOccurrenceSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExecutionOccurrenceSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setName(name);
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlExecutionOccurrenceSpecificationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
+
+void QUmlExecutionOccurrenceSpecificationObject::setCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::addToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->addToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::removeToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->removeToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::addToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->addToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+void QUmlExecutionOccurrenceSpecificationObject::removeToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->removeToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutionOccurrenceSpecification]
+
+void QUmlExecutionOccurrenceSpecificationObject::setExecution(QObject *execution)
+{
+ qmodelingobjectproperty_cast<QUmlExecutionOccurrenceSpecification *>(this)->setExecution(qmodelingobjectproperty_cast<QUmlExecutionSpecification *>(execution));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlexecutionoccurrencespecificationobject_p.h b/src/uml/qobjects/qumlexecutionoccurrencespecificationobject_p.h
new file mode 100644
index 00000000..473f322e
--- /dev/null
+++ b/src/uml/qobjects/qumlexecutionoccurrencespecificationobject_p.h
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXECUTIONOCCURRENCESPECIFICATIONOBJECT_H
+#define QUMLEXECUTIONOCCURRENCESPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExecutionOccurrenceSpecification;
+class Q_UML_EXPORT QUmlExecutionOccurrenceSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [OccurrenceSpecification]
+ Q_PROPERTY(QObject * covered READ covered)
+ Q_PROPERTY(QSet<QObject *> toAfter READ toAfter)
+ Q_PROPERTY(QSet<QObject *> toBefore READ toBefore)
+
+ // Properties [ExecutionOccurrenceSpecification]
+ Q_PROPERTY(QObject * execution READ execution)
+
+public:
+ Q_INVOKABLE explicit QUmlExecutionOccurrenceSpecificationObject(QUmlExecutionOccurrenceSpecification *qModelingObject);
+ virtual ~QUmlExecutionOccurrenceSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [OccurrenceSpecification]
+ Q_INVOKABLE QObject *covered() const;
+ Q_INVOKABLE const QSet<QObject *> toAfter() const;
+ Q_INVOKABLE const QSet<QObject *> toBefore() const;
+
+ // Owned attributes [ExecutionOccurrenceSpecification]
+ Q_INVOKABLE QObject *execution() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [OccurrenceSpecification]
+ void setCovered(QObject *covered = 0);
+ void addToAfter(QObject *toAfter);
+ void removeToAfter(QObject *toAfter);
+ void addToBefore(QObject *toBefore);
+ void removeToBefore(QObject *toBefore);
+
+ // Slots for owned attributes [ExecutionOccurrenceSpecification]
+ void setExecution(QObject *execution = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXECUTIONOCCURRENCESPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlexpansionnodeobject.cpp b/src/uml/qobjects/qumlexpansionnodeobject.cpp
new file mode 100644
index 00000000..070855f2
--- /dev/null
+++ b/src/uml/qobjects/qumlexpansionnodeobject.cpp
@@ -0,0 +1,541 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlexpansionnodeobject_p.h"
+
+#include <QtUml/QUmlExpansionNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExpansionRegion>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExpansionNodeObject::QUmlExpansionNodeObject(QUmlExpansionNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExpansionNodeObject::~QUmlExpansionNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExpansionNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExpansionNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExpansionNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExpansionNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->name();
+}
+
+QObject *QUmlExpansionNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExpansionNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExpansionNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlExpansionNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlExpansionNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlExpansionNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExpansionNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlExpansionNodeObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlExpansionNodeObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionNodeObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlExpansionNodeObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->ordering();
+}
+
+QObject *QUmlExpansionNodeObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlExpansionNodeObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->upperBound()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ExpansionNode]
+
+QObject *QUmlExpansionNodeObject::regionAsInput() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->regionAsInput()->asQObject();
+}
+
+QObject *QUmlExpansionNodeObject::regionAsOutput() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->regionAsOutput()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExpansionNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExpansionNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExpansionNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExpansionNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlExpansionNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlExpansionNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExpansionNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExpansionNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExpansionNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExpansionNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExpansionNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExpansionNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExpansionNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExpansionNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setName(name);
+}
+
+void QUmlExpansionNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExpansionNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExpansionNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlExpansionNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlExpansionNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlExpansionNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExpansionNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExpansionNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlExpansionNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlExpansionNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlExpansionNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlExpansionNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlExpansionNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlExpansionNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlExpansionNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlExpansionNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlExpansionNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlExpansionNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlExpansionNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlExpansionNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlExpansionNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlExpansionNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlExpansionNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlExpansionNodeObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlExpansionNodeObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlExpansionNodeObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlExpansionNodeObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setControlType(isControlType);
+}
+
+void QUmlExpansionNodeObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setOrdering(ordering);
+}
+
+void QUmlExpansionNodeObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlExpansionNodeObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExpansionNode]
+
+void QUmlExpansionNodeObject::setRegionAsInput(QObject *regionAsInput)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setRegionAsInput(qmodelingobjectproperty_cast<QUmlExpansionRegion *>(regionAsInput));
+}
+
+void QUmlExpansionNodeObject::setRegionAsOutput(QObject *regionAsOutput)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionNode *>(this)->setRegionAsOutput(qmodelingobjectproperty_cast<QUmlExpansionRegion *>(regionAsOutput));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlexpansionnodeobject_p.h b/src/uml/qobjects/qumlexpansionnodeobject_p.h
new file mode 100644
index 00000000..f5a170ae
--- /dev/null
+++ b/src/uml/qobjects/qumlexpansionnodeobject_p.h
@@ -0,0 +1,225 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXPANSIONNODEOBJECT_H
+#define QUMLEXPANSIONNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExpansionNode;
+class Q_UML_EXPORT QUmlExpansionNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+ // Properties [ExpansionNode]
+ Q_PROPERTY(QObject * regionAsInput READ regionAsInput)
+ Q_PROPERTY(QObject * regionAsOutput READ regionAsOutput)
+
+public:
+ Q_INVOKABLE explicit QUmlExpansionNodeObject(QUmlExpansionNode *qModelingObject);
+ virtual ~QUmlExpansionNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Owned attributes [ExpansionNode]
+ Q_INVOKABLE QObject *regionAsInput() const;
+ Q_INVOKABLE QObject *regionAsOutput() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+
+ // Slots for owned attributes [ExpansionNode]
+ void setRegionAsInput(QObject *regionAsInput = 0);
+ void setRegionAsOutput(QObject *regionAsOutput = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXPANSIONNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlexpansionregionobject.cpp b/src/uml/qobjects/qumlexpansionregionobject.cpp
new file mode 100644
index 00000000..d5f3eff6
--- /dev/null
+++ b/src/uml/qobjects/qumlexpansionregionobject.cpp
@@ -0,0 +1,931 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlexpansionregionobject_p.h"
+
+#include <QtUml/QUmlExpansionRegion>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlExpansionNode>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExpansionRegionObject::QUmlExpansionRegionObject(QUmlExpansionRegion *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExpansionRegionObject::~QUmlExpansionRegionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExpansionRegionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExpansionRegionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExpansionRegionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExpansionRegionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->name();
+}
+
+QObject *QUmlExpansionRegionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExpansionRegionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExpansionRegionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlExpansionRegionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlExpansionRegionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+const QSet<QObject *> QUmlExpansionRegionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExpansionRegionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlExpansionRegionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlExpansionRegionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlExpansionRegionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlExpansionRegionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlExpansionRegionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlExpansionRegionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlExpansionRegionObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExpansionRegionObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StructuredActivityNode]
+
+QObject *QUmlExpansionRegionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionRegionObject::mustIsolate() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->mustIsolate();
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::structuredNodeInput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->structuredNodeInput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::structuredNodeOutput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->structuredNodeOutput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::variable() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVariable *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->variable())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExpansionRegion]
+
+const QSet<QObject *> QUmlExpansionRegionObject::inputElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExpansionNode *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->inputElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QtUml::ExpansionKind QUmlExpansionRegionObject::mode() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->mode();
+}
+
+const QSet<QObject *> QUmlExpansionRegionObject::outputElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExpansionNode *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->outputElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExpansionRegionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionRegionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExpansionRegionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExpansionRegionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionRegionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExpansionRegionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlExpansionRegionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlExpansionRegionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlExpansionRegionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlExpansionRegionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlExpansionRegionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpansionRegionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->membersAreDistinguishable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExpansionRegionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExpansionRegionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExpansionRegionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExpansionRegionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExpansionRegionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExpansionRegionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExpansionRegionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExpansionRegionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setName(name);
+}
+
+void QUmlExpansionRegionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExpansionRegionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExpansionRegionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlExpansionRegionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlExpansionRegionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlExpansionRegionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExpansionRegionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExpansionRegionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlExpansionRegionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlExpansionRegionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlExpansionRegionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlExpansionRegionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlExpansionRegionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlExpansionRegionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlExpansionRegionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlExpansionRegionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlExpansionRegionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlExpansionRegionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlExpansionRegionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlExpansionRegionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlExpansionRegionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlExpansionRegionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlExpansionRegionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlExpansionRegionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlExpansionRegionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlExpansionRegionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlExpansionRegionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlExpansionRegionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlExpansionRegionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlExpansionRegionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlExpansionRegionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlExpansionRegionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlExpansionRegionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlExpansionRegionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlExpansionRegionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlExpansionRegionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlExpansionRegionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlExpansionRegionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlExpansionRegionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlExpansionRegionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlExpansionRegionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlExpansionRegionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlExpansionRegionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlExpansionRegionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlExpansionRegionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlExpansionRegionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlExpansionRegionObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlExpansionRegionObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlExpansionRegionObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlExpansionRegionObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlExpansionRegionObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlExpansionRegionObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlExpansionRegionObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
+
+void QUmlExpansionRegionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlExpansionRegionObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlExpansionRegionObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlExpansionRegionObject::setMustIsolate(bool mustIsolate)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setMustIsolate(mustIsolate);
+}
+
+void QUmlExpansionRegionObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlExpansionRegionObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlExpansionRegionObject::addStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlExpansionRegionObject::removeStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlExpansionRegionObject::addStructuredNodeOutput(QObject *structuredNodeOutput)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addStructuredNodeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(structuredNodeOutput));
+}
+
+void QUmlExpansionRegionObject::removeStructuredNodeOutput(QObject *structuredNodeOutput)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeStructuredNodeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(structuredNodeOutput));
+}
+
+void QUmlExpansionRegionObject::addVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+void QUmlExpansionRegionObject::removeVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExpansionRegion]
+
+void QUmlExpansionRegionObject::addInputElement(QObject *inputElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addInputElement(qmodelingobjectproperty_cast<QUmlExpansionNode *>(inputElement));
+}
+
+void QUmlExpansionRegionObject::removeInputElement(QObject *inputElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeInputElement(qmodelingobjectproperty_cast<QUmlExpansionNode *>(inputElement));
+}
+
+void QUmlExpansionRegionObject::setMode(QtUml::ExpansionKind mode)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->setMode(mode);
+}
+
+void QUmlExpansionRegionObject::addOutputElement(QObject *outputElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->addOutputElement(qmodelingobjectproperty_cast<QUmlExpansionNode *>(outputElement));
+}
+
+void QUmlExpansionRegionObject::removeOutputElement(QObject *outputElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpansionRegion *>(this)->removeOutputElement(qmodelingobjectproperty_cast<QUmlExpansionNode *>(outputElement));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlexpansionregionobject_p.h b/src/uml/qobjects/qumlexpansionregionobject_p.h
new file mode 100644
index 00000000..8b98bd30
--- /dev/null
+++ b/src/uml/qobjects/qumlexpansionregionobject_p.h
@@ -0,0 +1,323 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXPANSIONREGIONOBJECT_H
+#define QUMLEXPANSIONREGIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExpansionRegion;
+class Q_UML_EXPORT QUmlExpansionRegionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [StructuredActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(bool mustIsolate READ mustIsolate)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+ Q_PROPERTY(QSet<QObject *> structuredNodeInput READ structuredNodeInput)
+ Q_PROPERTY(QSet<QObject *> structuredNodeOutput READ structuredNodeOutput)
+ Q_PROPERTY(QSet<QObject *> variable READ variable)
+
+ // Properties [ExpansionRegion]
+ Q_PROPERTY(QSet<QObject *> inputElement READ inputElement)
+ Q_PROPERTY(QtUml::ExpansionKind mode READ mode)
+ Q_PROPERTY(QSet<QObject *> outputElement READ outputElement)
+
+public:
+ Q_INVOKABLE explicit QUmlExpansionRegionObject(QUmlExpansionRegion *qModelingObject);
+ virtual ~QUmlExpansionRegionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [StructuredActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE bool mustIsolate() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeInput() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeOutput() const;
+ Q_INVOKABLE const QSet<QObject *> variable() const;
+
+ // Owned attributes [ExpansionRegion]
+ Q_INVOKABLE const QSet<QObject *> inputElement() const;
+ Q_INVOKABLE QtUml::ExpansionKind mode() const;
+ Q_INVOKABLE const QSet<QObject *> outputElement() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [StructuredActivityNode]
+ void setActivity(QObject *activity = 0);
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void setMustIsolate(bool mustIsolate);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+ void addStructuredNodeInput(QObject *structuredNodeInput);
+ void removeStructuredNodeInput(QObject *structuredNodeInput);
+ void addStructuredNodeOutput(QObject *structuredNodeOutput);
+ void removeStructuredNodeOutput(QObject *structuredNodeOutput);
+ void addVariable(QObject *variable);
+ void removeVariable(QObject *variable);
+
+ // Slots for owned attributes [ExpansionRegion]
+ void addInputElement(QObject *inputElement);
+ void removeInputElement(QObject *inputElement);
+ void setMode(QtUml::ExpansionKind mode);
+ void addOutputElement(QObject *outputElement);
+ void removeOutputElement(QObject *outputElement);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXPANSIONREGIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlexpressionobject.cpp b/src/uml/qobjects/qumlexpressionobject.cpp
new file mode 100644
index 00000000..5d6ea9e7
--- /dev/null
+++ b/src/uml/qobjects/qumlexpressionobject.cpp
@@ -0,0 +1,358 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlexpressionobject_p.h"
+
+#include <QtUml/QUmlExpression>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExpressionObject::QUmlExpressionObject(QUmlExpression *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExpressionObject::~QUmlExpressionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExpressionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExpressionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExpressionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExpressionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExpressionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->name();
+}
+
+QObject *QUmlExpressionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExpressionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExpressionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlExpressionObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlExpressionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlExpressionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlExpressionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Expression]
+
+const QList<QObject *> QUmlExpressionObject::operand() const
+{
+ QList<QObject *> list;
+ foreach (QUmlValueSpecification *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->operand())
+ list.append(element->asQObject());
+ return list;
+}
+
+QString QUmlExpressionObject::symbol() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->symbol();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExpressionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpressionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExpressionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExpressionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExpression *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExpressionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExpressionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlExpressionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlExpressionObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->booleanValue();
+}
+
+int QUmlExpressionObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->integerValue();
+}
+
+bool QUmlExpressionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlExpressionObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->isComputable();
+}
+
+bool QUmlExpressionObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->isNull();
+}
+
+double QUmlExpressionObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->realValue();
+}
+
+QString QUmlExpressionObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->stringValue();
+}
+
+int QUmlExpressionObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExpression *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExpressionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExpressionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExpressionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExpressionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExpressionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExpressionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExpressionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExpressionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setName(name);
+}
+
+void QUmlExpressionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExpressionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExpressionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlExpressionObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlExpressionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlExpressionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlExpressionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Expression]
+
+void QUmlExpressionObject::addOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->addOperand(qmodelingobjectproperty_cast<QUmlValueSpecification *>(operand));
+}
+
+void QUmlExpressionObject::removeOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->removeOperand(qmodelingobjectproperty_cast<QUmlValueSpecification *>(operand));
+}
+
+void QUmlExpressionObject::setSymbol(QString symbol)
+{
+ qmodelingobjectproperty_cast<QUmlExpression *>(this)->setSymbol(symbol);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlexpressionobject_p.h b/src/uml/qobjects/qumlexpressionobject_p.h
new file mode 100644
index 00000000..0a37e87d
--- /dev/null
+++ b/src/uml/qobjects/qumlexpressionobject_p.h
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXPRESSIONOBJECT_H
+#define QUMLEXPRESSIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExpression;
+class Q_UML_EXPORT QUmlExpressionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Expression]
+ Q_PROPERTY(QList<QObject *> operand READ operand)
+ Q_PROPERTY(QString symbol READ symbol)
+
+public:
+ Q_INVOKABLE explicit QUmlExpressionObject(QUmlExpression *qModelingObject);
+ virtual ~QUmlExpressionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Expression]
+ Q_INVOKABLE const QList<QObject *> operand() const;
+ Q_INVOKABLE QString symbol() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Expression]
+ void addOperand(QObject *operand);
+ void removeOperand(QObject *operand);
+ void setSymbol(QString symbol);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXPRESSIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlextendobject.cpp b/src/uml/qobjects/qumlextendobject.cpp
new file mode 100644
index 00000000..4e93c445
--- /dev/null
+++ b/src/uml/qobjects/qumlextendobject.cpp
@@ -0,0 +1,350 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlextendobject_p.h"
+
+#include <QtUml/QUmlExtend>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExtensionPoint>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExtendObject::QUmlExtendObject(QUmlExtend *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExtendObject::~QUmlExtendObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExtendObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtendObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExtendObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlExtendObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlExtendObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtendObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExtendObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExtendObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->name();
+}
+
+QObject *QUmlExtendObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExtendObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExtendObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlExtendObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Extend]
+
+QObject *QUmlExtendObject::condition() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->condition()->asQObject();
+}
+
+QObject *QUmlExtendObject::extendedCase() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->extendedCase()->asQObject();
+}
+
+QObject *QUmlExtendObject::extension() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->extension()->asQObject();
+}
+
+const QList<QObject *> QUmlExtendObject::extensionLocation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlExtensionPoint *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->extensionLocation())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExtendObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtendObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExtendObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExtendObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExtend *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtendObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExtendObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtend *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExtendObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtendObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtendObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtendObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtendObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlExtendObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlExtendObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlExtendObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlExtendObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlExtendObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlExtendObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExtendObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtendObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtendObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setName(name);
+}
+
+void QUmlExtendObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExtendObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExtendObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlExtendObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Extend]
+
+void QUmlExtendObject::setCondition(QObject *condition)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setCondition(qmodelingobjectproperty_cast<QUmlConstraint *>(condition));
+}
+
+void QUmlExtendObject::setExtendedCase(QObject *extendedCase)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setExtendedCase(qmodelingobjectproperty_cast<QUmlUseCase *>(extendedCase));
+}
+
+void QUmlExtendObject::setExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->setExtension(qmodelingobjectproperty_cast<QUmlUseCase *>(extension));
+}
+
+void QUmlExtendObject::addExtensionLocation(QObject *extensionLocation)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->addExtensionLocation(qmodelingobjectproperty_cast<QUmlExtensionPoint *>(extensionLocation));
+}
+
+void QUmlExtendObject::removeExtensionLocation(QObject *extensionLocation)
+{
+ qmodelingobjectproperty_cast<QUmlExtend *>(this)->removeExtensionLocation(qmodelingobjectproperty_cast<QUmlExtensionPoint *>(extensionLocation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlextendobject_p.h b/src/uml/qobjects/qumlextendobject_p.h
new file mode 100644
index 00000000..5a0a37ac
--- /dev/null
+++ b/src/uml/qobjects/qumlextendobject_p.h
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXTENDOBJECT_H
+#define QUMLEXTENDOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExtend;
+class Q_UML_EXPORT QUmlExtendObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Extend]
+ Q_PROPERTY(QObject * condition READ condition)
+ Q_PROPERTY(QObject * extendedCase READ extendedCase)
+ Q_PROPERTY(QObject * extension READ extension)
+ Q_PROPERTY(QList<QObject *> extensionLocation READ extensionLocation)
+
+public:
+ Q_INVOKABLE explicit QUmlExtendObject(QUmlExtend *qModelingObject);
+ virtual ~QUmlExtendObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Extend]
+ Q_INVOKABLE QObject *condition() const;
+ Q_INVOKABLE QObject *extendedCase() const;
+ Q_INVOKABLE QObject *extension() const;
+ Q_INVOKABLE const QList<QObject *> extensionLocation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Extend]
+ void setCondition(QObject *condition = 0);
+ void setExtendedCase(QObject *extendedCase = 0);
+ void setExtension(QObject *extension = 0);
+ void addExtensionLocation(QObject *extensionLocation);
+ void removeExtensionLocation(QObject *extensionLocation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXTENDOBJECT_H
+
diff --git a/src/uml/qobjects/qumlextensionendobject.cpp b/src/uml/qobjects/qumlextensionendobject.cpp
new file mode 100644
index 00000000..aeaa04a3
--- /dev/null
+++ b/src/uml/qobjects/qumlextensionendobject.cpp
@@ -0,0 +1,785 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlextensionendobject_p.h"
+
+#include <QtUml/QUmlExtensionEnd>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElementTemplateParameter>
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlDataType>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStereotype>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExtensionEndObject::QUmlExtensionEndObject(QUmlExtensionEnd *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExtensionEndObject::~QUmlExtensionEndObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExtensionEndObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionEndObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExtensionEndObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExtensionEndObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExtensionEndObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->name();
+}
+
+QObject *QUmlExtensionEndObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExtensionEndObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExtensionEndObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlExtensionEndObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlExtensionEndObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isOrdered();
+}
+
+bool QUmlExtensionEndObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isUnique();
+}
+
+QObject *QUmlExtensionEndObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlExtensionEndObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->upper();
+}
+
+QObject *QUmlExtensionEndObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlExtensionEndObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlExtensionEndObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionEndObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Feature]
+
+const QSet<QObject *> QUmlExtensionEndObject::featuringClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->featuringClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionEndObject::isStatic() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isStatic();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlExtensionEndObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [ConnectableElement]
+
+const QList<QObject *> QUmlExtensionEndObject::end() const
+{
+ QList<QObject *> list;
+ foreach (QUmlConnectorEnd *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->end())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlExtensionEndObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlExtensionEndObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionEndObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Property]
+
+QtUml::AggregationKind QUmlExtensionEndObject::aggregation() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->aggregation();
+}
+
+QObject *QUmlExtensionEndObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->association()->asQObject();
+}
+
+QObject *QUmlExtensionEndObject::associationEnd() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->associationEnd()->asQObject();
+}
+
+QObject *QUmlExtensionEndObject::class_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->class_()->asQObject();
+}
+
+QObject *QUmlExtensionEndObject::datatype() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->datatype()->asQObject();
+}
+
+QString QUmlExtensionEndObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->default_();
+}
+
+QObject *QUmlExtensionEndObject::defaultValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->defaultValue()->asQObject();
+}
+
+QObject *QUmlExtensionEndObject::interface_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->interface_()->asQObject();
+}
+
+bool QUmlExtensionEndObject::isComposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isComposite();
+}
+
+bool QUmlExtensionEndObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isDerived();
+}
+
+bool QUmlExtensionEndObject::isDerivedUnion() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isDerivedUnion();
+}
+
+bool QUmlExtensionEndObject::isID() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isID();
+}
+
+bool QUmlExtensionEndObject::isReadOnly() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isReadOnly();
+}
+
+QObject *QUmlExtensionEndObject::opposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->opposite()->asQObject();
+}
+
+QObject *QUmlExtensionEndObject::owningAssociation() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->owningAssociation()->asQObject();
+}
+
+const QList<QObject *> QUmlExtensionEndObject::qualifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->qualifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlExtensionEndObject::redefinedProperty() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->redefinedProperty())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionEndObject::subsettedProperty() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->subsettedProperty())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExtensionEnd]
+
+int QUmlExtensionEndObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->lower();
+}
+
+QObject *QUmlExtensionEndObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->type()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExtensionEndObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionEndObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExtensionEndObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExtensionEndObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionEndObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExtensionEndObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->separator();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlExtensionEndObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlExtensionEndObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->includesCardinality(C);
+}
+
+bool QUmlExtensionEndObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlExtensionEndObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlExtensionEndObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isMultivalued();
+}
+
+//int QUmlExtensionEndObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->upperBound();
+//}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlExtensionEndObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlExtensionEndObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Property]
+
+bool QUmlExtensionEndObject::isAttribute(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(p));
+}
+
+bool QUmlExtensionEndObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlExtensionEndObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlExtensionEndObject::isNavigable() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->isNavigable();
+}
+
+QSet<QObject *> QUmlExtensionEndObject::subsettingContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->subsettingContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [ExtensionEnd]
+
+int QUmlExtensionEndObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->lowerBound();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExtensionEndObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtensionEndObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtensionEndObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtensionEndObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtensionEndObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExtensionEndObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtensionEndObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtensionEndObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setName(name);
+}
+
+void QUmlExtensionEndObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExtensionEndObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExtensionEndObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlExtensionEndObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlExtensionEndObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlExtensionEndObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setUnique(isUnique);
+}
+
+void QUmlExtensionEndObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlExtensionEndObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setUpper(upper);
+}
+
+void QUmlExtensionEndObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlExtensionEndObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlExtensionEndObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExtensionEndObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExtensionEndObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlExtensionEndObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Feature]
+
+void QUmlExtensionEndObject::addFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlExtensionEndObject::removeFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlExtensionEndObject::setStatic(bool isStatic)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setStatic(isStatic);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlExtensionEndObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
+
+void QUmlExtensionEndObject::addEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlExtensionEndObject::removeEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlExtensionEndObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlExtensionEndObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlExtensionEndObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlExtensionEndObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlExtensionEndObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Property]
+
+void QUmlExtensionEndObject::setAggregation(QtUml::AggregationKind aggregation)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setAggregation(aggregation);
+}
+
+void QUmlExtensionEndObject::setAssociation(QObject *association)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(association));
+}
+
+void QUmlExtensionEndObject::setAssociationEnd(QObject *associationEnd)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setAssociationEnd(qmodelingobjectproperty_cast<QUmlProperty *>(associationEnd));
+}
+
+void QUmlExtensionEndObject::setClass(QObject *class_)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setClass(qmodelingobjectproperty_cast<QUmlClass *>(class_));
+}
+
+void QUmlExtensionEndObject::setDatatype(QObject *datatype)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setDatatype(qmodelingobjectproperty_cast<QUmlDataType *>(datatype));
+}
+
+void QUmlExtensionEndObject::setDefault(QString default_)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setDefault(default_);
+}
+
+void QUmlExtensionEndObject::setDefaultValue(QObject *defaultValue)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setDefaultValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(defaultValue));
+}
+
+void QUmlExtensionEndObject::setInterface(QObject *interface_)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setInterface(qmodelingobjectproperty_cast<QUmlInterface *>(interface_));
+}
+
+void QUmlExtensionEndObject::setComposite(bool isComposite)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setComposite(isComposite);
+}
+
+void QUmlExtensionEndObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setDerived(isDerived);
+}
+
+void QUmlExtensionEndObject::setDerivedUnion(bool isDerivedUnion)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setDerivedUnion(isDerivedUnion);
+}
+
+void QUmlExtensionEndObject::setID(bool isID)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setID(isID);
+}
+
+void QUmlExtensionEndObject::setReadOnly(bool isReadOnly)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setReadOnly(isReadOnly);
+}
+
+void QUmlExtensionEndObject::setOpposite(QObject *opposite)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setOpposite(qmodelingobjectproperty_cast<QUmlProperty *>(opposite));
+}
+
+void QUmlExtensionEndObject::setOwningAssociation(QObject *owningAssociation)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setOwningAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(owningAssociation));
+}
+
+void QUmlExtensionEndObject::addQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlExtensionEndObject::removeQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlExtensionEndObject::addRedefinedProperty(QObject *redefinedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addRedefinedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(redefinedProperty));
+}
+
+void QUmlExtensionEndObject::removeRedefinedProperty(QObject *redefinedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeRedefinedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(redefinedProperty));
+}
+
+void QUmlExtensionEndObject::addSubsettedProperty(QObject *subsettedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->addSubsettedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(subsettedProperty));
+}
+
+void QUmlExtensionEndObject::removeSubsettedProperty(QObject *subsettedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->removeSubsettedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(subsettedProperty));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExtensionEnd]
+
+void QUmlExtensionEndObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setLower(lower);
+}
+
+void QUmlExtensionEndObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionEnd *>(this)->setType(qmodelingobjectproperty_cast<QUmlStereotype *>(type));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlextensionendobject_p.h b/src/uml/qobjects/qumlextensionendobject_p.h
new file mode 100644
index 00000000..968a259b
--- /dev/null
+++ b/src/uml/qobjects/qumlextensionendobject_p.h
@@ -0,0 +1,323 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXTENSIONENDOBJECT_H
+#define QUMLEXTENSIONENDOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExtensionEnd;
+class Q_UML_EXPORT QUmlExtensionEndObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TypedElement]
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [Feature]
+ Q_PROPERTY(QSet<QObject *> featuringClassifier READ featuringClassifier)
+ Q_PROPERTY(bool isStatic READ isStatic)
+
+ // Properties [StructuralFeature]
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [ConnectableElement]
+ Q_PROPERTY(QList<QObject *> end READ end)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [Property]
+ Q_PROPERTY(QtUml::AggregationKind aggregation READ aggregation)
+ Q_PROPERTY(QObject * association READ association)
+ Q_PROPERTY(QObject * associationEnd READ associationEnd)
+ Q_PROPERTY(QObject * class_ READ class_)
+ Q_PROPERTY(QObject * datatype READ datatype)
+ Q_PROPERTY(QString default_ READ default_)
+ Q_PROPERTY(QObject * defaultValue READ defaultValue)
+ Q_PROPERTY(QObject * interface_ READ interface_)
+ Q_PROPERTY(bool isComposite READ isComposite)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(bool isDerivedUnion READ isDerivedUnion)
+ Q_PROPERTY(bool isID READ isID)
+ Q_PROPERTY(bool isReadOnly READ isReadOnly)
+ Q_PROPERTY(QObject * opposite READ opposite)
+ Q_PROPERTY(QObject * owningAssociation READ owningAssociation)
+ Q_PROPERTY(QList<QObject *> qualifier READ qualifier)
+ Q_PROPERTY(QSet<QObject *> redefinedProperty READ redefinedProperty)
+ Q_PROPERTY(QSet<QObject *> subsettedProperty READ subsettedProperty)
+
+ // Properties [ExtensionEnd]
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * type READ type)
+
+public:
+ Q_INVOKABLE explicit QUmlExtensionEndObject(QUmlExtensionEnd *qModelingObject);
+ virtual ~QUmlExtensionEndObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TypedElement]
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [Feature]
+ Q_INVOKABLE const QSet<QObject *> featuringClassifier() const;
+ Q_INVOKABLE bool isStatic() const;
+
+ // Owned attributes [StructuralFeature]
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [ConnectableElement]
+ Q_INVOKABLE const QList<QObject *> end() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [Property]
+ Q_INVOKABLE QtUml::AggregationKind aggregation() const;
+ Q_INVOKABLE QObject *association() const;
+ Q_INVOKABLE QObject *associationEnd() const;
+ Q_INVOKABLE QObject *class_() const;
+ Q_INVOKABLE QObject *datatype() const;
+ Q_INVOKABLE QString default_() const;
+ Q_INVOKABLE QObject *defaultValue() const;
+ Q_INVOKABLE QObject *interface_() const;
+ Q_INVOKABLE bool isComposite() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE bool isDerivedUnion() const;
+ Q_INVOKABLE bool isID() const;
+ Q_INVOKABLE bool isReadOnly() const;
+ Q_INVOKABLE QObject *opposite() const;
+ Q_INVOKABLE QObject *owningAssociation() const;
+ Q_INVOKABLE const QList<QObject *> qualifier() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedProperty() const;
+ Q_INVOKABLE const QSet<QObject *> subsettedProperty() const;
+
+ // Owned attributes [ExtensionEnd]
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *type() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Property]
+ Q_INVOKABLE bool isAttribute(QObject *p) const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isNavigable() const;
+ Q_INVOKABLE QSet<QObject *> subsettingContext() const;
+
+ // Operations [ExtensionEnd]
+ Q_INVOKABLE int lowerBound() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TypedElement]
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [Feature]
+ void Q_DECL_HIDDEN addFeaturingClassifier(QObject *featuringClassifier);
+ void Q_DECL_HIDDEN removeFeaturingClassifier(QObject *featuringClassifier);
+ void setStatic(bool isStatic);
+
+ // Slots for owned attributes [StructuralFeature]
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [ConnectableElement]
+ void Q_DECL_HIDDEN addEnd(QObject *end);
+ void Q_DECL_HIDDEN removeEnd(QObject *end);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [Property]
+ void setAggregation(QtUml::AggregationKind aggregation);
+ void setAssociation(QObject *association = 0);
+ void setAssociationEnd(QObject *associationEnd = 0);
+ void setClass(QObject *class_ = 0);
+ void setDatatype(QObject *datatype = 0);
+ void setDefault(QString default_);
+ void setDefaultValue(QObject *defaultValue = 0);
+ void setInterface(QObject *interface_ = 0);
+ void setComposite(bool isComposite);
+ void setDerived(bool isDerived);
+ void setDerivedUnion(bool isDerivedUnion);
+ void setID(bool isID);
+ void setReadOnly(bool isReadOnly);
+ void setOpposite(QObject *opposite = 0);
+ void setOwningAssociation(QObject *owningAssociation = 0);
+ void addQualifier(QObject *qualifier);
+ void removeQualifier(QObject *qualifier);
+ void addRedefinedProperty(QObject *redefinedProperty);
+ void removeRedefinedProperty(QObject *redefinedProperty);
+ void addSubsettedProperty(QObject *subsettedProperty);
+ void removeSubsettedProperty(QObject *subsettedProperty);
+
+ // Slots for owned attributes [ExtensionEnd]
+ void setLower(int lower);
+ void setType(QObject *type = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXTENSIONENDOBJECT_H
+
diff --git a/src/uml/qobjects/qumlextensionobject.cpp b/src/uml/qobjects/qumlextensionobject.cpp
new file mode 100644
index 00000000..54f9296f
--- /dev/null
+++ b/src/uml/qobjects/qumlextensionobject.cpp
@@ -0,0 +1,982 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlextensionobject_p.h"
+
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtensionEnd>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExtensionObject::QUmlExtensionObject(QUmlExtension *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExtensionObject::~QUmlExtensionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExtensionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExtensionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExtensionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExtensionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->name();
+}
+
+QObject *QUmlExtensionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExtensionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExtensionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlExtensionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlExtensionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlExtensionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlExtensionObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlExtensionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlExtensionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlExtensionObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlExtensionObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isAbstract();
+}
+
+bool QUmlExtensionObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlExtensionObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlExtensionObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExtensionObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlExtensionObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExtensionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlExtensionObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlExtensionObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Association]
+
+const QList<QObject *> QUmlExtensionObject::endType() const
+{
+ QList<QObject *> list;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->endType())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlExtensionObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isDerived();
+}
+
+const QList<QObject *> QUmlExtensionObject::memberEnd() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->memberEnd())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlExtensionObject::navigableOwnedEnd() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->navigableOwnedEnd())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [Extension]
+
+bool QUmlExtensionObject::isRequired() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isRequired();
+}
+
+QObject *QUmlExtensionObject::metaclass() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->metaclass()->asQObject();
+}
+
+QObject *QUmlExtensionObject::ownedEnd() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->ownedEnd()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExtensionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExtensionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExtensionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExtensionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlExtensionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlExtensionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlExtensionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlExtensionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlExtensionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlExtensionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlExtensionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlExtensionObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlExtensionObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExtensionObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlExtensionObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlExtensionObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExtensionObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->isTemplate();
+}
+
+bool QUmlExtensionObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlExtensionObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtension *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Extension]
+
+QObject *QUmlExtensionObject::metaclassEnd() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtension *>(this)->metaclassEnd()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExtensionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtensionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtensionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtensionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtensionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExtensionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtensionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtensionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setName(name);
+}
+
+void QUmlExtensionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExtensionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExtensionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlExtensionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlExtensionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlExtensionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlExtensionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlExtensionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlExtensionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlExtensionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlExtensionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlExtensionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlExtensionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlExtensionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlExtensionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlExtensionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlExtensionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlExtensionObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlExtensionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlExtensionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExtensionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExtensionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlExtensionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlExtensionObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlExtensionObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlExtensionObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlExtensionObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlExtensionObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlExtensionObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlExtensionObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlExtensionObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlExtensionObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlExtensionObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlExtensionObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlExtensionObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlExtensionObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlExtensionObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlExtensionObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlExtensionObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlExtensionObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlExtensionObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlExtensionObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlExtensionObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlExtensionObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlExtensionObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlExtensionObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlExtensionObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlExtensionObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlExtensionObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlExtensionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlExtensionObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlExtensionObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlExtensionObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlExtensionObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Association]
+
+void QUmlExtensionObject::addEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlExtensionObject::removeEndType(QObject *endType)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeEndType(qmodelingobjectproperty_cast<QUmlType *>(endType));
+}
+
+void QUmlExtensionObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setDerived(isDerived);
+}
+
+void QUmlExtensionObject::addMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlExtensionObject::removeMemberEnd(QObject *memberEnd)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeMemberEnd(qmodelingobjectproperty_cast<QUmlProperty *>(memberEnd));
+}
+
+void QUmlExtensionObject::addNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->addNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+
+void QUmlExtensionObject::removeNavigableOwnedEnd(QObject *navigableOwnedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->removeNavigableOwnedEnd(qmodelingobjectproperty_cast<QUmlProperty *>(navigableOwnedEnd));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Extension]
+
+void QUmlExtensionObject::setRequired(bool isRequired)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setRequired(isRequired);
+}
+
+void QUmlExtensionObject::setMetaclass(QObject *metaclass)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setMetaclass(qmodelingobjectproperty_cast<QUmlClass *>(metaclass));
+}
+
+void QUmlExtensionObject::setOwnedEnd(QObject *ownedEnd)
+{
+ qmodelingobjectproperty_cast<QUmlExtension *>(this)->setOwnedEnd(qmodelingobjectproperty_cast<QUmlExtensionEnd *>(ownedEnd));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlextensionobject_p.h b/src/uml/qobjects/qumlextensionobject_p.h
new file mode 100644
index 00000000..21ff8f45
--- /dev/null
+++ b/src/uml/qobjects/qumlextensionobject_p.h
@@ -0,0 +1,350 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXTENSIONOBJECT_H
+#define QUMLEXTENSIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExtension;
+class Q_UML_EXPORT QUmlExtensionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [Association]
+ Q_PROPERTY(QList<QObject *> endType READ endType)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(QList<QObject *> memberEnd READ memberEnd)
+ Q_PROPERTY(QSet<QObject *> navigableOwnedEnd READ navigableOwnedEnd)
+
+ // Properties [Extension]
+ Q_PROPERTY(bool isRequired READ isRequired)
+ Q_PROPERTY(QObject * metaclass READ metaclass)
+ Q_PROPERTY(QObject * ownedEnd READ ownedEnd)
+
+public:
+ Q_INVOKABLE explicit QUmlExtensionObject(QUmlExtension *qModelingObject);
+ virtual ~QUmlExtensionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [Association]
+ Q_INVOKABLE const QList<QObject *> endType() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE const QList<QObject *> memberEnd() const;
+ Q_INVOKABLE const QSet<QObject *> navigableOwnedEnd() const;
+
+ // Owned attributes [Extension]
+ Q_INVOKABLE bool isRequired() const;
+ Q_INVOKABLE QObject *metaclass() const;
+ Q_INVOKABLE QObject *ownedEnd() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Extension]
+ Q_INVOKABLE QObject *metaclassEnd() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [Association]
+ void Q_DECL_HIDDEN addEndType(QObject *endType);
+ void Q_DECL_HIDDEN removeEndType(QObject *endType);
+ void setDerived(bool isDerived);
+ void addMemberEnd(QObject *memberEnd);
+ void removeMemberEnd(QObject *memberEnd);
+ void addNavigableOwnedEnd(QObject *navigableOwnedEnd);
+ void removeNavigableOwnedEnd(QObject *navigableOwnedEnd);
+
+ // Slots for owned attributes [Extension]
+ void Q_DECL_HIDDEN setRequired(bool isRequired);
+ void Q_DECL_HIDDEN setMetaclass(QObject *metaclass = 0);
+ void setOwnedEnd(QObject *ownedEnd = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXTENSIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlextensionpointobject.cpp b/src/uml/qobjects/qumlextensionpointobject.cpp
new file mode 100644
index 00000000..be1407ab
--- /dev/null
+++ b/src/uml/qobjects/qumlextensionpointobject.cpp
@@ -0,0 +1,312 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlextensionpointobject_p.h"
+
+#include <QtUml/QUmlExtensionPoint>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlExtensionPointObject::QUmlExtensionPointObject(QUmlExtensionPoint *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlExtensionPointObject::~QUmlExtensionPointObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlExtensionPointObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionPointObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlExtensionPointObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlExtensionPointObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlExtensionPointObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->name();
+}
+
+QObject *QUmlExtensionPointObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlExtensionPointObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlExtensionPointObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlExtensionPointObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlExtensionPointObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlExtensionPointObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlExtensionPointObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExtensionPoint]
+
+QObject *QUmlExtensionPointObject::useCase() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->useCase()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlExtensionPointObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionPointObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlExtensionPointObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlExtensionPointObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlExtensionPointObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlExtensionPointObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlExtensionPointObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlExtensionPointObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlExtensionPointObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtensionPointObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlExtensionPointObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtensionPointObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlExtensionPointObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlExtensionPointObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtensionPointObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlExtensionPointObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setName(name);
+}
+
+void QUmlExtensionPointObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlExtensionPointObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlExtensionPointObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlExtensionPointObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlExtensionPointObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlExtensionPointObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExtensionPointObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlExtensionPointObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlExtensionPointObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExtensionPoint]
+
+void QUmlExtensionPointObject::setUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlExtensionPoint *>(this)->setUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlextensionpointobject_p.h b/src/uml/qobjects/qumlextensionpointobject_p.h
new file mode 100644
index 00000000..95b2e146
--- /dev/null
+++ b/src/uml/qobjects/qumlextensionpointobject_p.h
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLEXTENSIONPOINTOBJECT_H
+#define QUMLEXTENSIONPOINTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlExtensionPoint;
+class Q_UML_EXPORT QUmlExtensionPointObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ExtensionPoint]
+ Q_PROPERTY(QObject * useCase READ useCase)
+
+public:
+ Q_INVOKABLE explicit QUmlExtensionPointObject(QUmlExtensionPoint *qModelingObject);
+ virtual ~QUmlExtensionPointObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ExtensionPoint]
+ Q_INVOKABLE QObject *useCase() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ExtensionPoint]
+ void setUseCase(QObject *useCase = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLEXTENSIONPOINTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlfinalstateobject.cpp b/src/uml/qobjects/qumlfinalstateobject.cpp
new file mode 100644
index 00000000..a340fe8c
--- /dev/null
+++ b/src/uml/qobjects/qumlfinalstateobject.cpp
@@ -0,0 +1,678 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlfinalstateobject_p.h"
+
+#include <QtUml/QUmlFinalState>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectionPointReference>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlPseudostate>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTransition>
+#include <QtUml/QUmlTrigger>
+
+QT_BEGIN_NAMESPACE
+
+QUmlFinalStateObject::QUmlFinalStateObject(QUmlFinalState *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlFinalStateObject::~QUmlFinalStateObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlFinalStateObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFinalStateObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlFinalStateObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlFinalStateObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->name();
+}
+
+QObject *QUmlFinalStateObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlFinalStateObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlFinalStateObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlFinalStateObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlFinalStateObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlFinalStateObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlFinalStateObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [Vertex]
+
+QObject *QUmlFinalStateObject::container() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->container()->asQObject();
+}
+
+const QSet<QObject *> QUmlFinalStateObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [State]
+
+const QSet<QObject *> QUmlFinalStateObject::connection() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectionPointReference *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->connection())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::connectionPoint() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPseudostate *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->connectionPoint())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFinalStateObject::deferrableTrigger() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTrigger *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->deferrableTrigger())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFinalStateObject::doActivity() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->doActivity()->asQObject();
+}
+
+QObject *QUmlFinalStateObject::entry() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->entry()->asQObject();
+}
+
+QObject *QUmlFinalStateObject::exit() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->exit()->asQObject();
+}
+
+bool QUmlFinalStateObject::isComposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isComposite();
+}
+
+bool QUmlFinalStateObject::isOrthogonal() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isOrthogonal();
+}
+
+bool QUmlFinalStateObject::isSimple() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isSimple();
+}
+
+bool QUmlFinalStateObject::isSubmachineState() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isSubmachineState();
+}
+
+QObject *QUmlFinalStateObject::redefinedState() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->redefinedState()->asQObject();
+}
+
+QObject *QUmlFinalStateObject::redefinitionContext() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->redefinitionContext()->asQObject();
+}
+
+const QSet<QObject *> QUmlFinalStateObject::region() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRegion *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->region())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFinalStateObject::stateInvariant() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->stateInvariant()->asQObject();
+}
+
+QObject *QUmlFinalStateObject::submachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->submachine()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlFinalStateObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFinalStateObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlFinalStateObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlFinalStateObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFinalStateObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlFinalStateObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlFinalStateObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlFinalStateObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlFinalStateObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlFinalState *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFinalStateObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [RedefinableElement]
+// OPERATIONS [Vertex]
+// OPERATIONS [State]
+
+QObject *QUmlFinalStateObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->containingStateMachine()->asQObject();
+}
+
+bool QUmlFinalStateObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlFinalStateObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlFinalState *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlState *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlFinalStateObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlFinalStateObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlFinalStateObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlFinalStateObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlFinalStateObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlFinalStateObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlFinalStateObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlFinalStateObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setName(name);
+}
+
+void QUmlFinalStateObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlFinalStateObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlFinalStateObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlFinalStateObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlFinalStateObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlFinalStateObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlFinalStateObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlFinalStateObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlFinalStateObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlFinalStateObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlFinalStateObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlFinalStateObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlFinalStateObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlFinalStateObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlFinalStateObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlFinalStateObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlFinalStateObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlFinalStateObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlFinalStateObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Vertex]
+
+void QUmlFinalStateObject::setContainer(QObject *container)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setContainer(qmodelingobjectproperty_cast<QUmlRegion *>(container));
+}
+
+void QUmlFinalStateObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlFinalStateObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlFinalStateObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+void QUmlFinalStateObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [State]
+
+void QUmlFinalStateObject::addConnection(QObject *connection)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addConnection(qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(connection));
+}
+
+void QUmlFinalStateObject::removeConnection(QObject *connection)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeConnection(qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(connection));
+}
+
+void QUmlFinalStateObject::addConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlFinalStateObject::removeConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlFinalStateObject::addDeferrableTrigger(QObject *deferrableTrigger)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addDeferrableTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(deferrableTrigger));
+}
+
+void QUmlFinalStateObject::removeDeferrableTrigger(QObject *deferrableTrigger)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeDeferrableTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(deferrableTrigger));
+}
+
+void QUmlFinalStateObject::setDoActivity(QObject *doActivity)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setDoActivity(qmodelingobjectproperty_cast<QUmlBehavior *>(doActivity));
+}
+
+void QUmlFinalStateObject::setEntry(QObject *entry)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setEntry(qmodelingobjectproperty_cast<QUmlBehavior *>(entry));
+}
+
+void QUmlFinalStateObject::setExit(QObject *exit)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setExit(qmodelingobjectproperty_cast<QUmlBehavior *>(exit));
+}
+
+void QUmlFinalStateObject::setComposite(bool isComposite)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setComposite(isComposite);
+}
+
+void QUmlFinalStateObject::setOrthogonal(bool isOrthogonal)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setOrthogonal(isOrthogonal);
+}
+
+void QUmlFinalStateObject::setSimple(bool isSimple)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setSimple(isSimple);
+}
+
+void QUmlFinalStateObject::setSubmachineState(bool isSubmachineState)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setSubmachineState(isSubmachineState);
+}
+
+void QUmlFinalStateObject::setRedefinedState(QObject *redefinedState)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setRedefinedState(qmodelingobjectproperty_cast<QUmlState *>(redefinedState));
+}
+
+void QUmlFinalStateObject::setRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlFinalStateObject::addRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->addRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlFinalStateObject::removeRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->removeRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlFinalStateObject::setStateInvariant(QObject *stateInvariant)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setStateInvariant(qmodelingobjectproperty_cast<QUmlConstraint *>(stateInvariant));
+}
+
+void QUmlFinalStateObject::setSubmachine(QObject *submachine)
+{
+ qmodelingobjectproperty_cast<QUmlFinalState *>(this)->setSubmachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(submachine));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlfinalstateobject_p.h b/src/uml/qobjects/qumlfinalstateobject_p.h
new file mode 100644
index 00000000..8f895d3f
--- /dev/null
+++ b/src/uml/qobjects/qumlfinalstateobject_p.h
@@ -0,0 +1,255 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLFINALSTATEOBJECT_H
+#define QUMLFINALSTATEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlFinalState;
+class Q_UML_EXPORT QUmlFinalStateObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+
+ // Properties [Vertex]
+ Q_PROPERTY(QObject * container READ container)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+
+ // Properties [State]
+ Q_PROPERTY(QSet<QObject *> connection READ connection)
+ Q_PROPERTY(QSet<QObject *> connectionPoint READ connectionPoint)
+ Q_PROPERTY(QSet<QObject *> deferrableTrigger READ deferrableTrigger)
+ Q_PROPERTY(QObject * doActivity READ doActivity)
+ Q_PROPERTY(QObject * entry READ entry)
+ Q_PROPERTY(QObject * exit READ exit)
+ Q_PROPERTY(bool isComposite READ isComposite)
+ Q_PROPERTY(bool isOrthogonal READ isOrthogonal)
+ Q_PROPERTY(bool isSimple READ isSimple)
+ Q_PROPERTY(bool isSubmachineState READ isSubmachineState)
+ Q_PROPERTY(QObject * redefinedState READ redefinedState)
+ Q_PROPERTY(QObject * redefinitionContext READ redefinitionContext)
+ Q_PROPERTY(QSet<QObject *> region READ region)
+ Q_PROPERTY(QObject * stateInvariant READ stateInvariant)
+ Q_PROPERTY(QObject * submachine READ submachine)
+
+public:
+ Q_INVOKABLE explicit QUmlFinalStateObject(QUmlFinalState *qModelingObject);
+ virtual ~QUmlFinalStateObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+
+ // Owned attributes [Vertex]
+ Q_INVOKABLE QObject *container() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+
+ // Owned attributes [State]
+ Q_INVOKABLE const QSet<QObject *> connection() const;
+ Q_INVOKABLE const QSet<QObject *> connectionPoint() const;
+ Q_INVOKABLE const QSet<QObject *> deferrableTrigger() const;
+ Q_INVOKABLE QObject *doActivity() const;
+ Q_INVOKABLE QObject *entry() const;
+ Q_INVOKABLE QObject *exit() const;
+ Q_INVOKABLE bool isComposite() const;
+ Q_INVOKABLE bool isOrthogonal() const;
+ Q_INVOKABLE bool isSimple() const;
+ Q_INVOKABLE bool isSubmachineState() const;
+ Q_INVOKABLE QObject *redefinedState() const;
+ Q_INVOKABLE QObject *redefinitionContext() const;
+ Q_INVOKABLE const QSet<QObject *> region() const;
+ Q_INVOKABLE QObject *stateInvariant() const;
+ Q_INVOKABLE QObject *submachine() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [RedefinableElement]
+
+ // Operations [Vertex]
+
+ // Operations [State]
+ Q_INVOKABLE QObject *containingStateMachine() const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+
+ // Slots for owned attributes [Vertex]
+ void setContainer(QObject *container = 0);
+ void Q_DECL_HIDDEN addIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN removeIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN addOutgoing(QObject *outgoing);
+ void Q_DECL_HIDDEN removeOutgoing(QObject *outgoing);
+
+ // Slots for owned attributes [State]
+ void addConnection(QObject *connection);
+ void removeConnection(QObject *connection);
+ void addConnectionPoint(QObject *connectionPoint);
+ void removeConnectionPoint(QObject *connectionPoint);
+ void addDeferrableTrigger(QObject *deferrableTrigger);
+ void removeDeferrableTrigger(QObject *deferrableTrigger);
+ void setDoActivity(QObject *doActivity = 0);
+ void setEntry(QObject *entry = 0);
+ void setExit(QObject *exit = 0);
+ void Q_DECL_HIDDEN setComposite(bool isComposite);
+ void Q_DECL_HIDDEN setOrthogonal(bool isOrthogonal);
+ void Q_DECL_HIDDEN setSimple(bool isSimple);
+ void Q_DECL_HIDDEN setSubmachineState(bool isSubmachineState);
+ void setRedefinedState(QObject *redefinedState = 0);
+ void Q_DECL_HIDDEN setRedefinitionContext(QObject *redefinitionContext = 0);
+ void addRegion(QObject *region);
+ void removeRegion(QObject *region);
+ void setStateInvariant(QObject *stateInvariant = 0);
+ void setSubmachine(QObject *submachine = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLFINALSTATEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlflowfinalnodeobject.cpp b/src/uml/qobjects/qumlflowfinalnodeobject.cpp
new file mode 100644
index 00000000..4ff7426a
--- /dev/null
+++ b/src/uml/qobjects/qumlflowfinalnodeobject.cpp
@@ -0,0 +1,436 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlflowfinalnodeobject_p.h"
+
+#include <QtUml/QUmlFlowFinalNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlFlowFinalNodeObject::QUmlFlowFinalNodeObject(QUmlFlowFinalNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlFlowFinalNodeObject::~QUmlFlowFinalNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFlowFinalNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlFlowFinalNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->name();
+}
+
+QObject *QUmlFlowFinalNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlFlowFinalNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlFlowFinalNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlFlowFinalNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlFlowFinalNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlFlowFinalNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFlowFinalNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFlowFinalNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlFlowFinalNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFlowFinalNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlFlowFinalNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlFlowFinalNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFlowFinalNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlFlowFinalNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlFlowFinalNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlFlowFinalNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlFlowFinalNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlFlowFinalNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlFlowFinalNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlFlowFinalNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlFlowFinalNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlFlowFinalNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlFlowFinalNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlFlowFinalNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setName(name);
+}
+
+void QUmlFlowFinalNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlFlowFinalNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlFlowFinalNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlFlowFinalNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlFlowFinalNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlFlowFinalNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlFlowFinalNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlFlowFinalNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlFlowFinalNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlFlowFinalNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlFlowFinalNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlFlowFinalNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlFlowFinalNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlFlowFinalNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlFlowFinalNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlFlowFinalNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlFlowFinalNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlFlowFinalNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlFlowFinalNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlFlowFinalNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlFlowFinalNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlFlowFinalNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlFlowFinalNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlFlowFinalNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlflowfinalnodeobject_p.h b/src/uml/qobjects/qumlflowfinalnodeobject_p.h
new file mode 100644
index 00000000..29b43409
--- /dev/null
+++ b/src/uml/qobjects/qumlflowfinalnodeobject_p.h
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLFLOWFINALNODEOBJECT_H
+#define QUMLFLOWFINALNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlFlowFinalNode;
+class Q_UML_EXPORT QUmlFlowFinalNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlFlowFinalNodeObject(QUmlFlowFinalNode *qModelingObject);
+ virtual ~QUmlFlowFinalNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLFLOWFINALNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlforknodeobject.cpp b/src/uml/qobjects/qumlforknodeobject.cpp
new file mode 100644
index 00000000..5c7fb835
--- /dev/null
+++ b/src/uml/qobjects/qumlforknodeobject.cpp
@@ -0,0 +1,436 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlforknodeobject_p.h"
+
+#include <QtUml/QUmlForkNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlForkNodeObject::QUmlForkNodeObject(QUmlForkNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlForkNodeObject::~QUmlForkNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlForkNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlForkNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlForkNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlForkNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlForkNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->name();
+}
+
+QObject *QUmlForkNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlForkNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlForkNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlForkNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlForkNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlForkNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlForkNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlForkNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlForkNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlForkNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlForkNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlForkNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlForkNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlForkNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlForkNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlForkNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlForkNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlForkNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlForkNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlForkNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlForkNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlForkNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlForkNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlForkNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlForkNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlForkNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlForkNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlForkNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlForkNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlForkNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlForkNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlForkNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlForkNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setName(name);
+}
+
+void QUmlForkNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlForkNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlForkNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlForkNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlForkNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlForkNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlForkNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlForkNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlForkNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlForkNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlForkNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlForkNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlForkNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlForkNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlForkNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlForkNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlForkNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlForkNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlForkNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlForkNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlForkNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlForkNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlForkNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlForkNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlforknodeobject_p.h b/src/uml/qobjects/qumlforknodeobject_p.h
new file mode 100644
index 00000000..26bd102d
--- /dev/null
+++ b/src/uml/qobjects/qumlforknodeobject_p.h
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLFORKNODEOBJECT_H
+#define QUMLFORKNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlForkNode;
+class Q_UML_EXPORT QUmlForkNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlForkNodeObject(QUmlForkNode *qModelingObject);
+ virtual ~QUmlForkNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLFORKNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlfunctionbehaviorobject.cpp b/src/uml/qobjects/qumlfunctionbehaviorobject.cpp
new file mode 100644
index 00000000..35c46971
--- /dev/null
+++ b/src/uml/qobjects/qumlfunctionbehaviorobject.cpp
@@ -0,0 +1,1258 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlfunctionbehaviorobject_p.h"
+
+#include <QtUml/QUmlFunctionBehavior>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlFunctionBehaviorObject::QUmlFunctionBehaviorObject(QUmlFunctionBehavior *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlFunctionBehaviorObject::~QUmlFunctionBehaviorObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFunctionBehaviorObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlFunctionBehaviorObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->name();
+}
+
+QObject *QUmlFunctionBehaviorObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlFunctionBehaviorObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlFunctionBehaviorObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlFunctionBehaviorObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlFunctionBehaviorObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlFunctionBehaviorObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlFunctionBehaviorObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlFunctionBehaviorObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFunctionBehaviorObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFunctionBehaviorObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlFunctionBehaviorObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isAbstract();
+}
+
+bool QUmlFunctionBehaviorObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlFunctionBehaviorObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlFunctionBehaviorObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlFunctionBehaviorObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Behavior]
+
+QObject *QUmlFunctionBehaviorObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->context()->asQObject();
+}
+
+bool QUmlFunctionBehaviorObject::isReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isReentrant();
+}
+
+const QList<QObject *> QUmlFunctionBehaviorObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlFunctionBehaviorObject::redefinedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->redefinedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlFunctionBehaviorObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [OpaqueBehavior]
+
+const QList<QString> QUmlFunctionBehaviorObject::body() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->body();
+}
+
+const QList<QString> QUmlFunctionBehaviorObject::language() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->language();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlFunctionBehaviorObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlFunctionBehaviorObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlFunctionBehaviorObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlFunctionBehaviorObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlFunctionBehaviorObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlFunctionBehaviorObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlFunctionBehaviorObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlFunctionBehaviorObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlFunctionBehaviorObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlFunctionBehaviorObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlFunctionBehaviorObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlFunctionBehaviorObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlFunctionBehaviorObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlFunctionBehaviorObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlFunctionBehaviorObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlFunctionBehaviorObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlFunctionBehaviorObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->isTemplate();
+}
+
+bool QUmlFunctionBehaviorObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlFunctionBehaviorObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlFunctionBehaviorObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlFunctionBehaviorObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlFunctionBehaviorObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlFunctionBehaviorObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlFunctionBehaviorObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlFunctionBehaviorObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setName(name);
+}
+
+void QUmlFunctionBehaviorObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlFunctionBehaviorObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlFunctionBehaviorObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlFunctionBehaviorObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlFunctionBehaviorObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlFunctionBehaviorObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlFunctionBehaviorObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlFunctionBehaviorObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlFunctionBehaviorObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlFunctionBehaviorObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlFunctionBehaviorObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlFunctionBehaviorObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlFunctionBehaviorObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlFunctionBehaviorObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlFunctionBehaviorObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlFunctionBehaviorObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlFunctionBehaviorObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlFunctionBehaviorObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlFunctionBehaviorObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlFunctionBehaviorObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlFunctionBehaviorObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlFunctionBehaviorObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlFunctionBehaviorObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlFunctionBehaviorObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlFunctionBehaviorObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlFunctionBehaviorObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlFunctionBehaviorObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlFunctionBehaviorObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlFunctionBehaviorObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlFunctionBehaviorObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlFunctionBehaviorObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlFunctionBehaviorObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlFunctionBehaviorObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlFunctionBehaviorObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlFunctionBehaviorObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlFunctionBehaviorObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlFunctionBehaviorObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlFunctionBehaviorObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlFunctionBehaviorObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlFunctionBehaviorObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlFunctionBehaviorObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlFunctionBehaviorObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlFunctionBehaviorObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlFunctionBehaviorObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlFunctionBehaviorObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlFunctionBehaviorObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlFunctionBehaviorObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlFunctionBehaviorObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlFunctionBehaviorObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlFunctionBehaviorObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlFunctionBehaviorObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlFunctionBehaviorObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlFunctionBehaviorObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlFunctionBehaviorObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlFunctionBehaviorObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlFunctionBehaviorObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setActive(isActive);
+}
+
+void QUmlFunctionBehaviorObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlFunctionBehaviorObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlFunctionBehaviorObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlFunctionBehaviorObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Behavior]
+
+void QUmlFunctionBehaviorObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setContext(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(context));
+}
+
+void QUmlFunctionBehaviorObject::setReentrant(bool isReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setReentrant(isReentrant);
+}
+
+void QUmlFunctionBehaviorObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlFunctionBehaviorObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlFunctionBehaviorObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlFunctionBehaviorObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlFunctionBehaviorObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlFunctionBehaviorObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlFunctionBehaviorObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlFunctionBehaviorObject::addRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlFunctionBehaviorObject::removeRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlFunctionBehaviorObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlBehavioralFeature *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OpaqueBehavior]
+
+void QUmlFunctionBehaviorObject::addBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addBody(body);
+}
+
+void QUmlFunctionBehaviorObject::removeBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeBody(body);
+}
+
+void QUmlFunctionBehaviorObject::addLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->addLanguage(language);
+}
+
+void QUmlFunctionBehaviorObject::removeLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlFunctionBehavior *>(this)->removeLanguage(language);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlfunctionbehaviorobject_p.h b/src/uml/qobjects/qumlfunctionbehaviorobject_p.h
new file mode 100644
index 00000000..0bc9b4e0
--- /dev/null
+++ b/src/uml/qobjects/qumlfunctionbehaviorobject_p.h
@@ -0,0 +1,426 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLFUNCTIONBEHAVIOROBJECT_H
+#define QUMLFUNCTIONBEHAVIOROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlFunctionBehavior;
+class Q_UML_EXPORT QUmlFunctionBehaviorObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Behavior]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(bool isReentrant READ isReentrant)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QSet<QObject *> redefinedBehavior READ redefinedBehavior)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [OpaqueBehavior]
+ Q_PROPERTY(QList<QString> body READ body)
+ Q_PROPERTY(QList<QString> language READ language)
+
+public:
+ Q_INVOKABLE explicit QUmlFunctionBehaviorObject(QUmlFunctionBehavior *qModelingObject);
+ virtual ~QUmlFunctionBehaviorObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Behavior]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE bool isReentrant() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedBehavior() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [OpaqueBehavior]
+ Q_INVOKABLE const QList<QString> body() const;
+ Q_INVOKABLE const QList<QString> language() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Behavior]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void setReentrant(bool isReentrant);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void addRedefinedBehavior(QObject *redefinedBehavior);
+ void removeRedefinedBehavior(QObject *redefinedBehavior);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [OpaqueBehavior]
+ void addBody(QString body);
+ void removeBody(QString body);
+ void addLanguage(QString language);
+ void removeLanguage(QString language);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLFUNCTIONBEHAVIOROBJECT_H
+
diff --git a/src/uml/qobjects/qumlgateobject.cpp b/src/uml/qobjects/qumlgateobject.cpp
new file mode 100644
index 00000000..216ee7c8
--- /dev/null
+++ b/src/uml/qobjects/qumlgateobject.cpp
@@ -0,0 +1,248 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlgateobject_p.h"
+
+#include <QtUml/QUmlGate>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlMessage>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlGateObject::QUmlGateObject(QUmlGate *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlGateObject::~QUmlGateObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlGateObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlGate *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlGateObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGate *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlGateObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlGateObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlGate *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlGateObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->name();
+}
+
+QObject *QUmlGateObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlGateObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlGateObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlGateObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [MessageEnd]
+
+QObject *QUmlGateObject::message() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->message()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlGateObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGate *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGateObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlGateObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlGate *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlGateObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlGate *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGateObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlGateObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlGate *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlGateObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGateObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGateObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGateObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGateObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlGateObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlGateObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlGateObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setName(name);
+}
+
+void QUmlGateObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlGateObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlGateObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlGateObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
+
+void QUmlGateObject::setMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlGate *>(this)->setMessage(qmodelingobjectproperty_cast<QUmlMessage *>(message));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlgateobject_p.h b/src/uml/qobjects/qumlgateobject_p.h
new file mode 100644
index 00000000..37d4b72f
--- /dev/null
+++ b/src/uml/qobjects/qumlgateobject_p.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLGATEOBJECT_H
+#define QUMLGATEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlGate;
+class Q_UML_EXPORT QUmlGateObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [MessageEnd]
+ Q_PROPERTY(QObject * message READ message)
+
+public:
+ Q_INVOKABLE explicit QUmlGateObject(QUmlGate *qModelingObject);
+ virtual ~QUmlGateObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [MessageEnd]
+ Q_INVOKABLE QObject *message() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [MessageEnd]
+ void setMessage(QObject *message = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLGATEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlgeneralizationobject.cpp b/src/uml/qobjects/qumlgeneralizationobject.cpp
new file mode 100644
index 00000000..9a1ac615
--- /dev/null
+++ b/src/uml/qobjects/qumlgeneralizationobject.cpp
@@ -0,0 +1,244 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlgeneralizationobject_p.h"
+
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralizationSet>
+
+QT_BEGIN_NAMESPACE
+
+QUmlGeneralizationObject::QUmlGeneralizationObject(QUmlGeneralization *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlGeneralizationObject::~QUmlGeneralizationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlGeneralizationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlGeneralizationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlGeneralizationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlGeneralizationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlGeneralizationObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlGeneralizationObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Generalization]
+
+QObject *QUmlGeneralizationObject::general() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->general()->asQObject();
+}
+
+const QSet<QObject *> QUmlGeneralizationObject::generalizationSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->generalizationSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralizationObject::isSubstitutable() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->isSubstitutable();
+}
+
+QObject *QUmlGeneralizationObject::specific() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->specific()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlGeneralizationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralizationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlGeneralizationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGeneralizationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGeneralizationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGeneralizationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGeneralizationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlGeneralizationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlGeneralizationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlGeneralizationObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlGeneralizationObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlGeneralizationObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlGeneralizationObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Generalization]
+
+void QUmlGeneralizationObject::setGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->setGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlGeneralizationObject::addGeneralizationSet(QObject *generalizationSet)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->addGeneralizationSet(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(generalizationSet));
+}
+
+void QUmlGeneralizationObject::removeGeneralizationSet(QObject *generalizationSet)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->removeGeneralizationSet(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(generalizationSet));
+}
+
+void QUmlGeneralizationObject::setSubstitutable(bool isSubstitutable)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->setSubstitutable(isSubstitutable);
+}
+
+void QUmlGeneralizationObject::setSpecific(QObject *specific)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralization *>(this)->setSpecific(qmodelingobjectproperty_cast<QUmlClassifier *>(specific));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlgeneralizationobject_p.h b/src/uml/qobjects/qumlgeneralizationobject_p.h
new file mode 100644
index 00000000..a83ea372
--- /dev/null
+++ b/src/uml/qobjects/qumlgeneralizationobject_p.h
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLGENERALIZATIONOBJECT_H
+#define QUMLGENERALIZATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlGeneralization;
+class Q_UML_EXPORT QUmlGeneralizationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Generalization]
+ Q_PROPERTY(QObject * general READ general)
+ Q_PROPERTY(QSet<QObject *> generalizationSet READ generalizationSet)
+ Q_PROPERTY(bool isSubstitutable READ isSubstitutable)
+ Q_PROPERTY(QObject * specific READ specific)
+
+public:
+ Q_INVOKABLE explicit QUmlGeneralizationObject(QUmlGeneralization *qModelingObject);
+ virtual ~QUmlGeneralizationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Generalization]
+ Q_INVOKABLE QObject *general() const;
+ Q_INVOKABLE const QSet<QObject *> generalizationSet() const;
+ Q_INVOKABLE bool isSubstitutable() const;
+ Q_INVOKABLE QObject *specific() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Generalization]
+ void setGeneral(QObject *general = 0);
+ void addGeneralizationSet(QObject *generalizationSet);
+ void removeGeneralizationSet(QObject *generalizationSet);
+ void setSubstitutable(bool isSubstitutable);
+ void setSpecific(QObject *specific = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLGENERALIZATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlgeneralizationsetobject.cpp b/src/uml/qobjects/qumlgeneralizationsetobject.cpp
new file mode 100644
index 00000000..936740bb
--- /dev/null
+++ b/src/uml/qobjects/qumlgeneralizationsetobject.cpp
@@ -0,0 +1,327 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlgeneralizationsetobject_p.h"
+
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlGeneralizationSetObject::QUmlGeneralizationSetObject(QUmlGeneralizationSet *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlGeneralizationSetObject::~QUmlGeneralizationSetObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlGeneralizationSetObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlGeneralizationSetObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlGeneralizationSetObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlGeneralizationSetObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlGeneralizationSetObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlGeneralizationSetObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlGeneralizationSetObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->name();
+}
+
+QObject *QUmlGeneralizationSetObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlGeneralizationSetObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlGeneralizationSetObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlGeneralizationSetObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [GeneralizationSet]
+
+const QSet<QObject *> QUmlGeneralizationSetObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralizationSetObject::isCovering() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->isCovering();
+}
+
+bool QUmlGeneralizationSetObject::isDisjoint() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->isDisjoint();
+}
+
+QObject *QUmlGeneralizationSetObject::powertype() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->powertype()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlGeneralizationSetObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralizationSetObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlGeneralizationSetObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlGeneralizationSetObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlGeneralizationSetObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlGeneralizationSetObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralizationSetObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlGeneralizationSetObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlGeneralizationSetObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGeneralizationSetObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGeneralizationSetObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGeneralizationSetObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGeneralizationSetObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlGeneralizationSetObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlGeneralizationSetObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlGeneralizationSetObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlGeneralizationSetObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlGeneralizationSetObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setName(name);
+}
+
+void QUmlGeneralizationSetObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlGeneralizationSetObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlGeneralizationSetObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlGeneralizationSetObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [GeneralizationSet]
+
+void QUmlGeneralizationSetObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlGeneralizationSetObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlGeneralizationSetObject::setCovering(bool isCovering)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setCovering(isCovering);
+}
+
+void QUmlGeneralizationSetObject::setDisjoint(bool isDisjoint)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setDisjoint(isDisjoint);
+}
+
+void QUmlGeneralizationSetObject::setPowertype(QObject *powertype)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(this)->setPowertype(qmodelingobjectproperty_cast<QUmlClassifier *>(powertype));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlgeneralizationsetobject_p.h b/src/uml/qobjects/qumlgeneralizationsetobject_p.h
new file mode 100644
index 00000000..4bb96fd5
--- /dev/null
+++ b/src/uml/qobjects/qumlgeneralizationsetobject_p.h
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLGENERALIZATIONSETOBJECT_H
+#define QUMLGENERALIZATIONSETOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlGeneralizationSet;
+class Q_UML_EXPORT QUmlGeneralizationSetObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [GeneralizationSet]
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(bool isCovering READ isCovering)
+ Q_PROPERTY(bool isDisjoint READ isDisjoint)
+ Q_PROPERTY(QObject * powertype READ powertype)
+
+public:
+ Q_INVOKABLE explicit QUmlGeneralizationSetObject(QUmlGeneralizationSet *qModelingObject);
+ virtual ~QUmlGeneralizationSetObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [GeneralizationSet]
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE bool isCovering() const;
+ Q_INVOKABLE bool isDisjoint() const;
+ Q_INVOKABLE QObject *powertype() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [GeneralizationSet]
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void setCovering(bool isCovering);
+ void setDisjoint(bool isDisjoint);
+ void setPowertype(QObject *powertype = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLGENERALIZATIONSETOBJECT_H
+
diff --git a/src/uml/qobjects/qumlgeneralorderingobject.cpp b/src/uml/qobjects/qumlgeneralorderingobject.cpp
new file mode 100644
index 00000000..a769a42c
--- /dev/null
+++ b/src/uml/qobjects/qumlgeneralorderingobject.cpp
@@ -0,0 +1,258 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlgeneralorderingobject_p.h"
+
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOccurrenceSpecification>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlGeneralOrderingObject::QUmlGeneralOrderingObject(QUmlGeneralOrdering *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlGeneralOrderingObject::~QUmlGeneralOrderingObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlGeneralOrderingObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlGeneralOrderingObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlGeneralOrderingObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlGeneralOrderingObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlGeneralOrderingObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->name();
+}
+
+QObject *QUmlGeneralOrderingObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlGeneralOrderingObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlGeneralOrderingObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlGeneralOrderingObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [GeneralOrdering]
+
+QObject *QUmlGeneralOrderingObject::after() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->after()->asQObject();
+}
+
+QObject *QUmlGeneralOrderingObject::before() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->before()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlGeneralOrderingObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralOrderingObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlGeneralOrderingObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlGeneralOrderingObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlGeneralOrderingObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlGeneralOrderingObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlGeneralOrderingObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGeneralOrderingObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlGeneralOrderingObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGeneralOrderingObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlGeneralOrderingObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlGeneralOrderingObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlGeneralOrderingObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlGeneralOrderingObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setName(name);
+}
+
+void QUmlGeneralOrderingObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlGeneralOrderingObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlGeneralOrderingObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlGeneralOrderingObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [GeneralOrdering]
+
+void QUmlGeneralOrderingObject::setAfter(QObject *after)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setAfter(qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(after));
+}
+
+void QUmlGeneralOrderingObject::setBefore(QObject *before)
+{
+ qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(this)->setBefore(qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(before));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlgeneralorderingobject_p.h b/src/uml/qobjects/qumlgeneralorderingobject_p.h
new file mode 100644
index 00000000..7329abf3
--- /dev/null
+++ b/src/uml/qobjects/qumlgeneralorderingobject_p.h
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLGENERALORDERINGOBJECT_H
+#define QUMLGENERALORDERINGOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlGeneralOrdering;
+class Q_UML_EXPORT QUmlGeneralOrderingObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [GeneralOrdering]
+ Q_PROPERTY(QObject * after READ after)
+ Q_PROPERTY(QObject * before READ before)
+
+public:
+ Q_INVOKABLE explicit QUmlGeneralOrderingObject(QUmlGeneralOrdering *qModelingObject);
+ virtual ~QUmlGeneralOrderingObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [GeneralOrdering]
+ Q_INVOKABLE QObject *after() const;
+ Q_INVOKABLE QObject *before() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [GeneralOrdering]
+ void setAfter(QObject *after = 0);
+ void setBefore(QObject *before = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLGENERALORDERINGOBJECT_H
+
diff --git a/src/uml/qobjects/qumlimageobject.cpp b/src/uml/qobjects/qumlimageobject.cpp
new file mode 100644
index 00000000..231d053b
--- /dev/null
+++ b/src/uml/qobjects/qumlimageobject.cpp
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlimageobject_p.h"
+
+#include <QtUml/QUmlImage>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+
+QT_BEGIN_NAMESPACE
+
+QUmlImageObject::QUmlImageObject(QUmlImage *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlImageObject::~QUmlImageObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlImageObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlImage *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlImageObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlImage *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlImageObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlImage *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Image]
+
+QString QUmlImageObject::content() const
+{
+ return qmodelingobjectproperty_cast<QUmlImage *>(this)->content();
+}
+
+QString QUmlImageObject::format() const
+{
+ return qmodelingobjectproperty_cast<QUmlImage *>(this)->format();
+}
+
+QString QUmlImageObject::location() const
+{
+ return qmodelingobjectproperty_cast<QUmlImage *>(this)->location();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlImageObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlImage *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlImageObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlImage *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlImageObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlImageObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlImageObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlImageObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlImageObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Image]
+
+void QUmlImageObject::setContent(QString content)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->setContent(content);
+}
+
+void QUmlImageObject::setFormat(QString format)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->setFormat(format);
+}
+
+void QUmlImageObject::setLocation(QString location)
+{
+ qmodelingobjectproperty_cast<QUmlImage *>(this)->setLocation(location);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlimageobject_p.h b/src/uml/qobjects/qumlimageobject_p.h
new file mode 100644
index 00000000..0a1fae2a
--- /dev/null
+++ b/src/uml/qobjects/qumlimageobject_p.h
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLIMAGEOBJECT_H
+#define QUMLIMAGEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlImage;
+class Q_UML_EXPORT QUmlImageObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Image]
+ Q_PROPERTY(QString content READ content)
+ Q_PROPERTY(QString format READ format)
+ Q_PROPERTY(QString location READ location)
+
+public:
+ Q_INVOKABLE explicit QUmlImageObject(QUmlImage *qModelingObject);
+ virtual ~QUmlImageObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Image]
+ Q_INVOKABLE QString content() const;
+ Q_INVOKABLE QString format() const;
+ Q_INVOKABLE QString location() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Image]
+ void setContent(QString content);
+ void setFormat(QString format);
+ void setLocation(QString location);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLIMAGEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlincludeobject.cpp b/src/uml/qobjects/qumlincludeobject.cpp
new file mode 100644
index 00000000..fe683f52
--- /dev/null
+++ b/src/uml/qobjects/qumlincludeobject.cpp
@@ -0,0 +1,320 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlincludeobject_p.h"
+
+#include <QtUml/QUmlInclude>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlIncludeObject::QUmlIncludeObject(QUmlInclude *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlIncludeObject::~QUmlIncludeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlIncludeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlIncludeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlIncludeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlIncludeObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlIncludeObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlIncludeObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlIncludeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlIncludeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->name();
+}
+
+QObject *QUmlIncludeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlIncludeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlIncludeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlIncludeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Include]
+
+QObject *QUmlIncludeObject::addition() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->addition()->asQObject();
+}
+
+QObject *QUmlIncludeObject::includingCase() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->includingCase()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlIncludeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlIncludeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlIncludeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlIncludeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInclude *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlIncludeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlIncludeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInclude *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlIncludeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlIncludeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlIncludeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlIncludeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlIncludeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlIncludeObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlIncludeObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlIncludeObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlIncludeObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlIncludeObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlIncludeObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlIncludeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlIncludeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlIncludeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setName(name);
+}
+
+void QUmlIncludeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlIncludeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlIncludeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlIncludeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Include]
+
+void QUmlIncludeObject::setAddition(QObject *addition)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setAddition(qmodelingobjectproperty_cast<QUmlUseCase *>(addition));
+}
+
+void QUmlIncludeObject::setIncludingCase(QObject *includingCase)
+{
+ qmodelingobjectproperty_cast<QUmlInclude *>(this)->setIncludingCase(qmodelingobjectproperty_cast<QUmlUseCase *>(includingCase));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlincludeobject_p.h b/src/uml/qobjects/qumlincludeobject_p.h
new file mode 100644
index 00000000..c24b42c6
--- /dev/null
+++ b/src/uml/qobjects/qumlincludeobject_p.h
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINCLUDEOBJECT_H
+#define QUMLINCLUDEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInclude;
+class Q_UML_EXPORT QUmlIncludeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Include]
+ Q_PROPERTY(QObject * addition READ addition)
+ Q_PROPERTY(QObject * includingCase READ includingCase)
+
+public:
+ Q_INVOKABLE explicit QUmlIncludeObject(QUmlInclude *qModelingObject);
+ virtual ~QUmlIncludeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Include]
+ Q_INVOKABLE QObject *addition() const;
+ Q_INVOKABLE QObject *includingCase() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Include]
+ void setAddition(QObject *addition = 0);
+ void setIncludingCase(QObject *includingCase = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINCLUDEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinformationflowobject.cpp b/src/uml/qobjects/qumlinformationflowobject.cpp
new file mode 100644
index 00000000..5dd0d5ce
--- /dev/null
+++ b/src/uml/qobjects/qumlinformationflowobject.cpp
@@ -0,0 +1,470 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinformationflowobject_p.h"
+
+#include <QtUml/QUmlInformationFlow>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlMessage>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlRelationship>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInformationFlowObject::QUmlInformationFlowObject(QUmlInformationFlow *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInformationFlowObject::~QUmlInformationFlowObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInformationFlowObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInformationFlowObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlInformationFlowObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlInformationFlowObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInformationFlowObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlInformationFlowObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInformationFlowObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInformationFlowObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->name();
+}
+
+QObject *QUmlInformationFlowObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInformationFlowObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInformationFlowObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInformationFlowObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InformationFlow]
+
+const QSet<QObject *> QUmlInformationFlowObject::conveyed() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->conveyed())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::informationSource() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->informationSource())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::informationTarget() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->informationTarget())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::realization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRelationship *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->realization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::realizingActivityEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->realizingActivityEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::realizingConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->realizingConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationFlowObject::realizingMessage() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlMessage *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->realizingMessage())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInformationFlowObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationFlowObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInformationFlowObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInformationFlowObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInformationFlowObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInformationFlowObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationFlowObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInformationFlowObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInformationFlowObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInformationFlowObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInformationFlowObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInformationFlowObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInformationFlowObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlInformationFlowObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlInformationFlowObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlInformationFlowObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlInformationFlowObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlInformationFlowObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlInformationFlowObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInformationFlowObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlInformationFlowObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInformationFlowObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInformationFlowObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInformationFlowObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setName(name);
+}
+
+void QUmlInformationFlowObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInformationFlowObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInformationFlowObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInformationFlowObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InformationFlow]
+
+void QUmlInformationFlowObject::addConveyed(QObject *conveyed)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addConveyed(qmodelingobjectproperty_cast<QUmlClassifier *>(conveyed));
+}
+
+void QUmlInformationFlowObject::removeConveyed(QObject *conveyed)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeConveyed(qmodelingobjectproperty_cast<QUmlClassifier *>(conveyed));
+}
+
+void QUmlInformationFlowObject::addInformationSource(QObject *informationSource)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addInformationSource(qmodelingobjectproperty_cast<QUmlNamedElement *>(informationSource));
+}
+
+void QUmlInformationFlowObject::removeInformationSource(QObject *informationSource)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeInformationSource(qmodelingobjectproperty_cast<QUmlNamedElement *>(informationSource));
+}
+
+void QUmlInformationFlowObject::addInformationTarget(QObject *informationTarget)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addInformationTarget(qmodelingobjectproperty_cast<QUmlNamedElement *>(informationTarget));
+}
+
+void QUmlInformationFlowObject::removeInformationTarget(QObject *informationTarget)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeInformationTarget(qmodelingobjectproperty_cast<QUmlNamedElement *>(informationTarget));
+}
+
+void QUmlInformationFlowObject::addRealization(QObject *realization)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addRealization(qmodelingobjectproperty_cast<QUmlRelationship *>(realization));
+}
+
+void QUmlInformationFlowObject::removeRealization(QObject *realization)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeRealization(qmodelingobjectproperty_cast<QUmlRelationship *>(realization));
+}
+
+void QUmlInformationFlowObject::addRealizingActivityEdge(QObject *realizingActivityEdge)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addRealizingActivityEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(realizingActivityEdge));
+}
+
+void QUmlInformationFlowObject::removeRealizingActivityEdge(QObject *realizingActivityEdge)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeRealizingActivityEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(realizingActivityEdge));
+}
+
+void QUmlInformationFlowObject::addRealizingConnector(QObject *realizingConnector)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addRealizingConnector(qmodelingobjectproperty_cast<QUmlConnector *>(realizingConnector));
+}
+
+void QUmlInformationFlowObject::removeRealizingConnector(QObject *realizingConnector)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeRealizingConnector(qmodelingobjectproperty_cast<QUmlConnector *>(realizingConnector));
+}
+
+void QUmlInformationFlowObject::addRealizingMessage(QObject *realizingMessage)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->addRealizingMessage(qmodelingobjectproperty_cast<QUmlMessage *>(realizingMessage));
+}
+
+void QUmlInformationFlowObject::removeRealizingMessage(QObject *realizingMessage)
+{
+ qmodelingobjectproperty_cast<QUmlInformationFlow *>(this)->removeRealizingMessage(qmodelingobjectproperty_cast<QUmlMessage *>(realizingMessage));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinformationflowobject_p.h b/src/uml/qobjects/qumlinformationflowobject_p.h
new file mode 100644
index 00000000..cb38164c
--- /dev/null
+++ b/src/uml/qobjects/qumlinformationflowobject_p.h
@@ -0,0 +1,205 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINFORMATIONFLOWOBJECT_H
+#define QUMLINFORMATIONFLOWOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInformationFlow;
+class Q_UML_EXPORT QUmlInformationFlowObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InformationFlow]
+ Q_PROPERTY(QSet<QObject *> conveyed READ conveyed)
+ Q_PROPERTY(QSet<QObject *> informationSource READ informationSource)
+ Q_PROPERTY(QSet<QObject *> informationTarget READ informationTarget)
+ Q_PROPERTY(QSet<QObject *> realization READ realization)
+ Q_PROPERTY(QSet<QObject *> realizingActivityEdge READ realizingActivityEdge)
+ Q_PROPERTY(QSet<QObject *> realizingConnector READ realizingConnector)
+ Q_PROPERTY(QSet<QObject *> realizingMessage READ realizingMessage)
+
+public:
+ Q_INVOKABLE explicit QUmlInformationFlowObject(QUmlInformationFlow *qModelingObject);
+ virtual ~QUmlInformationFlowObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InformationFlow]
+ Q_INVOKABLE const QSet<QObject *> conveyed() const;
+ Q_INVOKABLE const QSet<QObject *> informationSource() const;
+ Q_INVOKABLE const QSet<QObject *> informationTarget() const;
+ Q_INVOKABLE const QSet<QObject *> realization() const;
+ Q_INVOKABLE const QSet<QObject *> realizingActivityEdge() const;
+ Q_INVOKABLE const QSet<QObject *> realizingConnector() const;
+ Q_INVOKABLE const QSet<QObject *> realizingMessage() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InformationFlow]
+ void addConveyed(QObject *conveyed);
+ void removeConveyed(QObject *conveyed);
+ void addInformationSource(QObject *informationSource);
+ void removeInformationSource(QObject *informationSource);
+ void addInformationTarget(QObject *informationTarget);
+ void removeInformationTarget(QObject *informationTarget);
+ void addRealization(QObject *realization);
+ void removeRealization(QObject *realization);
+ void addRealizingActivityEdge(QObject *realizingActivityEdge);
+ void removeRealizingActivityEdge(QObject *realizingActivityEdge);
+ void addRealizingConnector(QObject *realizingConnector);
+ void removeRealizingConnector(QObject *realizingConnector);
+ void addRealizingMessage(QObject *realizingMessage);
+ void removeRealizingMessage(QObject *realizingMessage);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINFORMATIONFLOWOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinformationitemobject.cpp b/src/uml/qobjects/qumlinformationitemobject.cpp
new file mode 100644
index 00000000..92635eec
--- /dev/null
+++ b/src/uml/qobjects/qumlinformationitemobject.cpp
@@ -0,0 +1,873 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinformationitemobject_p.h"
+
+#include <QtUml/QUmlInformationItem>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInformationItemObject::QUmlInformationItemObject(QUmlInformationItem *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInformationItemObject::~QUmlInformationItemObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInformationItemObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInformationItemObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInformationItemObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInformationItemObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->name();
+}
+
+QObject *QUmlInformationItemObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInformationItemObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInformationItemObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlInformationItemObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInformationItemObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInformationItemObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlInformationItemObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlInformationItemObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlInformationItemObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlInformationItemObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlInformationItemObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationItemObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isAbstract();
+}
+
+bool QUmlInformationItemObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlInformationItemObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlInformationItemObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInformationItemObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInformationItemObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlInformationItemObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInformationItemObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlInformationItemObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [InformationItem]
+
+const QSet<QObject *> QUmlInformationItemObject::represented() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->represented())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInformationItemObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationItemObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInformationItemObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInformationItemObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationItemObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInformationItemObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlInformationItemObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlInformationItemObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlInformationItemObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationItemObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInformationItemObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInformationItemObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlInformationItemObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlInformationItemObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlInformationItemObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlInformationItemObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInformationItemObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationItemObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlInformationItemObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlInformationItemObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInformationItemObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInformationItemObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->isTemplate();
+}
+
+bool QUmlInformationItemObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlInformationItemObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInformationItemObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInformationItemObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInformationItemObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInformationItemObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInformationItemObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInformationItemObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInformationItemObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInformationItemObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setName(name);
+}
+
+void QUmlInformationItemObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInformationItemObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInformationItemObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlInformationItemObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInformationItemObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInformationItemObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInformationItemObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInformationItemObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInformationItemObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInformationItemObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInformationItemObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInformationItemObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInformationItemObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInformationItemObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlInformationItemObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInformationItemObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInformationItemObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlInformationItemObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlInformationItemObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlInformationItemObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInformationItemObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInformationItemObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlInformationItemObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlInformationItemObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlInformationItemObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlInformationItemObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlInformationItemObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlInformationItemObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlInformationItemObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlInformationItemObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlInformationItemObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlInformationItemObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlInformationItemObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlInformationItemObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlInformationItemObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlInformationItemObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlInformationItemObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlInformationItemObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlInformationItemObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlInformationItemObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlInformationItemObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlInformationItemObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlInformationItemObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlInformationItemObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlInformationItemObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlInformationItemObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlInformationItemObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlInformationItemObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlInformationItemObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlInformationItemObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlInformationItemObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlInformationItemObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InformationItem]
+
+void QUmlInformationItemObject::addRepresented(QObject *represented)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->addRepresented(qmodelingobjectproperty_cast<QUmlClassifier *>(represented));
+}
+
+void QUmlInformationItemObject::removeRepresented(QObject *represented)
+{
+ qmodelingobjectproperty_cast<QUmlInformationItem *>(this)->removeRepresented(qmodelingobjectproperty_cast<QUmlClassifier *>(represented));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinformationitemobject_p.h b/src/uml/qobjects/qumlinformationitemobject_p.h
new file mode 100644
index 00000000..2fc56562
--- /dev/null
+++ b/src/uml/qobjects/qumlinformationitemobject_p.h
@@ -0,0 +1,311 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINFORMATIONITEMOBJECT_H
+#define QUMLINFORMATIONITEMOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInformationItem;
+class Q_UML_EXPORT QUmlInformationItemObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [InformationItem]
+ Q_PROPERTY(QSet<QObject *> represented READ represented)
+
+public:
+ Q_INVOKABLE explicit QUmlInformationItemObject(QUmlInformationItem *qModelingObject);
+ virtual ~QUmlInformationItemObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [InformationItem]
+ Q_INVOKABLE const QSet<QObject *> represented() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [InformationItem]
+ void addRepresented(QObject *represented);
+ void removeRepresented(QObject *represented);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINFORMATIONITEMOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinitialnodeobject.cpp b/src/uml/qobjects/qumlinitialnodeobject.cpp
new file mode 100644
index 00000000..0127ea65
--- /dev/null
+++ b/src/uml/qobjects/qumlinitialnodeobject.cpp
@@ -0,0 +1,436 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinitialnodeobject_p.h"
+
+#include <QtUml/QUmlInitialNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInitialNodeObject::QUmlInitialNodeObject(QUmlInitialNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInitialNodeObject::~QUmlInitialNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInitialNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInitialNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInitialNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInitialNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->name();
+}
+
+QObject *QUmlInitialNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInitialNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInitialNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlInitialNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlInitialNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlInitialNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInitialNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInitialNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInitialNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInitialNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInitialNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInitialNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInitialNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInitialNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlInitialNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlInitialNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInitialNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInitialNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInitialNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInitialNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInitialNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInitialNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInitialNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInitialNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setName(name);
+}
+
+void QUmlInitialNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInitialNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInitialNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlInitialNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlInitialNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlInitialNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInitialNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInitialNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlInitialNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlInitialNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlInitialNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlInitialNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlInitialNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlInitialNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlInitialNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlInitialNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlInitialNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlInitialNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlInitialNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlInitialNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlInitialNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlInitialNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlInitialNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlInitialNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinitialnodeobject_p.h b/src/uml/qobjects/qumlinitialnodeobject_p.h
new file mode 100644
index 00000000..5e75188e
--- /dev/null
+++ b/src/uml/qobjects/qumlinitialnodeobject_p.h
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINITIALNODEOBJECT_H
+#define QUMLINITIALNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInitialNode;
+class Q_UML_EXPORT QUmlInitialNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlInitialNodeObject(QUmlInitialNode *qModelingObject);
+ virtual ~QUmlInitialNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINITIALNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinputpinobject.cpp b/src/uml/qobjects/qumlinputpinobject.cpp
new file mode 100644
index 00000000..0edace4b
--- /dev/null
+++ b/src/uml/qobjects/qumlinputpinobject.cpp
@@ -0,0 +1,632 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinputpinobject_p.h"
+
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInputPinObject::QUmlInputPinObject(QUmlInputPin *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInputPinObject::~QUmlInputPinObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInputPinObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInputPinObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInputPinObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlInputPinObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isOrdered();
+}
+
+bool QUmlInputPinObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isUnique();
+}
+
+int QUmlInputPinObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->lower();
+}
+
+QObject *QUmlInputPinObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlInputPinObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->upper();
+}
+
+QObject *QUmlInputPinObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInputPinObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInputPinObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->name();
+}
+
+QObject *QUmlInputPinObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInputPinObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInputPinObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlInputPinObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlInputPinObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlInputPinObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInputPinObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlInputPinObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlInputPinObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInputPinObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInputPinObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInputPinObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlInputPinObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInputPinObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInputPinObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlInputPinObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlInputPinObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInputPinObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlInputPinObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->ordering();
+}
+
+QObject *QUmlInputPinObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlInputPinObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->upperBound()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Pin]
+
+bool QUmlInputPinObject::isControl() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isControl();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInputPinObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInputPinObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlInputPinObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlInputPinObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->includesCardinality(C);
+}
+
+bool QUmlInputPinObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlInputPinObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlInputPinObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isMultivalued();
+}
+
+int QUmlInputPinObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->lowerBound();
+}
+
+//int QUmlInputPinObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->upperBound();
+//}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInputPinObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInputPinObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInputPin *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInputPinObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInputPinObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlInputPinObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlInputPinObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlInputPin *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInputPinObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInputPinObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInputPinObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInputPinObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInputPinObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlInputPinObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlInputPinObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setUnique(isUnique);
+}
+
+void QUmlInputPinObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setLower(lower);
+}
+
+void QUmlInputPinObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlInputPinObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setUpper(upper);
+}
+
+void QUmlInputPinObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInputPinObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInputPinObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInputPinObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setName(name);
+}
+
+void QUmlInputPinObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInputPinObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInputPinObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlInputPinObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlInputPinObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlInputPinObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInputPinObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInputPinObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlInputPinObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlInputPinObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlInputPinObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlInputPinObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlInputPinObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlInputPinObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlInputPinObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlInputPinObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlInputPinObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlInputPinObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlInputPinObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlInputPinObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlInputPinObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlInputPinObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlInputPinObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlInputPinObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlInputPinObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlInputPinObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlInputPinObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setControlType(isControlType);
+}
+
+void QUmlInputPinObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setOrdering(ordering);
+}
+
+void QUmlInputPinObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlInputPinObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Pin]
+
+void QUmlInputPinObject::setControl(bool isControl)
+{
+ qmodelingobjectproperty_cast<QUmlInputPin *>(this)->setControl(isControl);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinputpinobject_p.h b/src/uml/qobjects/qumlinputpinobject_p.h
new file mode 100644
index 00000000..6a21112f
--- /dev/null
+++ b/src/uml/qobjects/qumlinputpinobject_p.h
@@ -0,0 +1,255 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINPUTPINOBJECT_H
+#define QUMLINPUTPINOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInputPin;
+class Q_UML_EXPORT QUmlInputPinObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+ // Properties [Pin]
+ Q_PROPERTY(bool isControl READ isControl)
+
+public:
+ Q_INVOKABLE explicit QUmlInputPinObject(QUmlInputPin *qModelingObject);
+ virtual ~QUmlInputPinObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Owned attributes [Pin]
+ Q_INVOKABLE bool isControl() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+
+ // Slots for owned attributes [Pin]
+ void setControl(bool isControl);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINPUTPINOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinstancespecificationobject.cpp b/src/uml/qobjects/qumlinstancespecificationobject.cpp
new file mode 100644
index 00000000..3da04e29
--- /dev/null
+++ b/src/uml/qobjects/qumlinstancespecificationobject.cpp
@@ -0,0 +1,368 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinstancespecificationobject_p.h"
+
+#include <QtUml/QUmlInstanceSpecification>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlSlot>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInstanceSpecificationObject::QUmlInstanceSpecificationObject(QUmlInstanceSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInstanceSpecificationObject::~QUmlInstanceSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInstanceSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInstanceSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->name();
+}
+
+QObject *QUmlInstanceSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInstanceSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInstanceSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInstanceSpecificationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlInstanceSpecificationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInstanceSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [InstanceSpecification]
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::classifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->classifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInstanceSpecificationObject::slot_() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSlot *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->slot_())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInstanceSpecificationObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->specification()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInstanceSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInstanceSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInstanceSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInstanceSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInstanceSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInstanceSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInstanceSpecificationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInstanceSpecificationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->isTemplateParameter();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInstanceSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInstanceSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInstanceSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInstanceSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInstanceSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInstanceSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInstanceSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInstanceSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setName(name);
+}
+
+void QUmlInstanceSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInstanceSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInstanceSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInstanceSpecificationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlInstanceSpecificationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInstanceSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlInstanceSpecificationObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlInstanceSpecificationObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlInstanceSpecificationObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlInstanceSpecificationObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InstanceSpecification]
+
+void QUmlInstanceSpecificationObject::addClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier));
+}
+
+void QUmlInstanceSpecificationObject::removeClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier));
+}
+
+void QUmlInstanceSpecificationObject::addSlot(QObject *slot_)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->addSlot(qmodelingobjectproperty_cast<QUmlSlot *>(slot_));
+}
+
+void QUmlInstanceSpecificationObject::removeSlot(QObject *slot_)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->removeSlot(qmodelingobjectproperty_cast<QUmlSlot *>(slot_));
+}
+
+void QUmlInstanceSpecificationObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlValueSpecification *>(specification));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinstancespecificationobject_p.h b/src/uml/qobjects/qumlinstancespecificationobject_p.h
new file mode 100644
index 00000000..9e955f50
--- /dev/null
+++ b/src/uml/qobjects/qumlinstancespecificationobject_p.h
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINSTANCESPECIFICATIONOBJECT_H
+#define QUMLINSTANCESPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInstanceSpecification;
+class Q_UML_EXPORT QUmlInstanceSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [InstanceSpecification]
+ Q_PROPERTY(QSet<QObject *> classifier READ classifier)
+ Q_PROPERTY(QSet<QObject *> slot_ READ slot_)
+ Q_PROPERTY(QObject * specification READ specification)
+
+public:
+ Q_INVOKABLE explicit QUmlInstanceSpecificationObject(QUmlInstanceSpecification *qModelingObject);
+ virtual ~QUmlInstanceSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [InstanceSpecification]
+ Q_INVOKABLE const QSet<QObject *> classifier() const;
+ Q_INVOKABLE const QSet<QObject *> slot_() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [InstanceSpecification]
+ void addClassifier(QObject *classifier);
+ void removeClassifier(QObject *classifier);
+ void addSlot(QObject *slot_);
+ void removeSlot(QObject *slot_);
+ void setSpecification(QObject *specification = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINSTANCESPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinstancevalueobject.cpp b/src/uml/qobjects/qumlinstancevalueobject.cpp
new file mode 100644
index 00000000..4a960bea
--- /dev/null
+++ b/src/uml/qobjects/qumlinstancevalueobject.cpp
@@ -0,0 +1,340 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinstancevalueobject_p.h"
+
+#include <QtUml/QUmlInstanceValue>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInstanceSpecification>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInstanceValueObject::QUmlInstanceValueObject(QUmlInstanceValue *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInstanceValueObject::~QUmlInstanceValueObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInstanceValueObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInstanceValueObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInstanceValueObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInstanceValueObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInstanceValueObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->name();
+}
+
+QObject *QUmlInstanceValueObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInstanceValueObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInstanceValueObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlInstanceValueObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInstanceValueObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlInstanceValueObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInstanceValueObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InstanceValue]
+
+QObject *QUmlInstanceValueObject::instance() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->instance()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInstanceValueObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInstanceValueObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInstanceValueObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInstanceValueObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInstanceValueObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInstanceValueObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInstanceValueObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlInstanceValueObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->booleanValue();
+}
+
+int QUmlInstanceValueObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->integerValue();
+}
+
+bool QUmlInstanceValueObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInstanceValueObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->isComputable();
+}
+
+bool QUmlInstanceValueObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->isNull();
+}
+
+double QUmlInstanceValueObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->realValue();
+}
+
+QString QUmlInstanceValueObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->stringValue();
+}
+
+int QUmlInstanceValueObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInstanceValueObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInstanceValueObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInstanceValueObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInstanceValueObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInstanceValueObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInstanceValueObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInstanceValueObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInstanceValueObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setName(name);
+}
+
+void QUmlInstanceValueObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInstanceValueObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInstanceValueObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlInstanceValueObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInstanceValueObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlInstanceValueObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInstanceValueObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InstanceValue]
+
+void QUmlInstanceValueObject::setInstance(QObject *instance)
+{
+ qmodelingobjectproperty_cast<QUmlInstanceValue *>(this)->setInstance(qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(instance));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinstancevalueobject_p.h b/src/uml/qobjects/qumlinstancevalueobject_p.h
new file mode 100644
index 00000000..b24f1cd7
--- /dev/null
+++ b/src/uml/qobjects/qumlinstancevalueobject_p.h
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINSTANCEVALUEOBJECT_H
+#define QUMLINSTANCEVALUEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInstanceValue;
+class Q_UML_EXPORT QUmlInstanceValueObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InstanceValue]
+ Q_PROPERTY(QObject * instance READ instance)
+
+public:
+ Q_INVOKABLE explicit QUmlInstanceValueObject(QUmlInstanceValue *qModelingObject);
+ virtual ~QUmlInstanceValueObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InstanceValue]
+ Q_INVOKABLE QObject *instance() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InstanceValue]
+ void setInstance(QObject *instance = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINSTANCEVALUEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinteractionconstraintobject.cpp b/src/uml/qobjects/qumlinteractionconstraintobject.cpp
new file mode 100644
index 00000000..969c82c1
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionconstraintobject.cpp
@@ -0,0 +1,340 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinteractionconstraintobject_p.h"
+
+#include <QtUml/QUmlInteractionConstraint>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInteractionConstraintObject::QUmlInteractionConstraintObject(QUmlInteractionConstraint *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInteractionConstraintObject::~QUmlInteractionConstraintObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInteractionConstraintObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionConstraintObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionConstraintObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInteractionConstraintObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlInteractionConstraintObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInteractionConstraintObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInteractionConstraintObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->name();
+}
+
+QObject *QUmlInteractionConstraintObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInteractionConstraintObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInteractionConstraintObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInteractionConstraintObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Constraint]
+
+const QList<QObject *> QUmlInteractionConstraintObject::constrainedElement() const
+{
+ QList<QObject *> list;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->constrainedElement())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlInteractionConstraintObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->context()->asQObject();
+}
+
+QObject *QUmlInteractionConstraintObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [InteractionConstraint]
+
+QObject *QUmlInteractionConstraintObject::maxint() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->maxint()->asQObject();
+}
+
+QObject *QUmlInteractionConstraintObject::minint() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->minint()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInteractionConstraintObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionConstraintObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInteractionConstraintObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInteractionConstraintObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInteractionConstraintObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInteractionConstraintObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionConstraintObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInteractionConstraintObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInteractionConstraintObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionConstraintObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionConstraintObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionConstraintObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionConstraintObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInteractionConstraintObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlInteractionConstraintObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInteractionConstraintObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionConstraintObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionConstraintObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setName(name);
+}
+
+void QUmlInteractionConstraintObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInteractionConstraintObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInteractionConstraintObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInteractionConstraintObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Constraint]
+
+void QUmlInteractionConstraintObject::addConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->addConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlInteractionConstraintObject::removeConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->removeConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlInteractionConstraintObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setContext(qmodelingobjectproperty_cast<QUmlNamespace *>(context));
+}
+
+void QUmlInteractionConstraintObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlValueSpecification *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionConstraint]
+
+void QUmlInteractionConstraintObject::setMaxint(QObject *maxint)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setMaxint(qmodelingobjectproperty_cast<QUmlValueSpecification *>(maxint));
+}
+
+void QUmlInteractionConstraintObject::setMinint(QObject *minint)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(this)->setMinint(qmodelingobjectproperty_cast<QUmlValueSpecification *>(minint));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinteractionconstraintobject_p.h b/src/uml/qobjects/qumlinteractionconstraintobject_p.h
new file mode 100644
index 00000000..22c87438
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionconstraintobject_p.h
@@ -0,0 +1,175 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERACTIONCONSTRAINTOBJECT_H
+#define QUMLINTERACTIONCONSTRAINTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInteractionConstraint;
+class Q_UML_EXPORT QUmlInteractionConstraintObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Constraint]
+ Q_PROPERTY(QList<QObject *> constrainedElement READ constrainedElement)
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [InteractionConstraint]
+ Q_PROPERTY(QObject * maxint READ maxint)
+ Q_PROPERTY(QObject * minint READ minint)
+
+public:
+ Q_INVOKABLE explicit QUmlInteractionConstraintObject(QUmlInteractionConstraint *qModelingObject);
+ virtual ~QUmlInteractionConstraintObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Constraint]
+ Q_INVOKABLE const QList<QObject *> constrainedElement() const;
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [InteractionConstraint]
+ Q_INVOKABLE QObject *maxint() const;
+ Q_INVOKABLE QObject *minint() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Constraint]
+ void addConstrainedElement(QObject *constrainedElement);
+ void removeConstrainedElement(QObject *constrainedElement);
+ void setContext(QObject *context = 0);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [InteractionConstraint]
+ void setMaxint(QObject *maxint = 0);
+ void setMinint(QObject *minint = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERACTIONCONSTRAINTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinteractionobject.cpp b/src/uml/qobjects/qumlinteractionobject.cpp
new file mode 100644
index 00000000..cf09238c
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionobject.cpp
@@ -0,0 +1,1385 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinteractionobject_p.h"
+
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlAction>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGate>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteractionFragment>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlMessage>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInteractionObject::QUmlInteractionObject(QUmlInteraction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInteractionObject::~QUmlInteractionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInteractionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInteractionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInteractionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->name();
+}
+
+QObject *QUmlInteractionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInteractionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInteractionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlInteractionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInteractionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInteractionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlInteractionObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlInteractionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlInteractionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlInteractionObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlInteractionObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlInteractionObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlInteractionObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlInteractionObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlInteractionObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlInteractionObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isAbstract();
+}
+
+bool QUmlInteractionObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlInteractionObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlInteractionObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlInteractionObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Behavior]
+
+QObject *QUmlInteractionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->context()->asQObject();
+}
+
+bool QUmlInteractionObject::isReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isReentrant();
+}
+
+const QList<QObject *> QUmlInteractionObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlInteractionObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::redefinedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->redefinedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlInteractionObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlInteractionObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Interaction]
+
+const QSet<QObject *> QUmlInteractionObject::action() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlAction *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->action())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::formalGate() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGate *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->formalGate())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlInteractionObject::fragment() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInteractionFragment *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->fragment())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlInteractionObject::lifeline() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->lifeline())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionObject::message() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlMessage *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->message())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInteractionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInteractionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInteractionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInteractionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlInteractionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlInteractionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlInteractionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInteractionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInteractionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlInteractionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlInteractionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlInteractionObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlInteractionObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInteractionObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlInteractionObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlInteractionObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->isTemplate();
+}
+
+bool QUmlInteractionObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteraction *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlInteractionObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlInteractionObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteraction *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInteractionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInteractionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setName(name);
+}
+
+void QUmlInteractionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInteractionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInteractionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlInteractionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInteractionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInteractionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInteractionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInteractionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInteractionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInteractionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInteractionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInteractionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInteractionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInteractionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlInteractionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInteractionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInteractionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlInteractionObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlInteractionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlInteractionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInteractionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInteractionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlInteractionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlInteractionObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlInteractionObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlInteractionObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlInteractionObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlInteractionObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlInteractionObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlInteractionObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlInteractionObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlInteractionObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlInteractionObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlInteractionObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlInteractionObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlInteractionObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlInteractionObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlInteractionObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlInteractionObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlInteractionObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlInteractionObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlInteractionObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlInteractionObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlInteractionObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlInteractionObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlInteractionObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlInteractionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlInteractionObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlInteractionObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlInteractionObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlInteractionObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlInteractionObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlInteractionObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlInteractionObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlInteractionObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlInteractionObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlInteractionObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlInteractionObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlInteractionObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlInteractionObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlInteractionObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlInteractionObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlInteractionObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlInteractionObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlInteractionObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlInteractionObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setActive(isActive);
+}
+
+void QUmlInteractionObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlInteractionObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlInteractionObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlInteractionObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlInteractionObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlInteractionObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlInteractionObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlInteractionObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlInteractionObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlInteractionObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Behavior]
+
+void QUmlInteractionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(context));
+}
+
+void QUmlInteractionObject::setReentrant(bool isReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setReentrant(isReentrant);
+}
+
+void QUmlInteractionObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlInteractionObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlInteractionObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlInteractionObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlInteractionObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlInteractionObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlInteractionObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlInteractionObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlInteractionObject::addRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlInteractionObject::removeRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlInteractionObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlBehavioralFeature *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlInteractionObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlInteractionObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlInteractionObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlInteractionObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlInteractionObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlInteractionObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Interaction]
+
+void QUmlInteractionObject::addAction(QObject *action)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addAction(qmodelingobjectproperty_cast<QUmlAction *>(action));
+}
+
+void QUmlInteractionObject::removeAction(QObject *action)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeAction(qmodelingobjectproperty_cast<QUmlAction *>(action));
+}
+
+void QUmlInteractionObject::addFormalGate(QObject *formalGate)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addFormalGate(qmodelingobjectproperty_cast<QUmlGate *>(formalGate));
+}
+
+void QUmlInteractionObject::removeFormalGate(QObject *formalGate)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeFormalGate(qmodelingobjectproperty_cast<QUmlGate *>(formalGate));
+}
+
+void QUmlInteractionObject::addFragment(QObject *fragment)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addFragment(qmodelingobjectproperty_cast<QUmlInteractionFragment *>(fragment));
+}
+
+void QUmlInteractionObject::removeFragment(QObject *fragment)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeFragment(qmodelingobjectproperty_cast<QUmlInteractionFragment *>(fragment));
+}
+
+void QUmlInteractionObject::addLifeline(QObject *lifeline)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addLifeline(qmodelingobjectproperty_cast<QUmlLifeline *>(lifeline));
+}
+
+void QUmlInteractionObject::removeLifeline(QObject *lifeline)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeLifeline(qmodelingobjectproperty_cast<QUmlLifeline *>(lifeline));
+}
+
+void QUmlInteractionObject::addMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->addMessage(qmodelingobjectproperty_cast<QUmlMessage *>(message));
+}
+
+void QUmlInteractionObject::removeMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlInteraction *>(this)->removeMessage(qmodelingobjectproperty_cast<QUmlMessage *>(message));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinteractionobject_p.h b/src/uml/qobjects/qumlinteractionobject_p.h
new file mode 100644
index 00000000..874d21f6
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionobject_p.h
@@ -0,0 +1,458 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERACTIONOBJECT_H
+#define QUMLINTERACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInteraction;
+class Q_UML_EXPORT QUmlInteractionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Behavior]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(bool isReentrant READ isReentrant)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QSet<QObject *> redefinedBehavior READ redefinedBehavior)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [Interaction]
+ Q_PROPERTY(QSet<QObject *> action READ action)
+ Q_PROPERTY(QSet<QObject *> formalGate READ formalGate)
+ Q_PROPERTY(QList<QObject *> fragment READ fragment)
+ Q_PROPERTY(QSet<QObject *> lifeline READ lifeline)
+ Q_PROPERTY(QSet<QObject *> message READ message)
+
+public:
+ Q_INVOKABLE explicit QUmlInteractionObject(QUmlInteraction *qModelingObject);
+ virtual ~QUmlInteractionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Behavior]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE bool isReentrant() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedBehavior() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [Interaction]
+ Q_INVOKABLE const QSet<QObject *> action() const;
+ Q_INVOKABLE const QSet<QObject *> formalGate() const;
+ Q_INVOKABLE const QList<QObject *> fragment() const;
+ Q_INVOKABLE const QSet<QObject *> lifeline() const;
+ Q_INVOKABLE const QSet<QObject *> message() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Behavior]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void setReentrant(bool isReentrant);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void addRedefinedBehavior(QObject *redefinedBehavior);
+ void removeRedefinedBehavior(QObject *redefinedBehavior);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [Interaction]
+ void addAction(QObject *action);
+ void removeAction(QObject *action);
+ void addFormalGate(QObject *formalGate);
+ void removeFormalGate(QObject *formalGate);
+ void addFragment(QObject *fragment);
+ void removeFragment(QObject *fragment);
+ void addLifeline(QObject *lifeline);
+ void removeLifeline(QObject *lifeline);
+ void addMessage(QObject *message);
+ void removeMessage(QObject *message);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinteractionoperandobject.cpp b/src/uml/qobjects/qumlinteractionoperandobject.cpp
new file mode 100644
index 00000000..2576f250
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionoperandobject.cpp
@@ -0,0 +1,480 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinteractionoperandobject_p.h"
+
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionConstraint>
+#include <QtUml/QUmlInteractionFragment>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInteractionOperandObject::QUmlInteractionOperandObject(QUmlInteractionOperand *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInteractionOperandObject::~QUmlInteractionOperandObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInteractionOperandObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionOperandObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInteractionOperandObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInteractionOperandObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->name();
+}
+
+QObject *QUmlInteractionOperandObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInteractionOperandObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInteractionOperandObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlInteractionOperandObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlInteractionOperandObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionOperandObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlInteractionOperandObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlInteractionOperandObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionOperandObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [InteractionOperand]
+
+const QList<QObject *> QUmlInteractionOperandObject::fragment() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInteractionFragment *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->fragment())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlInteractionOperandObject::guard() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->guard()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInteractionOperandObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionOperandObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInteractionOperandObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInteractionOperandObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionOperandObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInteractionOperandObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlInteractionOperandObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlInteractionOperandObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlInteractionOperandObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionOperandObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->membersAreDistinguishable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInteractionOperandObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionOperandObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionOperandObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionOperandObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionOperandObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInteractionOperandObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionOperandObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionOperandObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setName(name);
+}
+
+void QUmlInteractionOperandObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInteractionOperandObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInteractionOperandObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlInteractionOperandObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlInteractionOperandObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlInteractionOperandObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlInteractionOperandObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlInteractionOperandObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlInteractionOperandObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlInteractionOperandObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlInteractionOperandObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInteractionOperandObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInteractionOperandObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInteractionOperandObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInteractionOperandObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInteractionOperandObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInteractionOperandObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInteractionOperandObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInteractionOperandObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInteractionOperandObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInteractionOperandObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlInteractionOperandObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionOperand]
+
+void QUmlInteractionOperandObject::addFragment(QObject *fragment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->addFragment(qmodelingobjectproperty_cast<QUmlInteractionFragment *>(fragment));
+}
+
+void QUmlInteractionOperandObject::removeFragment(QObject *fragment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->removeFragment(qmodelingobjectproperty_cast<QUmlInteractionFragment *>(fragment));
+}
+
+void QUmlInteractionOperandObject::setGuard(QObject *guard)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionOperand *>(this)->setGuard(qmodelingobjectproperty_cast<QUmlInteractionConstraint *>(guard));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinteractionoperandobject_p.h b/src/uml/qobjects/qumlinteractionoperandobject_p.h
new file mode 100644
index 00000000..647c4eca
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionoperandobject_p.h
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERACTIONOPERANDOBJECT_H
+#define QUMLINTERACTIONOPERANDOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInteractionOperand;
+class Q_UML_EXPORT QUmlInteractionOperandObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [InteractionOperand]
+ Q_PROPERTY(QList<QObject *> fragment READ fragment)
+ Q_PROPERTY(QObject * guard READ guard)
+
+public:
+ Q_INVOKABLE explicit QUmlInteractionOperandObject(QUmlInteractionOperand *qModelingObject);
+ virtual ~QUmlInteractionOperandObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [InteractionOperand]
+ Q_INVOKABLE const QList<QObject *> fragment() const;
+ Q_INVOKABLE QObject *guard() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [InteractionOperand]
+ void addFragment(QObject *fragment);
+ void removeFragment(QObject *fragment);
+ void setGuard(QObject *guard = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERACTIONOPERANDOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinteractionuseobject.cpp b/src/uml/qobjects/qumlinteractionuseobject.cpp
new file mode 100644
index 00000000..66f1978e
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionuseobject.cpp
@@ -0,0 +1,370 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinteractionuseobject_p.h"
+
+#include <QtUml/QUmlInteractionUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGate>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInteractionUseObject::QUmlInteractionUseObject(QUmlInteractionUse *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInteractionUseObject::~QUmlInteractionUseObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInteractionUseObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInteractionUseObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionUseObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInteractionUseObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInteractionUseObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->name();
+}
+
+QObject *QUmlInteractionUseObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInteractionUseObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInteractionUseObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlInteractionUseObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlInteractionUseObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInteractionUseObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlInteractionUseObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlInteractionUseObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [InteractionUse]
+
+const QSet<QObject *> QUmlInteractionUseObject::actualGate() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGate *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->actualGate())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlInteractionUseObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlValueSpecification *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlInteractionUseObject::refersTo() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->refersTo()->asQObject();
+}
+
+QObject *QUmlInteractionUseObject::returnValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->returnValue()->asQObject();
+}
+
+QObject *QUmlInteractionUseObject::returnValueRecipient() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->returnValueRecipient()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInteractionUseObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionUseObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInteractionUseObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInteractionUseObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInteractionUseObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInteractionUseObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInteractionUseObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionUseObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInteractionUseObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionUseObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInteractionUseObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInteractionUseObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionUseObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInteractionUseObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setName(name);
+}
+
+void QUmlInteractionUseObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInteractionUseObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInteractionUseObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlInteractionUseObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlInteractionUseObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlInteractionUseObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlInteractionUseObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlInteractionUseObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlInteractionUseObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlInteractionUseObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionUse]
+
+void QUmlInteractionUseObject::addActualGate(QObject *actualGate)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addActualGate(qmodelingobjectproperty_cast<QUmlGate *>(actualGate));
+}
+
+void QUmlInteractionUseObject::removeActualGate(QObject *actualGate)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeActualGate(qmodelingobjectproperty_cast<QUmlGate *>(actualGate));
+}
+
+void QUmlInteractionUseObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlValueSpecification *>(argument));
+}
+
+void QUmlInteractionUseObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlValueSpecification *>(argument));
+}
+
+void QUmlInteractionUseObject::setRefersTo(QObject *refersTo)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setRefersTo(qmodelingobjectproperty_cast<QUmlInteraction *>(refersTo));
+}
+
+void QUmlInteractionUseObject::setReturnValue(QObject *returnValue)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setReturnValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(returnValue));
+}
+
+void QUmlInteractionUseObject::setReturnValueRecipient(QObject *returnValueRecipient)
+{
+ qmodelingobjectproperty_cast<QUmlInteractionUse *>(this)->setReturnValueRecipient(qmodelingobjectproperty_cast<QUmlProperty *>(returnValueRecipient));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinteractionuseobject_p.h b/src/uml/qobjects/qumlinteractionuseobject_p.h
new file mode 100644
index 00000000..59560ff0
--- /dev/null
+++ b/src/uml/qobjects/qumlinteractionuseobject_p.h
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERACTIONUSEOBJECT_H
+#define QUMLINTERACTIONUSEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInteractionUse;
+class Q_UML_EXPORT QUmlInteractionUseObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [InteractionUse]
+ Q_PROPERTY(QSet<QObject *> actualGate READ actualGate)
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * refersTo READ refersTo)
+ Q_PROPERTY(QObject * returnValue READ returnValue)
+ Q_PROPERTY(QObject * returnValueRecipient READ returnValueRecipient)
+
+public:
+ Q_INVOKABLE explicit QUmlInteractionUseObject(QUmlInteractionUse *qModelingObject);
+ virtual ~QUmlInteractionUseObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [InteractionUse]
+ Q_INVOKABLE const QSet<QObject *> actualGate() const;
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *refersTo() const;
+ Q_INVOKABLE QObject *returnValue() const;
+ Q_INVOKABLE QObject *returnValueRecipient() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [InteractionUse]
+ void addActualGate(QObject *actualGate);
+ void removeActualGate(QObject *actualGate);
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setRefersTo(QObject *refersTo = 0);
+ void setReturnValue(QObject *returnValue = 0);
+ void setReturnValueRecipient(QObject *returnValueRecipient = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERACTIONUSEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinterfaceobject.cpp b/src/uml/qobjects/qumlinterfaceobject.cpp
new file mode 100644
index 00000000..1f52110d
--- /dev/null
+++ b/src/uml/qobjects/qumlinterfaceobject.cpp
@@ -0,0 +1,958 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinterfaceobject_p.h"
+
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlProtocolStateMachine>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInterfaceObject::QUmlInterfaceObject(QUmlInterface *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInterfaceObject::~QUmlInterfaceObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInterfaceObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterfaceObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInterfaceObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInterfaceObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->name();
+}
+
+QObject *QUmlInterfaceObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInterfaceObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInterfaceObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlInterfaceObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInterfaceObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInterfaceObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlInterfaceObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlInterfaceObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlInterfaceObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlInterfaceObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlInterfaceObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isAbstract();
+}
+
+bool QUmlInterfaceObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlInterfaceObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlInterfaceObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterfaceObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlInterfaceObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterfaceObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlInterfaceObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Interface]
+
+const QList<QObject *> QUmlInterfaceObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlInterfaceObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlInterfaceObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlInterfaceObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterfaceObject::protocol() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->protocol()->asQObject();
+}
+
+const QSet<QObject *> QUmlInterfaceObject::redefinedInterface() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->redefinedInterface())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInterfaceObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInterfaceObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInterfaceObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInterfaceObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlInterfaceObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlInterfaceObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlInterfaceObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInterfaceObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInterfaceObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlInterfaceObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlInterfaceObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlInterfaceObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlInterfaceObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInterfaceObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlInterfaceObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlInterfaceObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInterfaceObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->isTemplate();
+}
+
+bool QUmlInterfaceObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterface *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlInterfaceObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlInterface *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInterfaceObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInterfaceObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInterfaceObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInterfaceObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInterfaceObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInterfaceObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInterfaceObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInterfaceObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setName(name);
+}
+
+void QUmlInterfaceObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInterfaceObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInterfaceObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlInterfaceObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInterfaceObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlInterfaceObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInterfaceObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlInterfaceObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInterfaceObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlInterfaceObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInterfaceObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlInterfaceObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInterfaceObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlInterfaceObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlInterfaceObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInterfaceObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInterfaceObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlInterfaceObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlInterfaceObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlInterfaceObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInterfaceObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlInterfaceObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlInterfaceObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlInterfaceObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlInterfaceObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlInterfaceObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlInterfaceObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlInterfaceObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlInterfaceObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlInterfaceObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlInterfaceObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlInterfaceObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlInterfaceObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlInterfaceObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlInterfaceObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlInterfaceObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlInterfaceObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlInterfaceObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlInterfaceObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlInterfaceObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlInterfaceObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlInterfaceObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlInterfaceObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlInterfaceObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlInterfaceObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlInterfaceObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlInterfaceObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlInterfaceObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlInterfaceObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlInterfaceObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlInterfaceObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlInterfaceObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Interface]
+
+void QUmlInterfaceObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlInterfaceObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlInterfaceObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlInterfaceObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlInterfaceObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlInterfaceObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlInterfaceObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlInterfaceObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlInterfaceObject::setProtocol(QObject *protocol)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->setProtocol(qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(protocol));
+}
+
+void QUmlInterfaceObject::addRedefinedInterface(QObject *redefinedInterface)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->addRedefinedInterface(qmodelingobjectproperty_cast<QUmlInterface *>(redefinedInterface));
+}
+
+void QUmlInterfaceObject::removeRedefinedInterface(QObject *redefinedInterface)
+{
+ qmodelingobjectproperty_cast<QUmlInterface *>(this)->removeRedefinedInterface(qmodelingobjectproperty_cast<QUmlInterface *>(redefinedInterface));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinterfaceobject_p.h b/src/uml/qobjects/qumlinterfaceobject_p.h
new file mode 100644
index 00000000..77461668
--- /dev/null
+++ b/src/uml/qobjects/qumlinterfaceobject_p.h
@@ -0,0 +1,330 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERFACEOBJECT_H
+#define QUMLINTERFACEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInterface;
+class Q_UML_EXPORT QUmlInterfaceObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Interface]
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QObject * protocol READ protocol)
+ Q_PROPERTY(QSet<QObject *> redefinedInterface READ redefinedInterface)
+
+public:
+ Q_INVOKABLE explicit QUmlInterfaceObject(QUmlInterface *qModelingObject);
+ virtual ~QUmlInterfaceObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Interface]
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE QObject *protocol() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedInterface() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Interface]
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void setProtocol(QObject *protocol = 0);
+ void addRedefinedInterface(QObject *redefinedInterface);
+ void removeRedefinedInterface(QObject *redefinedInterface);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERFACEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinterfacerealizationobject.cpp b/src/uml/qobjects/qumlinterfacerealizationobject.cpp
new file mode 100644
index 00000000..b7a470c2
--- /dev/null
+++ b/src/uml/qobjects/qumlinterfacerealizationobject.cpp
@@ -0,0 +1,416 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinterfacerealizationobject_p.h"
+
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInterfaceRealizationObject::QUmlInterfaceRealizationObject(QUmlInterfaceRealization *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInterfaceRealizationObject::~QUmlInterfaceRealizationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterfaceRealizationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlInterfaceRealizationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlInterfaceRealizationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInterfaceRealizationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->name();
+}
+
+QObject *QUmlInterfaceRealizationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInterfaceRealizationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInterfaceRealizationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlInterfaceRealizationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterfaceRealizationObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Abstraction]
+
+QObject *QUmlInterfaceRealizationObject::mapping() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->mapping()->asQObject();
+}
+
+// OWNED ATTRIBUTES [InterfaceRealization]
+
+QObject *QUmlInterfaceRealizationObject::contract() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->contract()->asQObject();
+}
+
+QObject *QUmlInterfaceRealizationObject::implementingClassifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->implementingClassifier()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInterfaceRealizationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceRealizationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlInterfaceRealizationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlInterfaceRealizationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInterfaceRealizationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInterfaceRealizationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterfaceRealizationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInterfaceRealizationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInterfaceRealizationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInterfaceRealizationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInterfaceRealizationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInterfaceRealizationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInterfaceRealizationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlInterfaceRealizationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlInterfaceRealizationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInterfaceRealizationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInterfaceRealizationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInterfaceRealizationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setName(name);
+}
+
+void QUmlInterfaceRealizationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInterfaceRealizationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInterfaceRealizationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlInterfaceRealizationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlInterfaceRealizationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlInterfaceRealizationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlInterfaceRealizationObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlInterfaceRealizationObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlInterfaceRealizationObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlInterfaceRealizationObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlInterfaceRealizationObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlInterfaceRealizationObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlInterfaceRealizationObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlInterfaceRealizationObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+
+void QUmlInterfaceRealizationObject::setMapping(QObject *mapping)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setMapping(qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(mapping));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InterfaceRealization]
+
+void QUmlInterfaceRealizationObject::setContract(QObject *contract)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setContract(qmodelingobjectproperty_cast<QUmlInterface *>(contract));
+}
+
+void QUmlInterfaceRealizationObject::setImplementingClassifier(QObject *implementingClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(this)->setImplementingClassifier(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(implementingClassifier));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinterfacerealizationobject_p.h b/src/uml/qobjects/qumlinterfacerealizationobject_p.h
new file mode 100644
index 00000000..4dd03278
--- /dev/null
+++ b/src/uml/qobjects/qumlinterfacerealizationobject_p.h
@@ -0,0 +1,206 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERFACEREALIZATIONOBJECT_H
+#define QUMLINTERFACEREALIZATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInterfaceRealization;
+class Q_UML_EXPORT QUmlInterfaceRealizationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Abstraction]
+ Q_PROPERTY(QObject * mapping READ mapping)
+
+ // Properties [InterfaceRealization]
+ Q_PROPERTY(QObject * contract READ contract)
+ Q_PROPERTY(QObject * implementingClassifier READ implementingClassifier)
+
+public:
+ Q_INVOKABLE explicit QUmlInterfaceRealizationObject(QUmlInterfaceRealization *qModelingObject);
+ virtual ~QUmlInterfaceRealizationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Abstraction]
+ Q_INVOKABLE QObject *mapping() const;
+
+ // Owned attributes [InterfaceRealization]
+ Q_INVOKABLE QObject *contract() const;
+ Q_INVOKABLE QObject *implementingClassifier() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Abstraction]
+ void setMapping(QObject *mapping = 0);
+
+ // Slots for owned attributes [InterfaceRealization]
+ void setContract(QObject *contract = 0);
+ void setImplementingClassifier(QObject *implementingClassifier = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERFACEREALIZATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlinterruptibleactivityregionobject.cpp b/src/uml/qobjects/qumlinterruptibleactivityregionobject.cpp
new file mode 100644
index 00000000..fe2fd959
--- /dev/null
+++ b/src/uml/qobjects/qumlinterruptibleactivityregionobject.cpp
@@ -0,0 +1,355 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlinterruptibleactivityregionobject_p.h"
+
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlInterruptibleActivityRegionObject::QUmlInterruptibleActivityRegionObject(QUmlInterruptibleActivityRegion *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlInterruptibleActivityRegionObject::~QUmlInterruptibleActivityRegionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterruptibleActivityRegionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlInterruptibleActivityRegionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->name();
+}
+
+QObject *QUmlInterruptibleActivityRegionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlInterruptibleActivityRegionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlInterruptibleActivityRegionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlInterruptibleActivityRegionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterruptibleActivityRegionObject::inActivity() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->inActivity()->asQObject();
+}
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlInterruptibleActivityRegionObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [InterruptibleActivityRegion]
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::interruptingEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->interruptingEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlInterruptibleActivityRegionObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlInterruptibleActivityRegionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterruptibleActivityRegionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlInterruptibleActivityRegionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlInterruptibleActivityRegionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlInterruptibleActivityRegionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlInterruptibleActivityRegionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlInterruptibleActivityRegionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlInterruptibleActivityRegionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlInterruptibleActivityRegionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlInterruptibleActivityRegionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlInterruptibleActivityRegionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setName(name);
+}
+
+void QUmlInterruptibleActivityRegionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlInterruptibleActivityRegionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlInterruptibleActivityRegionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlInterruptibleActivityRegionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlInterruptibleActivityRegionObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlInterruptibleActivityRegionObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlInterruptibleActivityRegionObject::setInActivity(QObject *inActivity)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setInActivity(qmodelingobjectproperty_cast<QUmlActivity *>(inActivity));
+}
+
+void QUmlInterruptibleActivityRegionObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlInterruptibleActivityRegionObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InterruptibleActivityRegion]
+
+void QUmlInterruptibleActivityRegionObject::addInterruptingEdge(QObject *interruptingEdge)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addInterruptingEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(interruptingEdge));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeInterruptingEdge(QObject *interruptingEdge)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeInterruptingEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(interruptingEdge));
+}
+
+void QUmlInterruptibleActivityRegionObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlInterruptibleActivityRegionObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlinterruptibleactivityregionobject_p.h b/src/uml/qobjects/qumlinterruptibleactivityregionobject_p.h
new file mode 100644
index 00000000..d3f308c1
--- /dev/null
+++ b/src/uml/qobjects/qumlinterruptibleactivityregionobject_p.h
@@ -0,0 +1,163 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERRUPTIBLEACTIVITYREGIONOBJECT_H
+#define QUMLINTERRUPTIBLEACTIVITYREGIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInterruptibleActivityRegion;
+class Q_UML_EXPORT QUmlInterruptibleActivityRegionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QObject * inActivity READ inActivity)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [InterruptibleActivityRegion]
+ Q_PROPERTY(QSet<QObject *> interruptingEdge READ interruptingEdge)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+
+public:
+ Q_INVOKABLE explicit QUmlInterruptibleActivityRegionObject(QUmlInterruptibleActivityRegion *qModelingObject);
+ virtual ~QUmlInterruptibleActivityRegionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE QObject *inActivity() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [InterruptibleActivityRegion]
+ Q_INVOKABLE const QSet<QObject *> interruptingEdge() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void setInActivity(QObject *inActivity = 0);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [InterruptibleActivityRegion]
+ void addInterruptingEdge(QObject *interruptingEdge);
+ void removeInterruptingEdge(QObject *interruptingEdge);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERRUPTIBLEACTIVITYREGIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlintervalconstraintobject.cpp b/src/uml/qobjects/qumlintervalconstraintobject.cpp
new file mode 100644
index 00000000..9aeef0d9
--- /dev/null
+++ b/src/uml/qobjects/qumlintervalconstraintobject.cpp
@@ -0,0 +1,319 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlintervalconstraintobject_p.h"
+
+#include <QtUml/QUmlIntervalConstraint>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterval>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlIntervalConstraintObject::QUmlIntervalConstraintObject(QUmlIntervalConstraint *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlIntervalConstraintObject::~QUmlIntervalConstraintObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlIntervalConstraintObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlIntervalConstraintObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlIntervalConstraintObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlIntervalConstraintObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlIntervalConstraintObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlIntervalConstraintObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlIntervalConstraintObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->name();
+}
+
+QObject *QUmlIntervalConstraintObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlIntervalConstraintObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlIntervalConstraintObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlIntervalConstraintObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Constraint]
+
+const QList<QObject *> QUmlIntervalConstraintObject::constrainedElement() const
+{
+ QList<QObject *> list;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->constrainedElement())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlIntervalConstraintObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->context()->asQObject();
+}
+// OWNED ATTRIBUTES [IntervalConstraint]
+
+QObject *QUmlIntervalConstraintObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->specification()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlIntervalConstraintObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlIntervalConstraintObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlIntervalConstraintObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlIntervalConstraintObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlIntervalConstraintObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlIntervalConstraintObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlIntervalConstraintObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlIntervalConstraintObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlIntervalConstraintObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlIntervalConstraintObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlIntervalConstraintObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlIntervalConstraintObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlIntervalConstraintObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlIntervalConstraintObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlIntervalConstraintObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlIntervalConstraintObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlIntervalConstraintObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlIntervalConstraintObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setName(name);
+}
+
+void QUmlIntervalConstraintObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlIntervalConstraintObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlIntervalConstraintObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlIntervalConstraintObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Constraint]
+
+void QUmlIntervalConstraintObject::addConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->addConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlIntervalConstraintObject::removeConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->removeConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlIntervalConstraintObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setContext(qmodelingobjectproperty_cast<QUmlNamespace *>(context));
+}
+// SLOTS FOR OWNED ATTRIBUTES [IntervalConstraint]
+
+void QUmlIntervalConstraintObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlIntervalConstraint *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlInterval *>(specification));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlintervalconstraintobject_p.h b/src/uml/qobjects/qumlintervalconstraintobject_p.h
new file mode 100644
index 00000000..5648ae78
--- /dev/null
+++ b/src/uml/qobjects/qumlintervalconstraintobject_p.h
@@ -0,0 +1,169 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERVALCONSTRAINTOBJECT_H
+#define QUMLINTERVALCONSTRAINTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlIntervalConstraint;
+class Q_UML_EXPORT QUmlIntervalConstraintObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Constraint]
+ Q_PROPERTY(QList<QObject *> constrainedElement READ constrainedElement)
+ Q_PROPERTY(QObject * context READ context)
+
+ // Properties [IntervalConstraint]
+ Q_PROPERTY(QObject * specification READ specification)
+
+public:
+ Q_INVOKABLE explicit QUmlIntervalConstraintObject(QUmlIntervalConstraint *qModelingObject);
+ virtual ~QUmlIntervalConstraintObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Constraint]
+ Q_INVOKABLE const QList<QObject *> constrainedElement() const;
+ Q_INVOKABLE QObject *context() const;
+
+ // Owned attributes [IntervalConstraint]
+ Q_INVOKABLE QObject *specification() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Constraint]
+ void addConstrainedElement(QObject *constrainedElement);
+ void removeConstrainedElement(QObject *constrainedElement);
+ void setContext(QObject *context = 0);
+
+ // Slots for owned attributes [IntervalConstraint]
+ void setSpecification(QObject *specification = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERVALCONSTRAINTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlintervalobject.cpp b/src/uml/qobjects/qumlintervalobject.cpp
new file mode 100644
index 00000000..acbd3484
--- /dev/null
+++ b/src/uml/qobjects/qumlintervalobject.cpp
@@ -0,0 +1,350 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlintervalobject_p.h"
+
+#include <QtUml/QUmlInterval>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlIntervalObject::QUmlIntervalObject(QUmlInterval *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlIntervalObject::~QUmlIntervalObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlIntervalObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlInterval *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlIntervalObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterval *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlIntervalObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlIntervalObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlInterval *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlIntervalObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->name();
+}
+
+QObject *QUmlIntervalObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlIntervalObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlIntervalObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlIntervalObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlIntervalObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlIntervalObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlIntervalObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Interval]
+
+QObject *QUmlIntervalObject::max() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->max()->asQObject();
+}
+
+QObject *QUmlIntervalObject::min() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->min()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlIntervalObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlInterval *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlIntervalObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlIntervalObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlInterval *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlIntervalObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlInterval *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlIntervalObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlIntervalObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlIntervalObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlIntervalObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->booleanValue();
+}
+
+int QUmlIntervalObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->integerValue();
+}
+
+bool QUmlIntervalObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlIntervalObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->isComputable();
+}
+
+bool QUmlIntervalObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->isNull();
+}
+
+double QUmlIntervalObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->realValue();
+}
+
+QString QUmlIntervalObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->stringValue();
+}
+
+int QUmlIntervalObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlInterval *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlIntervalObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlIntervalObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlIntervalObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlIntervalObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlIntervalObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlIntervalObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlIntervalObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlIntervalObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setName(name);
+}
+
+void QUmlIntervalObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlIntervalObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlIntervalObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlIntervalObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlIntervalObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlIntervalObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlIntervalObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Interval]
+
+void QUmlIntervalObject::setMax(QObject *max)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setMax(qmodelingobjectproperty_cast<QUmlValueSpecification *>(max));
+}
+
+void QUmlIntervalObject::setMin(QObject *min)
+{
+ qmodelingobjectproperty_cast<QUmlInterval *>(this)->setMin(qmodelingobjectproperty_cast<QUmlValueSpecification *>(min));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlintervalobject_p.h b/src/uml/qobjects/qumlintervalobject_p.h
new file mode 100644
index 00000000..23d35915
--- /dev/null
+++ b/src/uml/qobjects/qumlintervalobject_p.h
@@ -0,0 +1,177 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLINTERVALOBJECT_H
+#define QUMLINTERVALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlInterval;
+class Q_UML_EXPORT QUmlIntervalObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Interval]
+ Q_PROPERTY(QObject * max READ max)
+ Q_PROPERTY(QObject * min READ min)
+
+public:
+ Q_INVOKABLE explicit QUmlIntervalObject(QUmlInterval *qModelingObject);
+ virtual ~QUmlIntervalObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Interval]
+ Q_INVOKABLE QObject *max() const;
+ Q_INVOKABLE QObject *min() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Interval]
+ void setMax(QObject *max = 0);
+ void setMin(QObject *min = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLINTERVALOBJECT_H
+
diff --git a/src/uml/qobjects/qumljoinnodeobject.cpp b/src/uml/qobjects/qumljoinnodeobject.cpp
new file mode 100644
index 00000000..1b7fc2eb
--- /dev/null
+++ b/src/uml/qobjects/qumljoinnodeobject.cpp
@@ -0,0 +1,461 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumljoinnodeobject_p.h"
+
+#include <QtUml/QUmlJoinNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlJoinNodeObject::QUmlJoinNodeObject(QUmlJoinNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlJoinNodeObject::~QUmlJoinNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlJoinNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlJoinNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlJoinNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlJoinNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->name();
+}
+
+QObject *QUmlJoinNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlJoinNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlJoinNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlJoinNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlJoinNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlJoinNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlJoinNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlJoinNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [JoinNode]
+
+bool QUmlJoinNodeObject::isCombineDuplicate() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->isCombineDuplicate();
+}
+
+QObject *QUmlJoinNodeObject::joinSpec() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->joinSpec()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlJoinNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlJoinNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlJoinNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlJoinNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlJoinNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlJoinNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlJoinNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlJoinNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlJoinNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlJoinNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlJoinNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlJoinNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlJoinNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlJoinNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlJoinNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlJoinNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setName(name);
+}
+
+void QUmlJoinNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlJoinNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlJoinNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlJoinNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlJoinNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlJoinNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlJoinNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlJoinNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlJoinNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlJoinNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlJoinNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlJoinNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlJoinNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlJoinNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlJoinNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlJoinNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlJoinNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlJoinNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlJoinNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlJoinNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlJoinNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlJoinNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlJoinNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [JoinNode]
+
+void QUmlJoinNodeObject::setCombineDuplicate(bool isCombineDuplicate)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setCombineDuplicate(isCombineDuplicate);
+}
+
+void QUmlJoinNodeObject::setJoinSpec(QObject *joinSpec)
+{
+ qmodelingobjectproperty_cast<QUmlJoinNode *>(this)->setJoinSpec(qmodelingobjectproperty_cast<QUmlValueSpecification *>(joinSpec));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumljoinnodeobject_p.h b/src/uml/qobjects/qumljoinnodeobject_p.h
new file mode 100644
index 00000000..a3b4203e
--- /dev/null
+++ b/src/uml/qobjects/qumljoinnodeobject_p.h
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLJOINNODEOBJECT_H
+#define QUMLJOINNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlJoinNode;
+class Q_UML_EXPORT QUmlJoinNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [JoinNode]
+ Q_PROPERTY(bool isCombineDuplicate READ isCombineDuplicate)
+ Q_PROPERTY(QObject * joinSpec READ joinSpec)
+
+public:
+ Q_INVOKABLE explicit QUmlJoinNodeObject(QUmlJoinNode *qModelingObject);
+ virtual ~QUmlJoinNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [JoinNode]
+ Q_INVOKABLE bool isCombineDuplicate() const;
+ Q_INVOKABLE QObject *joinSpec() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [JoinNode]
+ void setCombineDuplicate(bool isCombineDuplicate);
+ void setJoinSpec(QObject *joinSpec = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLJOINNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumllifelineobject.cpp b/src/uml/qobjects/qumllifelineobject.cpp
new file mode 100644
index 00000000..7714c12f
--- /dev/null
+++ b/src/uml/qobjects/qumllifelineobject.cpp
@@ -0,0 +1,300 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumllifelineobject_p.h"
+
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionFragment>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPartDecomposition>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLifelineObject::QUmlLifelineObject(QUmlLifeline *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLifelineObject::~QUmlLifelineObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLifelineObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLifelineObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLifelineObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLifelineObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLifelineObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->name();
+}
+
+QObject *QUmlLifelineObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLifelineObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLifelineObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlLifelineObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Lifeline]
+
+const QSet<QObject *> QUmlLifelineObject::coveredBy() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInteractionFragment *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->coveredBy())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLifelineObject::decomposedAs() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->decomposedAs()->asQObject();
+}
+
+QObject *QUmlLifelineObject::interaction() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->interaction()->asQObject();
+}
+
+QObject *QUmlLifelineObject::represents() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->represents()->asQObject();
+}
+
+QObject *QUmlLifelineObject::selector() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->selector()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLifelineObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLifelineObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLifelineObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLifelineObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLifeline *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLifelineObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLifelineObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLifeline *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLifelineObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLifelineObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLifelineObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLifelineObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLifelineObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLifelineObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLifelineObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLifelineObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setName(name);
+}
+
+void QUmlLifelineObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLifelineObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLifelineObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlLifelineObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Lifeline]
+
+void QUmlLifelineObject::addCoveredBy(QObject *coveredBy)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->addCoveredBy(qmodelingobjectproperty_cast<QUmlInteractionFragment *>(coveredBy));
+}
+
+void QUmlLifelineObject::removeCoveredBy(QObject *coveredBy)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->removeCoveredBy(qmodelingobjectproperty_cast<QUmlInteractionFragment *>(coveredBy));
+}
+
+void QUmlLifelineObject::setDecomposedAs(QObject *decomposedAs)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setDecomposedAs(qmodelingobjectproperty_cast<QUmlPartDecomposition *>(decomposedAs));
+}
+
+void QUmlLifelineObject::setInteraction(QObject *interaction)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(interaction));
+}
+
+void QUmlLifelineObject::setRepresents(QObject *represents)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setRepresents(qmodelingobjectproperty_cast<QUmlConnectableElement *>(represents));
+}
+
+void QUmlLifelineObject::setSelector(QObject *selector)
+{
+ qmodelingobjectproperty_cast<QUmlLifeline *>(this)->setSelector(qmodelingobjectproperty_cast<QUmlValueSpecification *>(selector));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumllifelineobject_p.h b/src/uml/qobjects/qumllifelineobject_p.h
new file mode 100644
index 00000000..c0964f0e
--- /dev/null
+++ b/src/uml/qobjects/qumllifelineobject_p.h
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLIFELINEOBJECT_H
+#define QUMLLIFELINEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLifeline;
+class Q_UML_EXPORT QUmlLifelineObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Lifeline]
+ Q_PROPERTY(QSet<QObject *> coveredBy READ coveredBy)
+ Q_PROPERTY(QObject * decomposedAs READ decomposedAs)
+ Q_PROPERTY(QObject * interaction READ interaction)
+ Q_PROPERTY(QObject * represents READ represents)
+ Q_PROPERTY(QObject * selector READ selector)
+
+public:
+ Q_INVOKABLE explicit QUmlLifelineObject(QUmlLifeline *qModelingObject);
+ virtual ~QUmlLifelineObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Lifeline]
+ Q_INVOKABLE const QSet<QObject *> coveredBy() const;
+ Q_INVOKABLE QObject *decomposedAs() const;
+ Q_INVOKABLE QObject *interaction() const;
+ Q_INVOKABLE QObject *represents() const;
+ Q_INVOKABLE QObject *selector() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Lifeline]
+ void addCoveredBy(QObject *coveredBy);
+ void removeCoveredBy(QObject *coveredBy);
+ void setDecomposedAs(QObject *decomposedAs = 0);
+ void setInteraction(QObject *interaction = 0);
+ void setRepresents(QObject *represents = 0);
+ void setSelector(QObject *selector = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLIFELINEOBJECT_H
+
diff --git a/src/uml/qobjects/qumllinkendcreationdataobject.cpp b/src/uml/qobjects/qumllinkendcreationdataobject.cpp
new file mode 100644
index 00000000..d360a75e
--- /dev/null
+++ b/src/uml/qobjects/qumllinkendcreationdataobject.cpp
@@ -0,0 +1,197 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumllinkendcreationdataobject_p.h"
+
+#include <QtUml/QUmlLinkEndCreationData>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlQualifierValue>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLinkEndCreationDataObject::QUmlLinkEndCreationDataObject(QUmlLinkEndCreationData *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLinkEndCreationDataObject::~QUmlLinkEndCreationDataObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLinkEndCreationDataObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLinkEndCreationDataObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLinkEndCreationDataObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [LinkEndData]
+
+QObject *QUmlLinkEndCreationDataObject::end() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->end()->asQObject();
+}
+
+const QSet<QObject *> QUmlLinkEndCreationDataObject::qualifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlQualifierValue *element, qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->qualifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLinkEndCreationDataObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->value()->asQObject();
+}
+
+// OWNED ATTRIBUTES [LinkEndCreationData]
+
+QObject *QUmlLinkEndCreationDataObject::insertAt() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->insertAt()->asQObject();
+}
+
+bool QUmlLinkEndCreationDataObject::isReplaceAll() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->isReplaceAll();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLinkEndCreationDataObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLinkEndCreationDataObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLinkEndCreationDataObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLinkEndCreationDataObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLinkEndCreationDataObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLinkEndCreationDataObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLinkEndCreationDataObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkEndData]
+
+void QUmlLinkEndCreationDataObject::setEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->setEnd(qmodelingobjectproperty_cast<QUmlProperty *>(end));
+}
+
+void QUmlLinkEndCreationDataObject::addQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->addQualifier(qmodelingobjectproperty_cast<QUmlQualifierValue *>(qualifier));
+}
+
+void QUmlLinkEndCreationDataObject::removeQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->removeQualifier(qmodelingobjectproperty_cast<QUmlQualifierValue *>(qualifier));
+}
+
+void QUmlLinkEndCreationDataObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkEndCreationData]
+
+void QUmlLinkEndCreationDataObject::setInsertAt(QObject *insertAt)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->setInsertAt(qmodelingobjectproperty_cast<QUmlInputPin *>(insertAt));
+}
+
+void QUmlLinkEndCreationDataObject::setReplaceAll(bool isReplaceAll)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndCreationData *>(this)->setReplaceAll(isReplaceAll);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumllinkendcreationdataobject_p.h b/src/uml/qobjects/qumllinkendcreationdataobject_p.h
new file mode 100644
index 00000000..39fb9b02
--- /dev/null
+++ b/src/uml/qobjects/qumllinkendcreationdataobject_p.h
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLINKENDCREATIONDATAOBJECT_H
+#define QUMLLINKENDCREATIONDATAOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLinkEndCreationData;
+class Q_UML_EXPORT QUmlLinkEndCreationDataObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [LinkEndData]
+ Q_PROPERTY(QObject * end READ end)
+ Q_PROPERTY(QSet<QObject *> qualifier READ qualifier)
+ Q_PROPERTY(QObject * value READ value)
+
+ // Properties [LinkEndCreationData]
+ Q_PROPERTY(QObject * insertAt READ insertAt)
+ Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
+
+public:
+ Q_INVOKABLE explicit QUmlLinkEndCreationDataObject(QUmlLinkEndCreationData *qModelingObject);
+ virtual ~QUmlLinkEndCreationDataObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [LinkEndData]
+ Q_INVOKABLE QObject *end() const;
+ Q_INVOKABLE const QSet<QObject *> qualifier() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Owned attributes [LinkEndCreationData]
+ Q_INVOKABLE QObject *insertAt() const;
+ Q_INVOKABLE bool isReplaceAll() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [LinkEndData]
+ void setEnd(QObject *end = 0);
+ void addQualifier(QObject *qualifier);
+ void removeQualifier(QObject *qualifier);
+ void setValue(QObject *value = 0);
+
+ // Slots for owned attributes [LinkEndCreationData]
+ void setInsertAt(QObject *insertAt = 0);
+ void setReplaceAll(bool isReplaceAll);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLINKENDCREATIONDATAOBJECT_H
+
diff --git a/src/uml/qobjects/qumllinkenddataobject.cpp b/src/uml/qobjects/qumllinkenddataobject.cpp
new file mode 100644
index 00000000..bcf9ae43
--- /dev/null
+++ b/src/uml/qobjects/qumllinkenddataobject.cpp
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumllinkenddataobject_p.h"
+
+#include <QtUml/QUmlLinkEndData>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlQualifierValue>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLinkEndDataObject::QUmlLinkEndDataObject(QUmlLinkEndData *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLinkEndDataObject::~QUmlLinkEndDataObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLinkEndDataObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLinkEndDataObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLinkEndDataObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [LinkEndData]
+
+QObject *QUmlLinkEndDataObject::end() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->end()->asQObject();
+}
+
+const QSet<QObject *> QUmlLinkEndDataObject::qualifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlQualifierValue *element, qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->qualifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLinkEndDataObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->value()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLinkEndDataObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLinkEndDataObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLinkEndDataObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLinkEndDataObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLinkEndDataObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLinkEndDataObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLinkEndDataObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkEndData]
+
+void QUmlLinkEndDataObject::setEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->setEnd(qmodelingobjectproperty_cast<QUmlProperty *>(end));
+}
+
+void QUmlLinkEndDataObject::addQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->addQualifier(qmodelingobjectproperty_cast<QUmlQualifierValue *>(qualifier));
+}
+
+void QUmlLinkEndDataObject::removeQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->removeQualifier(qmodelingobjectproperty_cast<QUmlQualifierValue *>(qualifier));
+}
+
+void QUmlLinkEndDataObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndData *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumllinkenddataobject_p.h b/src/uml/qobjects/qumllinkenddataobject_p.h
new file mode 100644
index 00000000..e674a3a8
--- /dev/null
+++ b/src/uml/qobjects/qumllinkenddataobject_p.h
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLINKENDDATAOBJECT_H
+#define QUMLLINKENDDATAOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLinkEndData;
+class Q_UML_EXPORT QUmlLinkEndDataObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [LinkEndData]
+ Q_PROPERTY(QObject * end READ end)
+ Q_PROPERTY(QSet<QObject *> qualifier READ qualifier)
+ Q_PROPERTY(QObject * value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlLinkEndDataObject(QUmlLinkEndData *qModelingObject);
+ virtual ~QUmlLinkEndDataObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [LinkEndData]
+ Q_INVOKABLE QObject *end() const;
+ Q_INVOKABLE const QSet<QObject *> qualifier() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [LinkEndData]
+ void setEnd(QObject *end = 0);
+ void addQualifier(QObject *qualifier);
+ void removeQualifier(QObject *qualifier);
+ void setValue(QObject *value = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLINKENDDATAOBJECT_H
+
diff --git a/src/uml/qobjects/qumllinkenddestructiondataobject.cpp b/src/uml/qobjects/qumllinkenddestructiondataobject.cpp
new file mode 100644
index 00000000..c62a8a0d
--- /dev/null
+++ b/src/uml/qobjects/qumllinkenddestructiondataobject.cpp
@@ -0,0 +1,197 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumllinkenddestructiondataobject_p.h"
+
+#include <QtUml/QUmlLinkEndDestructionData>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlQualifierValue>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLinkEndDestructionDataObject::QUmlLinkEndDestructionDataObject(QUmlLinkEndDestructionData *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLinkEndDestructionDataObject::~QUmlLinkEndDestructionDataObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLinkEndDestructionDataObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLinkEndDestructionDataObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLinkEndDestructionDataObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [LinkEndData]
+
+QObject *QUmlLinkEndDestructionDataObject::end() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->end()->asQObject();
+}
+
+const QSet<QObject *> QUmlLinkEndDestructionDataObject::qualifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlQualifierValue *element, qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->qualifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLinkEndDestructionDataObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->value()->asQObject();
+}
+
+// OWNED ATTRIBUTES [LinkEndDestructionData]
+
+QObject *QUmlLinkEndDestructionDataObject::destroyAt() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->destroyAt()->asQObject();
+}
+
+bool QUmlLinkEndDestructionDataObject::isDestroyDuplicates() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->isDestroyDuplicates();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLinkEndDestructionDataObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLinkEndDestructionDataObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLinkEndDestructionDataObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLinkEndDestructionDataObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLinkEndDestructionDataObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLinkEndDestructionDataObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLinkEndDestructionDataObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkEndData]
+
+void QUmlLinkEndDestructionDataObject::setEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->setEnd(qmodelingobjectproperty_cast<QUmlProperty *>(end));
+}
+
+void QUmlLinkEndDestructionDataObject::addQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->addQualifier(qmodelingobjectproperty_cast<QUmlQualifierValue *>(qualifier));
+}
+
+void QUmlLinkEndDestructionDataObject::removeQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->removeQualifier(qmodelingobjectproperty_cast<QUmlQualifierValue *>(qualifier));
+}
+
+void QUmlLinkEndDestructionDataObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkEndDestructionData]
+
+void QUmlLinkEndDestructionDataObject::setDestroyAt(QObject *destroyAt)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->setDestroyAt(qmodelingobjectproperty_cast<QUmlInputPin *>(destroyAt));
+}
+
+void QUmlLinkEndDestructionDataObject::setDestroyDuplicates(bool isDestroyDuplicates)
+{
+ qmodelingobjectproperty_cast<QUmlLinkEndDestructionData *>(this)->setDestroyDuplicates(isDestroyDuplicates);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumllinkenddestructiondataobject_p.h b/src/uml/qobjects/qumllinkenddestructiondataobject_p.h
new file mode 100644
index 00000000..c47a55a5
--- /dev/null
+++ b/src/uml/qobjects/qumllinkenddestructiondataobject_p.h
@@ -0,0 +1,120 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLINKENDDESTRUCTIONDATAOBJECT_H
+#define QUMLLINKENDDESTRUCTIONDATAOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLinkEndDestructionData;
+class Q_UML_EXPORT QUmlLinkEndDestructionDataObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [LinkEndData]
+ Q_PROPERTY(QObject * end READ end)
+ Q_PROPERTY(QSet<QObject *> qualifier READ qualifier)
+ Q_PROPERTY(QObject * value READ value)
+
+ // Properties [LinkEndDestructionData]
+ Q_PROPERTY(QObject * destroyAt READ destroyAt)
+ Q_PROPERTY(bool isDestroyDuplicates READ isDestroyDuplicates)
+
+public:
+ Q_INVOKABLE explicit QUmlLinkEndDestructionDataObject(QUmlLinkEndDestructionData *qModelingObject);
+ virtual ~QUmlLinkEndDestructionDataObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [LinkEndData]
+ Q_INVOKABLE QObject *end() const;
+ Q_INVOKABLE const QSet<QObject *> qualifier() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Owned attributes [LinkEndDestructionData]
+ Q_INVOKABLE QObject *destroyAt() const;
+ Q_INVOKABLE bool isDestroyDuplicates() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [LinkEndData]
+ void setEnd(QObject *end = 0);
+ void addQualifier(QObject *qualifier);
+ void removeQualifier(QObject *qualifier);
+ void setValue(QObject *value = 0);
+
+ // Slots for owned attributes [LinkEndDestructionData]
+ void setDestroyAt(QObject *destroyAt = 0);
+ void setDestroyDuplicates(bool isDestroyDuplicates);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLINKENDDESTRUCTIONDATAOBJECT_H
+
diff --git a/src/uml/qobjects/qumlliteralbooleanobject.cpp b/src/uml/qobjects/qumlliteralbooleanobject.cpp
new file mode 100644
index 00000000..753ea544
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralbooleanobject.cpp
@@ -0,0 +1,341 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlliteralbooleanobject_p.h"
+
+#include <QtUml/QUmlLiteralBoolean>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLiteralBooleanObject::QUmlLiteralBooleanObject(QUmlLiteralBoolean *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLiteralBooleanObject::~QUmlLiteralBooleanObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLiteralBooleanObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLiteralBooleanObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLiteralBooleanObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLiteralBooleanObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLiteralBooleanObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->name();
+}
+
+QObject *QUmlLiteralBooleanObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLiteralBooleanObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLiteralBooleanObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlLiteralBooleanObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlLiteralBooleanObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlLiteralBooleanObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlLiteralBooleanObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [LiteralBoolean]
+
+bool QUmlLiteralBooleanObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->value();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLiteralBooleanObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralBooleanObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLiteralBooleanObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLiteralBooleanObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralBooleanObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLiteralBooleanObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlLiteralBooleanObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+int QUmlLiteralBooleanObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->integerValue();
+}
+
+bool QUmlLiteralBooleanObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlLiteralBooleanObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->isNull();
+}
+
+double QUmlLiteralBooleanObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->realValue();
+}
+
+QString QUmlLiteralBooleanObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->stringValue();
+}
+
+int QUmlLiteralBooleanObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [LiteralBoolean]
+
+bool QUmlLiteralBooleanObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->booleanValue();
+}
+
+bool QUmlLiteralBooleanObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->isComputable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLiteralBooleanObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralBooleanObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralBooleanObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralBooleanObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralBooleanObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLiteralBooleanObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralBooleanObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralBooleanObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setName(name);
+}
+
+void QUmlLiteralBooleanObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLiteralBooleanObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLiteralBooleanObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlLiteralBooleanObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlLiteralBooleanObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlLiteralBooleanObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlLiteralBooleanObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LiteralBoolean]
+
+void QUmlLiteralBooleanObject::setValue(bool value)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralBoolean *>(this)->setValue(value);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlliteralbooleanobject_p.h b/src/uml/qobjects/qumlliteralbooleanobject_p.h
new file mode 100644
index 00000000..df6ba63a
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralbooleanobject_p.h
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLITERALBOOLEANOBJECT_H
+#define QUMLLITERALBOOLEANOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLiteralBoolean;
+class Q_UML_EXPORT QUmlLiteralBooleanObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [LiteralBoolean]
+ Q_PROPERTY(bool value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlLiteralBooleanObject(QUmlLiteralBoolean *qModelingObject);
+ virtual ~QUmlLiteralBooleanObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [LiteralBoolean]
+ Q_INVOKABLE bool value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [LiteralBoolean]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE bool isComputable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [LiteralBoolean]
+ void setValue(bool value);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLITERALBOOLEANOBJECT_H
+
diff --git a/src/uml/qobjects/qumlliteralintegerobject.cpp b/src/uml/qobjects/qumlliteralintegerobject.cpp
new file mode 100644
index 00000000..a5d858df
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralintegerobject.cpp
@@ -0,0 +1,341 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlliteralintegerobject_p.h"
+
+#include <QtUml/QUmlLiteralInteger>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLiteralIntegerObject::QUmlLiteralIntegerObject(QUmlLiteralInteger *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLiteralIntegerObject::~QUmlLiteralIntegerObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLiteralIntegerObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLiteralIntegerObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLiteralIntegerObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLiteralIntegerObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLiteralIntegerObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->name();
+}
+
+QObject *QUmlLiteralIntegerObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLiteralIntegerObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLiteralIntegerObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlLiteralIntegerObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlLiteralIntegerObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlLiteralIntegerObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlLiteralIntegerObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [LiteralInteger]
+
+int QUmlLiteralIntegerObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->value();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLiteralIntegerObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralIntegerObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLiteralIntegerObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLiteralIntegerObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralIntegerObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLiteralIntegerObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlLiteralIntegerObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlLiteralIntegerObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->booleanValue();
+}
+
+bool QUmlLiteralIntegerObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlLiteralIntegerObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->isNull();
+}
+
+double QUmlLiteralIntegerObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->realValue();
+}
+
+QString QUmlLiteralIntegerObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->stringValue();
+}
+
+int QUmlLiteralIntegerObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [LiteralInteger]
+
+int QUmlLiteralIntegerObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->integerValue();
+}
+
+bool QUmlLiteralIntegerObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->isComputable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLiteralIntegerObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralIntegerObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralIntegerObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralIntegerObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralIntegerObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLiteralIntegerObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralIntegerObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralIntegerObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setName(name);
+}
+
+void QUmlLiteralIntegerObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLiteralIntegerObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLiteralIntegerObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlLiteralIntegerObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlLiteralIntegerObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlLiteralIntegerObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlLiteralIntegerObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LiteralInteger]
+
+void QUmlLiteralIntegerObject::setValue(int value)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralInteger *>(this)->setValue(value);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlliteralintegerobject_p.h b/src/uml/qobjects/qumlliteralintegerobject_p.h
new file mode 100644
index 00000000..aad633a1
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralintegerobject_p.h
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLITERALINTEGEROBJECT_H
+#define QUMLLITERALINTEGEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLiteralInteger;
+class Q_UML_EXPORT QUmlLiteralIntegerObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [LiteralInteger]
+ Q_PROPERTY(int value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlLiteralIntegerObject(QUmlLiteralInteger *qModelingObject);
+ virtual ~QUmlLiteralIntegerObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [LiteralInteger]
+ Q_INVOKABLE int value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [LiteralInteger]
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isComputable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [LiteralInteger]
+ void setValue(int value);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLITERALINTEGEROBJECT_H
+
diff --git a/src/uml/qobjects/qumlliteralnullobject.cpp b/src/uml/qobjects/qumlliteralnullobject.cpp
new file mode 100644
index 00000000..f7ce4912
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralnullobject.cpp
@@ -0,0 +1,327 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlliteralnullobject_p.h"
+
+#include <QtUml/QUmlLiteralNull>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLiteralNullObject::QUmlLiteralNullObject(QUmlLiteralNull *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLiteralNullObject::~QUmlLiteralNullObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLiteralNullObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLiteralNullObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLiteralNullObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLiteralNullObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLiteralNullObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->name();
+}
+
+QObject *QUmlLiteralNullObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLiteralNullObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLiteralNullObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlLiteralNullObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlLiteralNullObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlLiteralNullObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlLiteralNullObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->visibility();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLiteralNullObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralNullObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLiteralNullObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLiteralNullObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralNullObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLiteralNullObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlLiteralNullObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlLiteralNullObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->booleanValue();
+}
+
+int QUmlLiteralNullObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->integerValue();
+}
+
+bool QUmlLiteralNullObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+double QUmlLiteralNullObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->realValue();
+}
+
+QString QUmlLiteralNullObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->stringValue();
+}
+
+int QUmlLiteralNullObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [LiteralNull]
+
+bool QUmlLiteralNullObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->isComputable();
+}
+
+bool QUmlLiteralNullObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->isNull();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLiteralNullObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralNullObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralNullObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralNullObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralNullObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLiteralNullObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralNullObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralNullObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setName(name);
+}
+
+void QUmlLiteralNullObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLiteralNullObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLiteralNullObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlLiteralNullObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlLiteralNullObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlLiteralNullObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlLiteralNullObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralNull *>(this)->setVisibility(visibility);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlliteralnullobject_p.h b/src/uml/qobjects/qumlliteralnullobject_p.h
new file mode 100644
index 00000000..1d890d86
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralnullobject_p.h
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLITERALNULLOBJECT_H
+#define QUMLLITERALNULLOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLiteralNull;
+class Q_UML_EXPORT QUmlLiteralNullObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+public:
+ Q_INVOKABLE explicit QUmlLiteralNullObject(QUmlLiteralNull *qModelingObject);
+ virtual ~QUmlLiteralNullObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [LiteralNull]
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLITERALNULLOBJECT_H
+
diff --git a/src/uml/qobjects/qumlliteralrealobject.cpp b/src/uml/qobjects/qumlliteralrealobject.cpp
new file mode 100644
index 00000000..1cf94225
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralrealobject.cpp
@@ -0,0 +1,341 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlliteralrealobject_p.h"
+
+#include <QtUml/QUmlLiteralReal>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLiteralRealObject::QUmlLiteralRealObject(QUmlLiteralReal *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLiteralRealObject::~QUmlLiteralRealObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLiteralRealObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLiteralRealObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLiteralRealObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLiteralRealObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLiteralRealObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->name();
+}
+
+QObject *QUmlLiteralRealObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLiteralRealObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLiteralRealObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlLiteralRealObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlLiteralRealObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlLiteralRealObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlLiteralRealObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [LiteralReal]
+
+double QUmlLiteralRealObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->value();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLiteralRealObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralRealObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLiteralRealObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLiteralRealObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralRealObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLiteralRealObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlLiteralRealObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlLiteralRealObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->booleanValue();
+}
+
+int QUmlLiteralRealObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->integerValue();
+}
+
+bool QUmlLiteralRealObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlLiteralRealObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->isNull();
+}
+
+QString QUmlLiteralRealObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->stringValue();
+}
+
+int QUmlLiteralRealObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [LiteralReal]
+
+bool QUmlLiteralRealObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->isComputable();
+}
+
+double QUmlLiteralRealObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->realValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLiteralRealObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralRealObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralRealObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralRealObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralRealObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLiteralRealObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralRealObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralRealObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setName(name);
+}
+
+void QUmlLiteralRealObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLiteralRealObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLiteralRealObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlLiteralRealObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlLiteralRealObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlLiteralRealObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlLiteralRealObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LiteralReal]
+
+void QUmlLiteralRealObject::setValue(double value)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralReal *>(this)->setValue(value);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlliteralrealobject_p.h b/src/uml/qobjects/qumlliteralrealobject_p.h
new file mode 100644
index 00000000..61605249
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralrealobject_p.h
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLITERALREALOBJECT_H
+#define QUMLLITERALREALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLiteralReal;
+class Q_UML_EXPORT QUmlLiteralRealObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [LiteralReal]
+ Q_PROPERTY(double value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlLiteralRealObject(QUmlLiteralReal *qModelingObject);
+ virtual ~QUmlLiteralRealObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [LiteralReal]
+ Q_INVOKABLE double value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [LiteralReal]
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE double realValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [LiteralReal]
+ void setValue(double value);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLITERALREALOBJECT_H
+
diff --git a/src/uml/qobjects/qumlliteralstringobject.cpp b/src/uml/qobjects/qumlliteralstringobject.cpp
new file mode 100644
index 00000000..7d86d9a5
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralstringobject.cpp
@@ -0,0 +1,341 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlliteralstringobject_p.h"
+
+#include <QtUml/QUmlLiteralString>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLiteralStringObject::QUmlLiteralStringObject(QUmlLiteralString *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLiteralStringObject::~QUmlLiteralStringObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLiteralStringObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLiteralStringObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLiteralStringObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLiteralStringObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLiteralStringObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->name();
+}
+
+QObject *QUmlLiteralStringObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLiteralStringObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLiteralStringObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlLiteralStringObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlLiteralStringObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlLiteralStringObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlLiteralStringObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [LiteralString]
+
+QString QUmlLiteralStringObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->value();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLiteralStringObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralStringObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLiteralStringObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLiteralStringObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralStringObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLiteralStringObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlLiteralStringObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlLiteralStringObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->booleanValue();
+}
+
+int QUmlLiteralStringObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->integerValue();
+}
+
+bool QUmlLiteralStringObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlLiteralStringObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->isNull();
+}
+
+double QUmlLiteralStringObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->realValue();
+}
+
+int QUmlLiteralStringObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [LiteralString]
+
+bool QUmlLiteralStringObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->isComputable();
+}
+
+QString QUmlLiteralStringObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->stringValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLiteralStringObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralStringObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralStringObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralStringObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralStringObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLiteralStringObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralStringObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralStringObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setName(name);
+}
+
+void QUmlLiteralStringObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLiteralStringObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLiteralStringObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlLiteralStringObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlLiteralStringObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlLiteralStringObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlLiteralStringObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LiteralString]
+
+void QUmlLiteralStringObject::setValue(QString value)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralString *>(this)->setValue(value);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlliteralstringobject_p.h b/src/uml/qobjects/qumlliteralstringobject_p.h
new file mode 100644
index 00000000..d98f8b04
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralstringobject_p.h
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLITERALSTRINGOBJECT_H
+#define QUMLLITERALSTRINGOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLiteralString;
+class Q_UML_EXPORT QUmlLiteralStringObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [LiteralString]
+ Q_PROPERTY(QString value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlLiteralStringObject(QUmlLiteralString *qModelingObject);
+ virtual ~QUmlLiteralStringObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [LiteralString]
+ Q_INVOKABLE QString value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [LiteralString]
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE QString stringValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [LiteralString]
+ void setValue(QString value);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLITERALSTRINGOBJECT_H
+
diff --git a/src/uml/qobjects/qumlliteralunlimitednaturalobject.cpp b/src/uml/qobjects/qumlliteralunlimitednaturalobject.cpp
new file mode 100644
index 00000000..6d4ee86e
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralunlimitednaturalobject.cpp
@@ -0,0 +1,340 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlliteralunlimitednaturalobject_p.h"
+
+#include <QtUml/QUmlLiteralUnlimitedNatural>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLiteralUnlimitedNaturalObject::QUmlLiteralUnlimitedNaturalObject(QUmlLiteralUnlimitedNatural *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLiteralUnlimitedNaturalObject::~QUmlLiteralUnlimitedNaturalObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLiteralUnlimitedNaturalObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLiteralUnlimitedNaturalObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLiteralUnlimitedNaturalObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLiteralUnlimitedNaturalObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLiteralUnlimitedNaturalObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->name();
+}
+
+QObject *QUmlLiteralUnlimitedNaturalObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLiteralUnlimitedNaturalObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLiteralUnlimitedNaturalObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlLiteralUnlimitedNaturalObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlLiteralUnlimitedNaturalObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlLiteralUnlimitedNaturalObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlLiteralUnlimitedNaturalObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [LiteralUnlimitedNatural]
+
+int QUmlLiteralUnlimitedNaturalObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->value();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLiteralUnlimitedNaturalObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralUnlimitedNaturalObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLiteralUnlimitedNaturalObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLiteralUnlimitedNaturalObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLiteralUnlimitedNaturalObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLiteralUnlimitedNaturalObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlLiteralUnlimitedNaturalObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlLiteralUnlimitedNaturalObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->booleanValue();
+}
+
+int QUmlLiteralUnlimitedNaturalObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->integerValue();
+}
+
+bool QUmlLiteralUnlimitedNaturalObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlLiteralUnlimitedNaturalObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->isNull();
+}
+
+double QUmlLiteralUnlimitedNaturalObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->realValue();
+}
+
+QString QUmlLiteralUnlimitedNaturalObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->stringValue();
+}
+// OPERATIONS [LiteralUnlimitedNatural]
+
+bool QUmlLiteralUnlimitedNaturalObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->isComputable();
+}
+
+int QUmlLiteralUnlimitedNaturalObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLiteralUnlimitedNaturalObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLiteralUnlimitedNaturalObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setName(name);
+}
+
+void QUmlLiteralUnlimitedNaturalObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlLiteralUnlimitedNaturalObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlLiteralUnlimitedNaturalObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlLiteralUnlimitedNaturalObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlLiteralUnlimitedNaturalObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LiteralUnlimitedNatural]
+
+void QUmlLiteralUnlimitedNaturalObject::setValue(int value)
+{
+ qmodelingobjectproperty_cast<QUmlLiteralUnlimitedNatural *>(this)->setValue(value);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlliteralunlimitednaturalobject_p.h b/src/uml/qobjects/qumlliteralunlimitednaturalobject_p.h
new file mode 100644
index 00000000..9aa3dd05
--- /dev/null
+++ b/src/uml/qobjects/qumlliteralunlimitednaturalobject_p.h
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLITERALUNLIMITEDNATURALOBJECT_H
+#define QUMLLITERALUNLIMITEDNATURALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLiteralUnlimitedNatural;
+class Q_UML_EXPORT QUmlLiteralUnlimitedNaturalObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [LiteralUnlimitedNatural]
+ Q_PROPERTY(int value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlLiteralUnlimitedNaturalObject(QUmlLiteralUnlimitedNatural *qModelingObject);
+ virtual ~QUmlLiteralUnlimitedNaturalObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [LiteralUnlimitedNatural]
+ Q_INVOKABLE int value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+
+ // Operations [LiteralUnlimitedNatural]
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [LiteralUnlimitedNatural]
+ void setValue(int value);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLITERALUNLIMITEDNATURALOBJECT_H
+
diff --git a/src/uml/qobjects/qumlloopnodeobject.cpp b/src/uml/qobjects/qumlloopnodeobject.cpp
new file mode 100644
index 00000000..595044a0
--- /dev/null
+++ b/src/uml/qobjects/qumlloopnodeobject.cpp
@@ -0,0 +1,995 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlloopnodeobject_p.h"
+
+#include <QtUml/QUmlLoopNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlExecutableNode>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlLoopNodeObject::QUmlLoopNodeObject(QUmlLoopNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlLoopNodeObject::~QUmlLoopNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlLoopNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLoopNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlLoopNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlLoopNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->name();
+}
+
+QObject *QUmlLoopNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlLoopNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlLoopNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlLoopNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlLoopNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+const QSet<QObject *> QUmlLoopNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLoopNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlLoopNodeObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlLoopNodeObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlLoopNodeObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlLoopNodeObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlLoopNodeObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlLoopNodeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlLoopNodeObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLoopNodeObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StructuredActivityNode]
+
+QObject *QUmlLoopNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLoopNodeObject::mustIsolate() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->mustIsolate();
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::variable() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVariable *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->variable())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [LoopNode]
+
+const QList<QObject *> QUmlLoopNodeObject::bodyOutput() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->bodyOutput())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::bodyPart() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExecutableNode *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->bodyPart())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlLoopNodeObject::decider() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->decider()->asQObject();
+}
+
+bool QUmlLoopNodeObject::isTestedFirst() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->isTestedFirst();
+}
+
+const QList<QObject *> QUmlLoopNodeObject::loopVariable() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->loopVariable())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlLoopNodeObject::loopVariableInput() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->loopVariableInput())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlLoopNodeObject::result() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->result())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::setupPart() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExecutableNode *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setupPart())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlLoopNodeObject::test() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExecutableNode *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->test())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlLoopNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLoopNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlLoopNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlLoopNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLoopNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlLoopNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlLoopNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlLoopNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlLoopNodeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlLoopNodeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlLoopNodeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlLoopNodeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->membersAreDistinguishable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlLoopNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLoopNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlLoopNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLoopNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlLoopNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlLoopNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLoopNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlLoopNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setName(name);
+}
+
+void QUmlLoopNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlLoopNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlLoopNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlLoopNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlLoopNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlLoopNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlLoopNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlLoopNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlLoopNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlLoopNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlLoopNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlLoopNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlLoopNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlLoopNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlLoopNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlLoopNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlLoopNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlLoopNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlLoopNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlLoopNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlLoopNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlLoopNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlLoopNodeObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlLoopNodeObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlLoopNodeObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlLoopNodeObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlLoopNodeObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlLoopNodeObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlLoopNodeObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlLoopNodeObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlLoopNodeObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlLoopNodeObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlLoopNodeObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlLoopNodeObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlLoopNodeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlLoopNodeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlLoopNodeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlLoopNodeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlLoopNodeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlLoopNodeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlLoopNodeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlLoopNodeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlLoopNodeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlLoopNodeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlLoopNodeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlLoopNodeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlLoopNodeObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlLoopNodeObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlLoopNodeObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlLoopNodeObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlLoopNodeObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlLoopNodeObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlLoopNodeObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
+
+void QUmlLoopNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlLoopNodeObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlLoopNodeObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlLoopNodeObject::setMustIsolate(bool mustIsolate)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setMustIsolate(mustIsolate);
+}
+
+void QUmlLoopNodeObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlLoopNodeObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlLoopNodeObject::addVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+void QUmlLoopNodeObject::removeVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LoopNode]
+
+void QUmlLoopNodeObject::addBodyOutput(QObject *bodyOutput)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addBodyOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(bodyOutput));
+}
+
+void QUmlLoopNodeObject::removeBodyOutput(QObject *bodyOutput)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeBodyOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(bodyOutput));
+}
+
+void QUmlLoopNodeObject::addBodyPart(QObject *bodyPart)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addBodyPart(qmodelingobjectproperty_cast<QUmlExecutableNode *>(bodyPart));
+}
+
+void QUmlLoopNodeObject::removeBodyPart(QObject *bodyPart)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeBodyPart(qmodelingobjectproperty_cast<QUmlExecutableNode *>(bodyPart));
+}
+
+void QUmlLoopNodeObject::setDecider(QObject *decider)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setDecider(qmodelingobjectproperty_cast<QUmlOutputPin *>(decider));
+}
+
+void QUmlLoopNodeObject::setTestedFirst(bool isTestedFirst)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->setTestedFirst(isTestedFirst);
+}
+
+void QUmlLoopNodeObject::addLoopVariable(QObject *loopVariable)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addLoopVariable(qmodelingobjectproperty_cast<QUmlOutputPin *>(loopVariable));
+}
+
+void QUmlLoopNodeObject::removeLoopVariable(QObject *loopVariable)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeLoopVariable(qmodelingobjectproperty_cast<QUmlOutputPin *>(loopVariable));
+}
+
+void QUmlLoopNodeObject::addLoopVariableInput(QObject *loopVariableInput)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addLoopVariableInput(qmodelingobjectproperty_cast<QUmlInputPin *>(loopVariableInput));
+}
+
+void QUmlLoopNodeObject::removeLoopVariableInput(QObject *loopVariableInput)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeLoopVariableInput(qmodelingobjectproperty_cast<QUmlInputPin *>(loopVariableInput));
+}
+
+void QUmlLoopNodeObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlLoopNodeObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlLoopNodeObject::addSetupPart(QObject *setupPart)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addSetupPart(qmodelingobjectproperty_cast<QUmlExecutableNode *>(setupPart));
+}
+
+void QUmlLoopNodeObject::removeSetupPart(QObject *setupPart)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeSetupPart(qmodelingobjectproperty_cast<QUmlExecutableNode *>(setupPart));
+}
+
+void QUmlLoopNodeObject::addTest(QObject *test)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->addTest(qmodelingobjectproperty_cast<QUmlExecutableNode *>(test));
+}
+
+void QUmlLoopNodeObject::removeTest(QObject *test)
+{
+ qmodelingobjectproperty_cast<QUmlLoopNode *>(this)->removeTest(qmodelingobjectproperty_cast<QUmlExecutableNode *>(test));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlloopnodeobject_p.h b/src/uml/qobjects/qumlloopnodeobject_p.h
new file mode 100644
index 00000000..2e6badef
--- /dev/null
+++ b/src/uml/qobjects/qumlloopnodeobject_p.h
@@ -0,0 +1,338 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLLOOPNODEOBJECT_H
+#define QUMLLOOPNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlLoopNode;
+class Q_UML_EXPORT QUmlLoopNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [StructuredActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(bool mustIsolate READ mustIsolate)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+ Q_PROPERTY(QSet<QObject *> variable READ variable)
+
+ // Properties [LoopNode]
+ Q_PROPERTY(QList<QObject *> bodyOutput READ bodyOutput)
+ Q_PROPERTY(QSet<QObject *> bodyPart READ bodyPart)
+ Q_PROPERTY(QObject * decider READ decider)
+ Q_PROPERTY(bool isTestedFirst READ isTestedFirst)
+ Q_PROPERTY(QList<QObject *> loopVariable READ loopVariable)
+ Q_PROPERTY(QList<QObject *> loopVariableInput READ loopVariableInput)
+ Q_PROPERTY(QList<QObject *> result READ result)
+ Q_PROPERTY(QSet<QObject *> setupPart READ setupPart)
+ Q_PROPERTY(QSet<QObject *> test READ test)
+
+public:
+ Q_INVOKABLE explicit QUmlLoopNodeObject(QUmlLoopNode *qModelingObject);
+ virtual ~QUmlLoopNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [StructuredActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE bool mustIsolate() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+ Q_INVOKABLE const QSet<QObject *> variable() const;
+
+ // Owned attributes [LoopNode]
+ Q_INVOKABLE const QList<QObject *> bodyOutput() const;
+ Q_INVOKABLE const QSet<QObject *> bodyPart() const;
+ Q_INVOKABLE QObject *decider() const;
+ Q_INVOKABLE bool isTestedFirst() const;
+ Q_INVOKABLE const QList<QObject *> loopVariable() const;
+ Q_INVOKABLE const QList<QObject *> loopVariableInput() const;
+ Q_INVOKABLE const QList<QObject *> result() const;
+ Q_INVOKABLE const QSet<QObject *> setupPart() const;
+ Q_INVOKABLE const QSet<QObject *> test() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [StructuredActivityNode]
+ void setActivity(QObject *activity = 0);
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void setMustIsolate(bool mustIsolate);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+ void addVariable(QObject *variable);
+ void removeVariable(QObject *variable);
+
+ // Slots for owned attributes [LoopNode]
+ void addBodyOutput(QObject *bodyOutput);
+ void removeBodyOutput(QObject *bodyOutput);
+ void addBodyPart(QObject *bodyPart);
+ void removeBodyPart(QObject *bodyPart);
+ void setDecider(QObject *decider = 0);
+ void setTestedFirst(bool isTestedFirst);
+ void addLoopVariable(QObject *loopVariable);
+ void removeLoopVariable(QObject *loopVariable);
+ void addLoopVariableInput(QObject *loopVariableInput);
+ void removeLoopVariableInput(QObject *loopVariableInput);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+ void addSetupPart(QObject *setupPart);
+ void removeSetupPart(QObject *setupPart);
+ void addTest(QObject *test);
+ void removeTest(QObject *test);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLLOOPNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlmanifestationobject.cpp b/src/uml/qobjects/qumlmanifestationobject.cpp
new file mode 100644
index 00000000..e0e1a1b7
--- /dev/null
+++ b/src/uml/qobjects/qumlmanifestationobject.cpp
@@ -0,0 +1,405 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlmanifestationobject_p.h"
+
+#include <QtUml/QUmlManifestation>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlManifestationObject::QUmlManifestationObject(QUmlManifestation *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlManifestationObject::~QUmlManifestationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlManifestationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlManifestationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlManifestationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlManifestationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlManifestationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlManifestationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlManifestationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->name();
+}
+
+QObject *QUmlManifestationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlManifestationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlManifestationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlManifestationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlManifestationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlManifestationObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlManifestationObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlManifestationObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlManifestationObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Abstraction]
+
+QObject *QUmlManifestationObject::mapping() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->mapping()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Manifestation]
+
+QObject *QUmlManifestationObject::utilizedElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->utilizedElement()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlManifestationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlManifestationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlManifestationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlManifestationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlManifestationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlManifestationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlManifestation *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlManifestationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlManifestationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlManifestation *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlManifestationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlManifestationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlManifestationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlManifestationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlManifestationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlManifestationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlManifestationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlManifestationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlManifestationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlManifestationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setName(name);
+}
+
+void QUmlManifestationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlManifestationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlManifestationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlManifestationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlManifestationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlManifestationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlManifestationObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlManifestationObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlManifestationObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlManifestationObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlManifestationObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlManifestationObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlManifestationObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlManifestationObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+
+void QUmlManifestationObject::setMapping(QObject *mapping)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setMapping(qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(mapping));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Manifestation]
+
+void QUmlManifestationObject::setUtilizedElement(QObject *utilizedElement)
+{
+ qmodelingobjectproperty_cast<QUmlManifestation *>(this)->setUtilizedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(utilizedElement));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlmanifestationobject_p.h b/src/uml/qobjects/qumlmanifestationobject_p.h
new file mode 100644
index 00000000..0e1b612f
--- /dev/null
+++ b/src/uml/qobjects/qumlmanifestationobject_p.h
@@ -0,0 +1,203 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLMANIFESTATIONOBJECT_H
+#define QUMLMANIFESTATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlManifestation;
+class Q_UML_EXPORT QUmlManifestationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Abstraction]
+ Q_PROPERTY(QObject * mapping READ mapping)
+
+ // Properties [Manifestation]
+ Q_PROPERTY(QObject * utilizedElement READ utilizedElement)
+
+public:
+ Q_INVOKABLE explicit QUmlManifestationObject(QUmlManifestation *qModelingObject);
+ virtual ~QUmlManifestationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Abstraction]
+ Q_INVOKABLE QObject *mapping() const;
+
+ // Owned attributes [Manifestation]
+ Q_INVOKABLE QObject *utilizedElement() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Abstraction]
+ void setMapping(QObject *mapping = 0);
+
+ // Slots for owned attributes [Manifestation]
+ void setUtilizedElement(QObject *utilizedElement = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLMANIFESTATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlmergenodeobject.cpp b/src/uml/qobjects/qumlmergenodeobject.cpp
new file mode 100644
index 00000000..86e14cfe
--- /dev/null
+++ b/src/uml/qobjects/qumlmergenodeobject.cpp
@@ -0,0 +1,436 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlmergenodeobject_p.h"
+
+#include <QtUml/QUmlMergeNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlMergeNodeObject::QUmlMergeNodeObject(QUmlMergeNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlMergeNodeObject::~QUmlMergeNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlMergeNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlMergeNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlMergeNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlMergeNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->name();
+}
+
+QObject *QUmlMergeNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlMergeNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlMergeNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlMergeNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlMergeNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlMergeNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlMergeNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMergeNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlMergeNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlMergeNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlMergeNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlMergeNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlMergeNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlMergeNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlMergeNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlMergeNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlMergeNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlMergeNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlMergeNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlMergeNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlMergeNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlMergeNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlMergeNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlMergeNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setName(name);
+}
+
+void QUmlMergeNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlMergeNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlMergeNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlMergeNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlMergeNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlMergeNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlMergeNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlMergeNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlMergeNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlMergeNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlMergeNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlMergeNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlMergeNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlMergeNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlMergeNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlMergeNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlMergeNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlMergeNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlMergeNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlMergeNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlMergeNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlMergeNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlMergeNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlMergeNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlmergenodeobject_p.h b/src/uml/qobjects/qumlmergenodeobject_p.h
new file mode 100644
index 00000000..68b6ee1e
--- /dev/null
+++ b/src/uml/qobjects/qumlmergenodeobject_p.h
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLMERGENODEOBJECT_H
+#define QUMLMERGENODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlMergeNode;
+class Q_UML_EXPORT QUmlMergeNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlMergeNodeObject(QUmlMergeNode *qModelingObject);
+ virtual ~QUmlMergeNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLMERGENODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlmessageobject.cpp b/src/uml/qobjects/qumlmessageobject.cpp
new file mode 100644
index 00000000..7992e9af
--- /dev/null
+++ b/src/uml/qobjects/qumlmessageobject.cpp
@@ -0,0 +1,329 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlmessageobject_p.h"
+
+#include <QtUml/QUmlMessage>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlMessageEnd>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlMessageObject::QUmlMessageObject(QUmlMessage *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlMessageObject::~QUmlMessageObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlMessageObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMessageObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlMessageObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlMessageObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlMessageObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->name();
+}
+
+QObject *QUmlMessageObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlMessageObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlMessageObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlMessageObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Message]
+
+const QList<QObject *> QUmlMessageObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlValueSpecification *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlMessageObject::connector() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->connector()->asQObject();
+}
+
+QObject *QUmlMessageObject::interaction() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->interaction()->asQObject();
+}
+
+QtUml::MessageKind QUmlMessageObject::messageKind() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->messageKind();
+}
+
+QtUml::MessageSort QUmlMessageObject::messageSort() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->messageSort();
+}
+
+QObject *QUmlMessageObject::receiveEvent() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->receiveEvent()->asQObject();
+}
+
+QObject *QUmlMessageObject::sendEvent() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->sendEvent()->asQObject();
+}
+
+QObject *QUmlMessageObject::signature() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->signature()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlMessageObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlMessageObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlMessageObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlMessageObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlMessage *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlMessageObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlMessageObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessage *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlMessageObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlMessageObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlMessageObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlMessageObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlMessageObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlMessageObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlMessageObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlMessageObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setName(name);
+}
+
+void QUmlMessageObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlMessageObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlMessageObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlMessageObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Message]
+
+void QUmlMessageObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlValueSpecification *>(argument));
+}
+
+void QUmlMessageObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlValueSpecification *>(argument));
+}
+
+void QUmlMessageObject::setConnector(QObject *connector)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setConnector(qmodelingobjectproperty_cast<QUmlConnector *>(connector));
+}
+
+void QUmlMessageObject::setInteraction(QObject *interaction)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(interaction));
+}
+
+void QUmlMessageObject::setMessageKind(QtUml::MessageKind messageKind)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setMessageKind(messageKind);
+}
+
+void QUmlMessageObject::setMessageSort(QtUml::MessageSort messageSort)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setMessageSort(messageSort);
+}
+
+void QUmlMessageObject::setReceiveEvent(QObject *receiveEvent)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setReceiveEvent(qmodelingobjectproperty_cast<QUmlMessageEnd *>(receiveEvent));
+}
+
+void QUmlMessageObject::setSendEvent(QObject *sendEvent)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setSendEvent(qmodelingobjectproperty_cast<QUmlMessageEnd *>(sendEvent));
+}
+
+void QUmlMessageObject::setSignature(QObject *signature)
+{
+ qmodelingobjectproperty_cast<QUmlMessage *>(this)->setSignature(qmodelingobjectproperty_cast<QUmlNamedElement *>(signature));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlmessageobject_p.h b/src/uml/qobjects/qumlmessageobject_p.h
new file mode 100644
index 00000000..64df94c0
--- /dev/null
+++ b/src/uml/qobjects/qumlmessageobject_p.h
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLMESSAGEOBJECT_H
+#define QUMLMESSAGEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlMessage;
+class Q_UML_EXPORT QUmlMessageObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Message]
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * connector READ connector)
+ Q_PROPERTY(QObject * interaction READ interaction)
+ Q_PROPERTY(QtUml::MessageKind messageKind READ messageKind)
+ Q_PROPERTY(QtUml::MessageSort messageSort READ messageSort)
+ Q_PROPERTY(QObject * receiveEvent READ receiveEvent)
+ Q_PROPERTY(QObject * sendEvent READ sendEvent)
+ Q_PROPERTY(QObject * signature READ signature)
+
+public:
+ Q_INVOKABLE explicit QUmlMessageObject(QUmlMessage *qModelingObject);
+ virtual ~QUmlMessageObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Message]
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *connector() const;
+ Q_INVOKABLE QObject *interaction() const;
+ Q_INVOKABLE QtUml::MessageKind messageKind() const;
+ Q_INVOKABLE QtUml::MessageSort messageSort() const;
+ Q_INVOKABLE QObject *receiveEvent() const;
+ Q_INVOKABLE QObject *sendEvent() const;
+ Q_INVOKABLE QObject *signature() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Message]
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setConnector(QObject *connector = 0);
+ void setInteraction(QObject *interaction = 0);
+ void Q_DECL_HIDDEN setMessageKind(QtUml::MessageKind messageKind);
+ void setMessageSort(QtUml::MessageSort messageSort);
+ void setReceiveEvent(QObject *receiveEvent = 0);
+ void setSendEvent(QObject *sendEvent = 0);
+ void setSignature(QObject *signature = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLMESSAGEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlmessageoccurrencespecificationobject.cpp b/src/uml/qobjects/qumlmessageoccurrencespecificationobject.cpp
new file mode 100644
index 00000000..e35072c9
--- /dev/null
+++ b/src/uml/qobjects/qumlmessageoccurrencespecificationobject.cpp
@@ -0,0 +1,344 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlmessageoccurrencespecificationobject_p.h"
+
+#include <QtUml/QUmlMessageOccurrenceSpecification>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlMessage>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlMessageOccurrenceSpecificationObject::QUmlMessageOccurrenceSpecificationObject(QUmlMessageOccurrenceSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlMessageOccurrenceSpecificationObject::~QUmlMessageOccurrenceSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlMessageOccurrenceSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlMessageOccurrenceSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->name();
+}
+
+QObject *QUmlMessageOccurrenceSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlMessageOccurrenceSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlMessageOccurrenceSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlMessageOccurrenceSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+QObject *QUmlMessageOccurrenceSpecificationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlMessageOccurrenceSpecificationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [OccurrenceSpecification]
+
+QObject *QUmlMessageOccurrenceSpecificationObject::covered() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->covered()->asQObject();
+}
+
+const QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::toAfter() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->toAfter())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::toBefore() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->toBefore())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [MessageEnd]
+
+QObject *QUmlMessageOccurrenceSpecificationObject::message() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->message()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlMessageOccurrenceSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlMessageOccurrenceSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlMessageOccurrenceSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlMessageOccurrenceSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlMessageOccurrenceSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlMessageOccurrenceSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlMessageOccurrenceSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setName(name);
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlMessageOccurrenceSpecificationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
+
+void QUmlMessageOccurrenceSpecificationObject::setCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::addToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->addToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::removeToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->removeToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::addToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->addToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+void QUmlMessageOccurrenceSpecificationObject::removeToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->removeToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
+
+void QUmlMessageOccurrenceSpecificationObject::setMessage(QObject *message)
+{
+ qmodelingobjectproperty_cast<QUmlMessageOccurrenceSpecification *>(this)->setMessage(qmodelingobjectproperty_cast<QUmlMessage *>(message));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlmessageoccurrencespecificationobject_p.h b/src/uml/qobjects/qumlmessageoccurrencespecificationobject_p.h
new file mode 100644
index 00000000..26659665
--- /dev/null
+++ b/src/uml/qobjects/qumlmessageoccurrencespecificationobject_p.h
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLMESSAGEOCCURRENCESPECIFICATIONOBJECT_H
+#define QUMLMESSAGEOCCURRENCESPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlMessageOccurrenceSpecification;
+class Q_UML_EXPORT QUmlMessageOccurrenceSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [OccurrenceSpecification]
+ Q_PROPERTY(QObject * covered READ covered)
+ Q_PROPERTY(QSet<QObject *> toAfter READ toAfter)
+ Q_PROPERTY(QSet<QObject *> toBefore READ toBefore)
+
+ // Properties [MessageEnd]
+ Q_PROPERTY(QObject * message READ message)
+
+public:
+ Q_INVOKABLE explicit QUmlMessageOccurrenceSpecificationObject(QUmlMessageOccurrenceSpecification *qModelingObject);
+ virtual ~QUmlMessageOccurrenceSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [OccurrenceSpecification]
+ Q_INVOKABLE QObject *covered() const;
+ Q_INVOKABLE const QSet<QObject *> toAfter() const;
+ Q_INVOKABLE const QSet<QObject *> toBefore() const;
+
+ // Owned attributes [MessageEnd]
+ Q_INVOKABLE QObject *message() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [OccurrenceSpecification]
+ void setCovered(QObject *covered = 0);
+ void addToAfter(QObject *toAfter);
+ void removeToAfter(QObject *toAfter);
+ void addToBefore(QObject *toBefore);
+ void removeToBefore(QObject *toBefore);
+
+ // Slots for owned attributes [MessageEnd]
+ void setMessage(QObject *message = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLMESSAGEOCCURRENCESPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlmodelobject.cpp b/src/uml/qobjects/qumlmodelobject.cpp
new file mode 100644
index 00000000..7d93acf1
--- /dev/null
+++ b/src/uml/qobjects/qumlmodelobject.cpp
@@ -0,0 +1,650 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlmodelobject_p.h"
+
+#include <QtUml/QUmlModel>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlPackageMerge>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProfile>
+#include <QtUml/QUmlProfileApplication>
+#include <QtUml/QUmlStereotype>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlModelObject::QUmlModelObject(QUmlModel *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlModelObject::~QUmlModelObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlModelObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlModelObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlModelObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlModelObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->name();
+}
+
+QObject *QUmlModelObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlModelObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlModelObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlModelObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlModelObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlModelObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlModelObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+QObject *QUmlModelObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlModelObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Package]
+
+QString QUmlModelObject::URI() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->URI();
+}
+
+const QSet<QObject *> QUmlModelObject::nestedPackage() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->nestedPackage())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlModelObject::nestingPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->nestingPackage()->asQObject();
+}
+
+const QSet<QObject *> QUmlModelObject::ownedStereotype() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStereotype *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedStereotype())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::ownedType() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->ownedType())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::packageMerge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageMerge *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->packageMerge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::packagedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->packagedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlModelObject::profileApplication() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProfileApplication *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->profileApplication())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Model]
+
+QString QUmlModelObject::viewpoint() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->viewpoint();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlModelObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlModelObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlModelObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlModelObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlModelObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlModelObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlModelObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlModelObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlModelObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlModelObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlModelObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [TemplateableElement]
+
+bool QUmlModelObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->isTemplate();
+}
+
+QSet<QObject *> QUmlModelObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Package]
+
+QSet<QObject *> QUmlModelObject::allApplicableStereotypes() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStereotype *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->allApplicableStereotypes())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlModelObject::containingProfile() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->containingProfile()->asQObject();
+}
+
+bool QUmlModelObject::makesVisible(QObject *el) const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->makesVisible(qmodelingobjectproperty_cast<QUmlNamedElement *>(el));
+}
+
+bool QUmlModelObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlModel *>(this)->mustBeOwned();
+}
+
+QSet<QObject *> QUmlModelObject::visibleMembers() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlModel *>(this)->visibleMembers())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlModelObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlModelObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlModelObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlModelObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlModelObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlModelObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlModelObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlModelObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setName(name);
+}
+
+void QUmlModelObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlModelObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlModelObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlModelObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlModelObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlModelObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlModelObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlModelObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlModelObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlModelObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlModelObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlModelObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlModelObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlModelObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlModelObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlModelObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlModelObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlModelObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlModelObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlModelObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlModelObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Package]
+
+void QUmlModelObject::setURI(QString URI)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setURI(URI);
+}
+
+void QUmlModelObject::addNestedPackage(QObject *nestedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addNestedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestedPackage));
+}
+
+void QUmlModelObject::removeNestedPackage(QObject *nestedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeNestedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestedPackage));
+}
+
+void QUmlModelObject::setNestingPackage(QObject *nestingPackage)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setNestingPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestingPackage));
+}
+
+void QUmlModelObject::addOwnedStereotype(QObject *ownedStereotype)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addOwnedStereotype(qmodelingobjectproperty_cast<QUmlStereotype *>(ownedStereotype));
+}
+
+void QUmlModelObject::removeOwnedStereotype(QObject *ownedStereotype)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeOwnedStereotype(qmodelingobjectproperty_cast<QUmlStereotype *>(ownedStereotype));
+}
+
+void QUmlModelObject::addOwnedType(QObject *ownedType)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addOwnedType(qmodelingobjectproperty_cast<QUmlType *>(ownedType));
+}
+
+void QUmlModelObject::removeOwnedType(QObject *ownedType)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeOwnedType(qmodelingobjectproperty_cast<QUmlType *>(ownedType));
+}
+
+void QUmlModelObject::addPackageMerge(QObject *packageMerge)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addPackageMerge(qmodelingobjectproperty_cast<QUmlPackageMerge *>(packageMerge));
+}
+
+void QUmlModelObject::removePackageMerge(QObject *packageMerge)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removePackageMerge(qmodelingobjectproperty_cast<QUmlPackageMerge *>(packageMerge));
+}
+
+void QUmlModelObject::addPackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addPackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlModelObject::removePackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removePackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlModelObject::addProfileApplication(QObject *profileApplication)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->addProfileApplication(qmodelingobjectproperty_cast<QUmlProfileApplication *>(profileApplication));
+}
+
+void QUmlModelObject::removeProfileApplication(QObject *profileApplication)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->removeProfileApplication(qmodelingobjectproperty_cast<QUmlProfileApplication *>(profileApplication));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Model]
+
+void QUmlModelObject::setViewpoint(QString viewpoint)
+{
+ qmodelingobjectproperty_cast<QUmlModel *>(this)->setViewpoint(viewpoint);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlmodelobject_p.h b/src/uml/qobjects/qumlmodelobject_p.h
new file mode 100644
index 00000000..addf5ffd
--- /dev/null
+++ b/src/uml/qobjects/qumlmodelobject_p.h
@@ -0,0 +1,251 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLMODELOBJECT_H
+#define QUMLMODELOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlModel;
+class Q_UML_EXPORT QUmlModelObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Package]
+ Q_PROPERTY(QString URI READ URI)
+ Q_PROPERTY(QSet<QObject *> nestedPackage READ nestedPackage)
+ Q_PROPERTY(QObject * nestingPackage READ nestingPackage)
+ Q_PROPERTY(QSet<QObject *> ownedStereotype READ ownedStereotype)
+ Q_PROPERTY(QSet<QObject *> ownedType READ ownedType)
+ Q_PROPERTY(QSet<QObject *> packageMerge READ packageMerge)
+ Q_PROPERTY(QSet<QObject *> packagedElement READ packagedElement)
+ Q_PROPERTY(QSet<QObject *> profileApplication READ profileApplication)
+
+ // Properties [Model]
+ Q_PROPERTY(QString viewpoint READ viewpoint)
+
+public:
+ Q_INVOKABLE explicit QUmlModelObject(QUmlModel *qModelingObject);
+ virtual ~QUmlModelObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Package]
+ Q_INVOKABLE QString URI() const;
+ Q_INVOKABLE const QSet<QObject *> nestedPackage() const;
+ Q_INVOKABLE QObject *nestingPackage() const;
+ Q_INVOKABLE const QSet<QObject *> ownedStereotype() const;
+ Q_INVOKABLE const QSet<QObject *> ownedType() const;
+ Q_INVOKABLE const QSet<QObject *> packageMerge() const;
+ Q_INVOKABLE const QSet<QObject *> packagedElement() const;
+ Q_INVOKABLE const QSet<QObject *> profileApplication() const;
+
+ // Owned attributes [Model]
+ Q_INVOKABLE QString viewpoint() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Package]
+ Q_INVOKABLE QSet<QObject *> allApplicableStereotypes() const;
+ Q_INVOKABLE QObject *containingProfile() const;
+ Q_INVOKABLE bool makesVisible(QObject *el) const;
+ Q_INVOKABLE bool mustBeOwned() const;
+ Q_INVOKABLE QSet<QObject *> visibleMembers() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TemplateableElement]
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Package]
+ void setURI(QString URI);
+ void addNestedPackage(QObject *nestedPackage);
+ void removeNestedPackage(QObject *nestedPackage);
+ void setNestingPackage(QObject *nestingPackage = 0);
+ void Q_DECL_HIDDEN addOwnedStereotype(QObject *ownedStereotype);
+ void Q_DECL_HIDDEN removeOwnedStereotype(QObject *ownedStereotype);
+ void addOwnedType(QObject *ownedType);
+ void removeOwnedType(QObject *ownedType);
+ void addPackageMerge(QObject *packageMerge);
+ void removePackageMerge(QObject *packageMerge);
+ void addPackagedElement(QObject *packagedElement);
+ void removePackagedElement(QObject *packagedElement);
+ void addProfileApplication(QObject *profileApplication);
+ void removeProfileApplication(QObject *profileApplication);
+
+ // Slots for owned attributes [Model]
+ void setViewpoint(QString viewpoint);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLMODELOBJECT_H
+
diff --git a/src/uml/qobjects/qumlnodeobject.cpp b/src/uml/qobjects/qumlnodeobject.cpp
new file mode 100644
index 00000000..93c9f8a2
--- /dev/null
+++ b/src/uml/qobjects/qumlnodeobject.cpp
@@ -0,0 +1,1159 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlnodeobject_p.h"
+
+#include <QtUml/QUmlNode>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlNodeObject::QUmlNodeObject(QUmlNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlNodeObject::~QUmlNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->name();
+}
+
+QObject *QUmlNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlNodeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlNodeObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlNodeObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlNodeObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlNodeObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlNodeObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlNodeObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlNodeObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlNodeObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlNodeObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlNodeObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlNodeObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlNodeObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlNodeObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlNodeObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlNodeObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isAbstract();
+}
+
+bool QUmlNodeObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlNodeObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlNodeObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlNodeObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlNodeObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlNodeObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlNodeObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Node]
+
+const QSet<QObject *> QUmlNodeObject::nestedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNode *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->nestedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlNodeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlNodeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlNodeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlNodeObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlNodeObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlNodeObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlNodeObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlNodeObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlNodeObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlNodeObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlNodeObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->isTemplate();
+}
+
+bool QUmlNodeObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlNode *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlNodeObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlNodeObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlNode *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setName(name);
+}
+
+void QUmlNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlNodeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlNodeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlNodeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlNodeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlNodeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlNodeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlNodeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlNodeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlNodeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlNodeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlNodeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlNodeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlNodeObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlNodeObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlNodeObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlNodeObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlNodeObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlNodeObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlNodeObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlNodeObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlNodeObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlNodeObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlNodeObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlNodeObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlNodeObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlNodeObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlNodeObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlNodeObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlNodeObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlNodeObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlNodeObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlNodeObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlNodeObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlNodeObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlNodeObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlNodeObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlNodeObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlNodeObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlNodeObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlNodeObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlNodeObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlNodeObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlNodeObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlNodeObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlNodeObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlNodeObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlNodeObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlNodeObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlNodeObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlNodeObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlNodeObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlNodeObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlNodeObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlNodeObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlNodeObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlNodeObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlNodeObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->setActive(isActive);
+}
+
+void QUmlNodeObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlNodeObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlNodeObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlNodeObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlNodeObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlNodeObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlNodeObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlNodeObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlNodeObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlNodeObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlNodeObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlNodeObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlNodeObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlNodeObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Node]
+
+void QUmlNodeObject::addNestedNode(QObject *nestedNode)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->addNestedNode(qmodelingobjectproperty_cast<QUmlNode *>(nestedNode));
+}
+
+void QUmlNodeObject::removeNestedNode(QObject *nestedNode)
+{
+ qmodelingobjectproperty_cast<QUmlNode *>(this)->removeNestedNode(qmodelingobjectproperty_cast<QUmlNode *>(nestedNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlnodeobject_p.h b/src/uml/qobjects/qumlnodeobject_p.h
new file mode 100644
index 00000000..52467a02
--- /dev/null
+++ b/src/uml/qobjects/qumlnodeobject_p.h
@@ -0,0 +1,401 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLNODEOBJECT_H
+#define QUMLNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlNode;
+class Q_UML_EXPORT QUmlNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [Node]
+ Q_PROPERTY(QSet<QObject *> nestedNode READ nestedNode)
+
+public:
+ Q_INVOKABLE explicit QUmlNodeObject(QUmlNode *qModelingObject);
+ virtual ~QUmlNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [Node]
+ Q_INVOKABLE const QSet<QObject *> nestedNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [Node]
+ void addNestedNode(QObject *nestedNode);
+ void removeNestedNode(QObject *nestedNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlobjectflowobject.cpp b/src/uml/qobjects/qumlobjectflowobject.cpp
new file mode 100644
index 00000000..a521a0b0
--- /dev/null
+++ b/src/uml/qobjects/qumlobjectflowobject.cpp
@@ -0,0 +1,478 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlobjectflowobject_p.h"
+
+#include <QtUml/QUmlObjectFlow>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlObjectFlowObject::QUmlObjectFlowObject(QUmlObjectFlow *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlObjectFlowObject::~QUmlObjectFlowObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlObjectFlowObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlObjectFlowObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlObjectFlowObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlObjectFlowObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlObjectFlowObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->name();
+}
+
+QObject *QUmlObjectFlowObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlObjectFlowObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlObjectFlowObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlObjectFlowObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlObjectFlowObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlObjectFlowObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlObjectFlowObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityEdge]
+
+QObject *QUmlObjectFlowObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->activity()->asQObject();
+}
+
+QObject *QUmlObjectFlowObject::guard() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->guard()->asQObject();
+}
+
+const QSet<QObject *> QUmlObjectFlowObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlObjectFlowObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlObjectFlowObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->inStructuredNode()->asQObject();
+}
+
+QObject *QUmlObjectFlowObject::interrupts() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->interrupts()->asQObject();
+}
+
+const QSet<QObject *> QUmlObjectFlowObject::redefinedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->redefinedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlObjectFlowObject::source() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->source()->asQObject();
+}
+
+QObject *QUmlObjectFlowObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->target()->asQObject();
+}
+
+QObject *QUmlObjectFlowObject::weight() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->weight()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectFlow]
+
+bool QUmlObjectFlowObject::isMulticast() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->isMulticast();
+}
+
+bool QUmlObjectFlowObject::isMultireceive() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->isMultireceive();
+}
+
+QObject *QUmlObjectFlowObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlObjectFlowObject::transformation() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->transformation()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlObjectFlowObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlObjectFlowObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlObjectFlowObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlObjectFlowObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlObjectFlowObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlObjectFlowObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlObjectFlowObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlObjectFlowObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlObjectFlowObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlObjectFlowObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlObjectFlowObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlObjectFlowObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlObjectFlowObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlObjectFlowObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlObjectFlowObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlObjectFlowObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setName(name);
+}
+
+void QUmlObjectFlowObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlObjectFlowObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlObjectFlowObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlObjectFlowObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlObjectFlowObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlObjectFlowObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlObjectFlowObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlObjectFlowObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlObjectFlowObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityEdge]
+
+void QUmlObjectFlowObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlObjectFlowObject::setGuard(QObject *guard)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setGuard(qmodelingobjectproperty_cast<QUmlValueSpecification *>(guard));
+}
+
+void QUmlObjectFlowObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlObjectFlowObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlObjectFlowObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlObjectFlowObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlObjectFlowObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlObjectFlowObject::setInterrupts(QObject *interrupts)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setInterrupts(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(interrupts));
+}
+
+void QUmlObjectFlowObject::addRedefinedEdge(QObject *redefinedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->addRedefinedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(redefinedEdge));
+}
+
+void QUmlObjectFlowObject::removeRedefinedEdge(QObject *redefinedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->removeRedefinedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(redefinedEdge));
+}
+
+void QUmlObjectFlowObject::setSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setSource(qmodelingobjectproperty_cast<QUmlActivityNode *>(source));
+}
+
+void QUmlObjectFlowObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlActivityNode *>(target));
+}
+
+void QUmlObjectFlowObject::setWeight(QObject *weight)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setWeight(qmodelingobjectproperty_cast<QUmlValueSpecification *>(weight));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectFlow]
+
+void QUmlObjectFlowObject::setMulticast(bool isMulticast)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setMulticast(isMulticast);
+}
+
+void QUmlObjectFlowObject::setMultireceive(bool isMultireceive)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setMultireceive(isMultireceive);
+}
+
+void QUmlObjectFlowObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlObjectFlowObject::setTransformation(QObject *transformation)
+{
+ qmodelingobjectproperty_cast<QUmlObjectFlow *>(this)->setTransformation(qmodelingobjectproperty_cast<QUmlBehavior *>(transformation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlobjectflowobject_p.h b/src/uml/qobjects/qumlobjectflowobject_p.h
new file mode 100644
index 00000000..f8fff320
--- /dev/null
+++ b/src/uml/qobjects/qumlobjectflowobject_p.h
@@ -0,0 +1,203 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOBJECTFLOWOBJECT_H
+#define QUMLOBJECTFLOWOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlObjectFlow;
+class Q_UML_EXPORT QUmlObjectFlowObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityEdge]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QObject * guard READ guard)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QObject * interrupts READ interrupts)
+ Q_PROPERTY(QSet<QObject *> redefinedEdge READ redefinedEdge)
+ Q_PROPERTY(QObject * source READ source)
+ Q_PROPERTY(QObject * target READ target)
+ Q_PROPERTY(QObject * weight READ weight)
+
+ // Properties [ObjectFlow]
+ Q_PROPERTY(bool isMulticast READ isMulticast)
+ Q_PROPERTY(bool isMultireceive READ isMultireceive)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * transformation READ transformation)
+
+public:
+ Q_INVOKABLE explicit QUmlObjectFlowObject(QUmlObjectFlow *qModelingObject);
+ virtual ~QUmlObjectFlowObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityEdge]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE QObject *guard() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE QObject *interrupts() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedEdge() const;
+ Q_INVOKABLE QObject *source() const;
+ Q_INVOKABLE QObject *target() const;
+ Q_INVOKABLE QObject *weight() const;
+
+ // Owned attributes [ObjectFlow]
+ Q_INVOKABLE bool isMulticast() const;
+ Q_INVOKABLE bool isMultireceive() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *transformation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityEdge]
+ void setActivity(QObject *activity = 0);
+ void setGuard(QObject *guard = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void setInterrupts(QObject *interrupts = 0);
+ void addRedefinedEdge(QObject *redefinedEdge);
+ void removeRedefinedEdge(QObject *redefinedEdge);
+ void setSource(QObject *source = 0);
+ void setTarget(QObject *target = 0);
+ void setWeight(QObject *weight = 0);
+
+ // Slots for owned attributes [ObjectFlow]
+ void setMulticast(bool isMulticast);
+ void setMultireceive(bool isMultireceive);
+ void setSelection(QObject *selection = 0);
+ void setTransformation(QObject *transformation = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOBJECTFLOWOBJECT_H
+
diff --git a/src/uml/qobjects/qumloccurrencespecificationobject.cpp b/src/uml/qobjects/qumloccurrencespecificationobject.cpp
new file mode 100644
index 00000000..c0eac910
--- /dev/null
+++ b/src/uml/qobjects/qumloccurrencespecificationobject.cpp
@@ -0,0 +1,329 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumloccurrencespecificationobject_p.h"
+
+#include <QtUml/QUmlOccurrenceSpecification>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOccurrenceSpecificationObject::QUmlOccurrenceSpecificationObject(QUmlOccurrenceSpecification *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOccurrenceSpecificationObject::~QUmlOccurrenceSpecificationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOccurrenceSpecificationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOccurrenceSpecificationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOccurrenceSpecificationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlOccurrenceSpecificationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOccurrenceSpecificationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->name();
+}
+
+QObject *QUmlOccurrenceSpecificationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlOccurrenceSpecificationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlOccurrenceSpecificationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlOccurrenceSpecificationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+QObject *QUmlOccurrenceSpecificationObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlOccurrenceSpecificationObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlOccurrenceSpecificationObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [OccurrenceSpecification]
+
+QObject *QUmlOccurrenceSpecificationObject::covered() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->covered()->asQObject();
+}
+
+const QSet<QObject *> QUmlOccurrenceSpecificationObject::toAfter() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->toAfter())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOccurrenceSpecificationObject::toBefore() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->toBefore())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOccurrenceSpecificationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOccurrenceSpecificationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlOccurrenceSpecificationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOccurrenceSpecificationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOccurrenceSpecificationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlOccurrenceSpecificationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOccurrenceSpecificationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOccurrenceSpecificationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOccurrenceSpecificationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOccurrenceSpecificationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOccurrenceSpecificationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlOccurrenceSpecificationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOccurrenceSpecificationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOccurrenceSpecificationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setName(name);
+}
+
+void QUmlOccurrenceSpecificationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlOccurrenceSpecificationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlOccurrenceSpecificationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlOccurrenceSpecificationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlOccurrenceSpecificationObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlOccurrenceSpecificationObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlOccurrenceSpecificationObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlOccurrenceSpecificationObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
+
+void QUmlOccurrenceSpecificationObject::setCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->setCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlOccurrenceSpecificationObject::addToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->addToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlOccurrenceSpecificationObject::removeToAfter(QObject *toAfter)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->removeToAfter(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toAfter));
+}
+
+void QUmlOccurrenceSpecificationObject::addToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->addToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+void QUmlOccurrenceSpecificationObject::removeToBefore(QObject *toBefore)
+{
+ qmodelingobjectproperty_cast<QUmlOccurrenceSpecification *>(this)->removeToBefore(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(toBefore));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumloccurrencespecificationobject_p.h b/src/uml/qobjects/qumloccurrencespecificationobject_p.h
new file mode 100644
index 00000000..adf205bf
--- /dev/null
+++ b/src/uml/qobjects/qumloccurrencespecificationobject_p.h
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOCCURRENCESPECIFICATIONOBJECT_H
+#define QUMLOCCURRENCESPECIFICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOccurrenceSpecification;
+class Q_UML_EXPORT QUmlOccurrenceSpecificationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [OccurrenceSpecification]
+ Q_PROPERTY(QObject * covered READ covered)
+ Q_PROPERTY(QSet<QObject *> toAfter READ toAfter)
+ Q_PROPERTY(QSet<QObject *> toBefore READ toBefore)
+
+public:
+ Q_INVOKABLE explicit QUmlOccurrenceSpecificationObject(QUmlOccurrenceSpecification *qModelingObject);
+ virtual ~QUmlOccurrenceSpecificationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [OccurrenceSpecification]
+ Q_INVOKABLE QObject *covered() const;
+ Q_INVOKABLE const QSet<QObject *> toAfter() const;
+ Q_INVOKABLE const QSet<QObject *> toBefore() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [OccurrenceSpecification]
+ void setCovered(QObject *covered = 0);
+ void addToAfter(QObject *toAfter);
+ void removeToAfter(QObject *toAfter);
+ void addToBefore(QObject *toBefore);
+ void removeToBefore(QObject *toBefore);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOCCURRENCESPECIFICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlopaqueactionobject.cpp b/src/uml/qobjects/qumlopaqueactionobject.cpp
new file mode 100644
index 00000000..48bfafcb
--- /dev/null
+++ b/src/uml/qobjects/qumlopaqueactionobject.cpp
@@ -0,0 +1,628 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlopaqueactionobject_p.h"
+
+#include <QtUml/QUmlOpaqueAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOpaqueActionObject::QUmlOpaqueActionObject(QUmlOpaqueAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOpaqueActionObject::~QUmlOpaqueActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOpaqueActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlOpaqueActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOpaqueActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->name();
+}
+
+QObject *QUmlOpaqueActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlOpaqueActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlOpaqueActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlOpaqueActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlOpaqueActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlOpaqueActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlOpaqueActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlOpaqueActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlOpaqueActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlOpaqueActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlOpaqueActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [OpaqueAction]
+
+const QList<QString> QUmlOpaqueActionObject::body() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->body();
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::inputValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->inputValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QString> QUmlOpaqueActionObject::language() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->language();
+}
+
+const QSet<QObject *> QUmlOpaqueActionObject::outputValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->outputValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOpaqueActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlOpaqueActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOpaqueActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlOpaqueActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlOpaqueActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlOpaqueActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOpaqueActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOpaqueActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOpaqueActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOpaqueActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOpaqueActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlOpaqueActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOpaqueActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOpaqueActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setName(name);
+}
+
+void QUmlOpaqueActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlOpaqueActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlOpaqueActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlOpaqueActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlOpaqueActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlOpaqueActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOpaqueActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOpaqueActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlOpaqueActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlOpaqueActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlOpaqueActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlOpaqueActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlOpaqueActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlOpaqueActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlOpaqueActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlOpaqueActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlOpaqueActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlOpaqueActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlOpaqueActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlOpaqueActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlOpaqueActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlOpaqueActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlOpaqueActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlOpaqueActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlOpaqueActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlOpaqueActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlOpaqueActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlOpaqueActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlOpaqueActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlOpaqueActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlOpaqueActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlOpaqueActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlOpaqueActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlOpaqueActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlOpaqueActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OpaqueAction]
+
+void QUmlOpaqueActionObject::addBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addBody(body);
+}
+
+void QUmlOpaqueActionObject::removeBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeBody(body);
+}
+
+void QUmlOpaqueActionObject::addInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+void QUmlOpaqueActionObject::removeInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+void QUmlOpaqueActionObject::addLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addLanguage(language);
+}
+
+void QUmlOpaqueActionObject::removeLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeLanguage(language);
+}
+
+void QUmlOpaqueActionObject::addOutputValue(QObject *outputValue)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->addOutputValue(qmodelingobjectproperty_cast<QUmlOutputPin *>(outputValue));
+}
+
+void QUmlOpaqueActionObject::removeOutputValue(QObject *outputValue)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueAction *>(this)->removeOutputValue(qmodelingobjectproperty_cast<QUmlOutputPin *>(outputValue));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlopaqueactionobject_p.h b/src/uml/qobjects/qumlopaqueactionobject_p.h
new file mode 100644
index 00000000..fc4c890c
--- /dev/null
+++ b/src/uml/qobjects/qumlopaqueactionobject_p.h
@@ -0,0 +1,242 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOPAQUEACTIONOBJECT_H
+#define QUMLOPAQUEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOpaqueAction;
+class Q_UML_EXPORT QUmlOpaqueActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [OpaqueAction]
+ Q_PROPERTY(QList<QString> body READ body)
+ Q_PROPERTY(QSet<QObject *> inputValue READ inputValue)
+ Q_PROPERTY(QList<QString> language READ language)
+ Q_PROPERTY(QSet<QObject *> outputValue READ outputValue)
+
+public:
+ Q_INVOKABLE explicit QUmlOpaqueActionObject(QUmlOpaqueAction *qModelingObject);
+ virtual ~QUmlOpaqueActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [OpaqueAction]
+ Q_INVOKABLE const QList<QString> body() const;
+ Q_INVOKABLE const QSet<QObject *> inputValue() const;
+ Q_INVOKABLE const QList<QString> language() const;
+ Q_INVOKABLE const QSet<QObject *> outputValue() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [OpaqueAction]
+ void addBody(QString body);
+ void removeBody(QString body);
+ void addInputValue(QObject *inputValue);
+ void removeInputValue(QObject *inputValue);
+ void addLanguage(QString language);
+ void removeLanguage(QString language);
+ void addOutputValue(QObject *outputValue);
+ void removeOutputValue(QObject *outputValue);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOPAQUEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlopaquebehaviorobject.cpp b/src/uml/qobjects/qumlopaquebehaviorobject.cpp
new file mode 100644
index 00000000..d73cbda0
--- /dev/null
+++ b/src/uml/qobjects/qumlopaquebehaviorobject.cpp
@@ -0,0 +1,1258 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlopaquebehaviorobject_p.h"
+
+#include <QtUml/QUmlOpaqueBehavior>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOpaqueBehaviorObject::QUmlOpaqueBehaviorObject(QUmlOpaqueBehavior *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOpaqueBehaviorObject::~QUmlOpaqueBehaviorObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueBehaviorObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOpaqueBehaviorObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->name();
+}
+
+QObject *QUmlOpaqueBehaviorObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlOpaqueBehaviorObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlOpaqueBehaviorObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlOpaqueBehaviorObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlOpaqueBehaviorObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlOpaqueBehaviorObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlOpaqueBehaviorObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlOpaqueBehaviorObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueBehaviorObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueBehaviorObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlOpaqueBehaviorObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isAbstract();
+}
+
+bool QUmlOpaqueBehaviorObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlOpaqueBehaviorObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlOpaqueBehaviorObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlOpaqueBehaviorObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Behavior]
+
+QObject *QUmlOpaqueBehaviorObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->context()->asQObject();
+}
+
+bool QUmlOpaqueBehaviorObject::isReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isReentrant();
+}
+
+const QList<QObject *> QUmlOpaqueBehaviorObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueBehaviorObject::redefinedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->redefinedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueBehaviorObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [OpaqueBehavior]
+
+const QList<QString> QUmlOpaqueBehaviorObject::body() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->body();
+}
+
+const QList<QString> QUmlOpaqueBehaviorObject::language() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->language();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlOpaqueBehaviorObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlOpaqueBehaviorObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlOpaqueBehaviorObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlOpaqueBehaviorObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlOpaqueBehaviorObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlOpaqueBehaviorObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlOpaqueBehaviorObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlOpaqueBehaviorObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueBehaviorObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->isTemplate();
+}
+
+bool QUmlOpaqueBehaviorObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlOpaqueBehaviorObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOpaqueBehaviorObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOpaqueBehaviorObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlOpaqueBehaviorObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOpaqueBehaviorObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOpaqueBehaviorObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setName(name);
+}
+
+void QUmlOpaqueBehaviorObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlOpaqueBehaviorObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlOpaqueBehaviorObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlOpaqueBehaviorObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlOpaqueBehaviorObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlOpaqueBehaviorObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlOpaqueBehaviorObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlOpaqueBehaviorObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlOpaqueBehaviorObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlOpaqueBehaviorObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlOpaqueBehaviorObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlOpaqueBehaviorObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlOpaqueBehaviorObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlOpaqueBehaviorObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlOpaqueBehaviorObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlOpaqueBehaviorObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOpaqueBehaviorObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOpaqueBehaviorObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlOpaqueBehaviorObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlOpaqueBehaviorObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlOpaqueBehaviorObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlOpaqueBehaviorObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlOpaqueBehaviorObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlOpaqueBehaviorObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlOpaqueBehaviorObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlOpaqueBehaviorObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlOpaqueBehaviorObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlOpaqueBehaviorObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlOpaqueBehaviorObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlOpaqueBehaviorObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlOpaqueBehaviorObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlOpaqueBehaviorObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlOpaqueBehaviorObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlOpaqueBehaviorObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlOpaqueBehaviorObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlOpaqueBehaviorObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlOpaqueBehaviorObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlOpaqueBehaviorObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlOpaqueBehaviorObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlOpaqueBehaviorObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlOpaqueBehaviorObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlOpaqueBehaviorObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlOpaqueBehaviorObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlOpaqueBehaviorObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlOpaqueBehaviorObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlOpaqueBehaviorObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlOpaqueBehaviorObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlOpaqueBehaviorObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlOpaqueBehaviorObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlOpaqueBehaviorObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlOpaqueBehaviorObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlOpaqueBehaviorObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlOpaqueBehaviorObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlOpaqueBehaviorObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlOpaqueBehaviorObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlOpaqueBehaviorObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setActive(isActive);
+}
+
+void QUmlOpaqueBehaviorObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlOpaqueBehaviorObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlOpaqueBehaviorObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlOpaqueBehaviorObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Behavior]
+
+void QUmlOpaqueBehaviorObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setContext(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(context));
+}
+
+void QUmlOpaqueBehaviorObject::setReentrant(bool isReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setReentrant(isReentrant);
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlOpaqueBehaviorObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlOpaqueBehaviorObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlOpaqueBehaviorObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlOpaqueBehaviorObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlOpaqueBehaviorObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlOpaqueBehaviorObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlOpaqueBehaviorObject::addRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlOpaqueBehaviorObject::removeRedefinedBehavior(QObject *redefinedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeRedefinedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(redefinedBehavior));
+}
+
+void QUmlOpaqueBehaviorObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlBehavioralFeature *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OpaqueBehavior]
+
+void QUmlOpaqueBehaviorObject::addBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addBody(body);
+}
+
+void QUmlOpaqueBehaviorObject::removeBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeBody(body);
+}
+
+void QUmlOpaqueBehaviorObject::addLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->addLanguage(language);
+}
+
+void QUmlOpaqueBehaviorObject::removeLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueBehavior *>(this)->removeLanguage(language);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlopaquebehaviorobject_p.h b/src/uml/qobjects/qumlopaquebehaviorobject_p.h
new file mode 100644
index 00000000..b3c64d00
--- /dev/null
+++ b/src/uml/qobjects/qumlopaquebehaviorobject_p.h
@@ -0,0 +1,426 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOPAQUEBEHAVIOROBJECT_H
+#define QUMLOPAQUEBEHAVIOROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOpaqueBehavior;
+class Q_UML_EXPORT QUmlOpaqueBehaviorObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Behavior]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(bool isReentrant READ isReentrant)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QSet<QObject *> redefinedBehavior READ redefinedBehavior)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [OpaqueBehavior]
+ Q_PROPERTY(QList<QString> body READ body)
+ Q_PROPERTY(QList<QString> language READ language)
+
+public:
+ Q_INVOKABLE explicit QUmlOpaqueBehaviorObject(QUmlOpaqueBehavior *qModelingObject);
+ virtual ~QUmlOpaqueBehaviorObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Behavior]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE bool isReentrant() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedBehavior() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [OpaqueBehavior]
+ Q_INVOKABLE const QList<QString> body() const;
+ Q_INVOKABLE const QList<QString> language() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Behavior]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void setReentrant(bool isReentrant);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void addRedefinedBehavior(QObject *redefinedBehavior);
+ void removeRedefinedBehavior(QObject *redefinedBehavior);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [OpaqueBehavior]
+ void addBody(QString body);
+ void removeBody(QString body);
+ void addLanguage(QString language);
+ void removeLanguage(QString language);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOPAQUEBEHAVIOROBJECT_H
+
diff --git a/src/uml/qobjects/qumlopaqueexpressionobject.cpp b/src/uml/qobjects/qumlopaqueexpressionobject.cpp
new file mode 100644
index 00000000..86daa49f
--- /dev/null
+++ b/src/uml/qobjects/qumlopaqueexpressionobject.cpp
@@ -0,0 +1,403 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlopaqueexpressionobject_p.h"
+
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOpaqueExpressionObject::QUmlOpaqueExpressionObject(QUmlOpaqueExpression *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOpaqueExpressionObject::~QUmlOpaqueExpressionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOpaqueExpressionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOpaqueExpressionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOpaqueExpressionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlOpaqueExpressionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOpaqueExpressionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->name();
+}
+
+QObject *QUmlOpaqueExpressionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlOpaqueExpressionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlOpaqueExpressionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlOpaqueExpressionObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlOpaqueExpressionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlOpaqueExpressionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlOpaqueExpressionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [OpaqueExpression]
+
+QObject *QUmlOpaqueExpressionObject::behavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->behavior()->asQObject();
+}
+
+const QList<QString> QUmlOpaqueExpressionObject::body() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->body();
+}
+
+const QList<QString> QUmlOpaqueExpressionObject::language() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->language();
+}
+
+QObject *QUmlOpaqueExpressionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOpaqueExpressionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueExpressionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlOpaqueExpressionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOpaqueExpressionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOpaqueExpressionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlOpaqueExpressionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlOpaqueExpressionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlOpaqueExpressionObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->booleanValue();
+}
+
+int QUmlOpaqueExpressionObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->integerValue();
+}
+
+bool QUmlOpaqueExpressionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlOpaqueExpressionObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isComputable();
+}
+
+bool QUmlOpaqueExpressionObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isNull();
+}
+
+double QUmlOpaqueExpressionObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->realValue();
+}
+
+QString QUmlOpaqueExpressionObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->stringValue();
+}
+
+int QUmlOpaqueExpressionObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [OpaqueExpression]
+
+bool QUmlOpaqueExpressionObject::isIntegral() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isIntegral();
+}
+
+bool QUmlOpaqueExpressionObject::isNonNegative() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isNonNegative();
+}
+
+bool QUmlOpaqueExpressionObject::isPositive() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->isPositive();
+}
+
+int QUmlOpaqueExpressionObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->value();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOpaqueExpressionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOpaqueExpressionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOpaqueExpressionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOpaqueExpressionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOpaqueExpressionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlOpaqueExpressionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOpaqueExpressionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOpaqueExpressionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setName(name);
+}
+
+void QUmlOpaqueExpressionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlOpaqueExpressionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlOpaqueExpressionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlOpaqueExpressionObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlOpaqueExpressionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlOpaqueExpressionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlOpaqueExpressionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OpaqueExpression]
+
+void QUmlOpaqueExpressionObject::setBehavior(QObject *behavior)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(behavior));
+}
+
+void QUmlOpaqueExpressionObject::addBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->addBody(body);
+}
+
+void QUmlOpaqueExpressionObject::removeBody(QString body)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->removeBody(body);
+}
+
+void QUmlOpaqueExpressionObject::addLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->addLanguage(language);
+}
+
+void QUmlOpaqueExpressionObject::removeLanguage(QString language)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->removeLanguage(language);
+}
+
+void QUmlOpaqueExpressionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(this)->setResult(qmodelingobjectproperty_cast<QUmlParameter *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlopaqueexpressionobject_p.h b/src/uml/qobjects/qumlopaqueexpressionobject_p.h
new file mode 100644
index 00000000..0d745a2d
--- /dev/null
+++ b/src/uml/qobjects/qumlopaqueexpressionobject_p.h
@@ -0,0 +1,191 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOPAQUEEXPRESSIONOBJECT_H
+#define QUMLOPAQUEEXPRESSIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOpaqueExpression;
+class Q_UML_EXPORT QUmlOpaqueExpressionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [OpaqueExpression]
+ Q_PROPERTY(QObject * behavior READ behavior)
+ Q_PROPERTY(QList<QString> body READ body)
+ Q_PROPERTY(QList<QString> language READ language)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlOpaqueExpressionObject(QUmlOpaqueExpression *qModelingObject);
+ virtual ~QUmlOpaqueExpressionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [OpaqueExpression]
+ Q_INVOKABLE QObject *behavior() const;
+ Q_INVOKABLE const QList<QString> body() const;
+ Q_INVOKABLE const QList<QString> language() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [OpaqueExpression]
+ Q_INVOKABLE bool isIntegral() const;
+ Q_INVOKABLE bool isNonNegative() const;
+ Q_INVOKABLE bool isPositive() const;
+ Q_INVOKABLE int value() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [OpaqueExpression]
+ void setBehavior(QObject *behavior = 0);
+ void addBody(QString body);
+ void removeBody(QString body);
+ void addLanguage(QString language);
+ void removeLanguage(QString language);
+ void Q_DECL_HIDDEN setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOPAQUEEXPRESSIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumloperationobject.cpp b/src/uml/qobjects/qumloperationobject.cpp
new file mode 100644
index 00000000..ca87ec6a
--- /dev/null
+++ b/src/uml/qobjects/qumloperationobject.cpp
@@ -0,0 +1,836 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumloperationobject_p.h"
+
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDataType>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperationTemplateParameter>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOperationObject::QUmlOperationObject(QUmlOperation *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOperationObject::~QUmlOperationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOperationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOperationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+QObject *QUmlOperationObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlOperationObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlOperationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOperationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->name();
+}
+
+QObject *QUmlOperationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlOperationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlOperationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlOperationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlOperationObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlOperationObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlOperationObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Feature]
+
+const QSet<QObject *> QUmlOperationObject::featuringClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->featuringClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOperationObject::isStatic() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isStatic();
+}
+
+// OWNED ATTRIBUTES [BehavioralFeature]
+
+QtUml::CallConcurrencyKind QUmlOperationObject::concurrency() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->concurrency();
+}
+
+bool QUmlOperationObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isAbstract();
+}
+
+const QSet<QObject *> QUmlOperationObject::method() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->method())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlOperationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [Operation]
+
+QObject *QUmlOperationObject::bodyCondition() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->bodyCondition()->asQObject();
+}
+
+QObject *QUmlOperationObject::class_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->class_()->asQObject();
+}
+
+QObject *QUmlOperationObject::datatype() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->datatype()->asQObject();
+}
+
+QObject *QUmlOperationObject::interface_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->interface_()->asQObject();
+}
+
+bool QUmlOperationObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isOrdered();
+}
+
+bool QUmlOperationObject::isQuery() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isQuery();
+}
+
+bool QUmlOperationObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isUnique();
+}
+
+int QUmlOperationObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->lower();
+}
+
+const QList<QObject *> QUmlOperationObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlOperationObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::raisedException() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->raisedException())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationObject::redefinedOperation() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->redefinedOperation())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOperationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->templateParameter()->asQObject();
+}
+
+QObject *QUmlOperationObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->type()->asQObject();
+}
+
+int QUmlOperationObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->upper();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOperationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOperationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [TemplateableElement]
+
+bool QUmlOperationObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isTemplate();
+}
+
+QSet<QObject *> QUmlOperationObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlOperationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOperationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOperationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlOperationObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlOperationObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlOperationObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOperationObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlOperationObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [BehavioralFeature]
+
+bool QUmlOperationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlOperationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlOperationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Operation]
+
+bool QUmlOperationObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlOperation *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+QSet<QObject *> QUmlOperationObject::returnResult() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlOperation *>(this)->returnResult())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOperationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOperationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOperationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOperationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOperationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlOperationObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlOperationObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlOperationObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlOperationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOperationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOperationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setName(name);
+}
+
+void QUmlOperationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlOperationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlOperationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlOperationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlOperationObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlOperationObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlOperationObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlOperationObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlOperationObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlOperationObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlOperationObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlOperationObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlOperationObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlOperationObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlOperationObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlOperationObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlOperationObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlOperationObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOperationObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOperationObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlOperationObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Feature]
+
+void QUmlOperationObject::addFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlOperationObject::removeFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlOperationObject::setStatic(bool isStatic)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setStatic(isStatic);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioralFeature]
+
+void QUmlOperationObject::setConcurrency(QtUml::CallConcurrencyKind concurrency)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setConcurrency(concurrency);
+}
+
+void QUmlOperationObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlOperationObject::addMethod(QObject *method)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addMethod(qmodelingobjectproperty_cast<QUmlBehavior *>(method));
+}
+
+void QUmlOperationObject::removeMethod(QObject *method)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeMethod(qmodelingobjectproperty_cast<QUmlBehavior *>(method));
+}
+
+void QUmlOperationObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlOperationObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlOperationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Operation]
+
+void QUmlOperationObject::setBodyCondition(QObject *bodyCondition)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setBodyCondition(qmodelingobjectproperty_cast<QUmlConstraint *>(bodyCondition));
+}
+
+void QUmlOperationObject::setClass(QObject *class_)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setClass(qmodelingobjectproperty_cast<QUmlClass *>(class_));
+}
+
+void QUmlOperationObject::setDatatype(QObject *datatype)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setDatatype(qmodelingobjectproperty_cast<QUmlDataType *>(datatype));
+}
+
+void QUmlOperationObject::setInterface(QObject *interface_)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setInterface(qmodelingobjectproperty_cast<QUmlInterface *>(interface_));
+}
+
+void QUmlOperationObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlOperationObject::setQuery(bool isQuery)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setQuery(isQuery);
+}
+
+void QUmlOperationObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setUnique(isUnique);
+}
+
+void QUmlOperationObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setLower(lower);
+}
+
+void QUmlOperationObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlOperationObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlOperationObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlOperationObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlOperationObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlOperationObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlOperationObject::addRaisedException(QObject *raisedException)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addRaisedException(qmodelingobjectproperty_cast<QUmlType *>(raisedException));
+}
+
+void QUmlOperationObject::removeRaisedException(QObject *raisedException)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeRaisedException(qmodelingobjectproperty_cast<QUmlType *>(raisedException));
+}
+
+void QUmlOperationObject::addRedefinedOperation(QObject *redefinedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->addRedefinedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(redefinedOperation));
+}
+
+void QUmlOperationObject::removeRedefinedOperation(QObject *redefinedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->removeRedefinedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(redefinedOperation));
+}
+
+void QUmlOperationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(templateParameter));
+}
+
+void QUmlOperationObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+void QUmlOperationObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlOperation *>(this)->setUpper(upper);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumloperationobject_p.h b/src/uml/qobjects/qumloperationobject_p.h
new file mode 100644
index 00000000..ec3f0d2d
--- /dev/null
+++ b/src/uml/qobjects/qumloperationobject_p.h
@@ -0,0 +1,309 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOPERATIONOBJECT_H
+#define QUMLOPERATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOperation;
+class Q_UML_EXPORT QUmlOperationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [Feature]
+ Q_PROPERTY(QSet<QObject *> featuringClassifier READ featuringClassifier)
+ Q_PROPERTY(bool isStatic READ isStatic)
+
+ // Properties [BehavioralFeature]
+ Q_PROPERTY(QtUml::CallConcurrencyKind concurrency READ concurrency)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(QSet<QObject *> method READ method)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [Operation]
+ Q_PROPERTY(QObject * bodyCondition READ bodyCondition)
+ Q_PROPERTY(QObject * class_ READ class_)
+ Q_PROPERTY(QObject * datatype READ datatype)
+ Q_PROPERTY(QObject * interface_ READ interface_)
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isQuery READ isQuery)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QSet<QObject *> raisedException READ raisedException)
+ Q_PROPERTY(QSet<QObject *> redefinedOperation READ redefinedOperation)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QObject * type READ type)
+ Q_PROPERTY(int upper READ upper)
+
+public:
+ Q_INVOKABLE explicit QUmlOperationObject(QUmlOperation *qModelingObject);
+ virtual ~QUmlOperationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [Feature]
+ Q_INVOKABLE const QSet<QObject *> featuringClassifier() const;
+ Q_INVOKABLE bool isStatic() const;
+
+ // Owned attributes [BehavioralFeature]
+ Q_INVOKABLE QtUml::CallConcurrencyKind concurrency() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE const QSet<QObject *> method() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [Operation]
+ Q_INVOKABLE QObject *bodyCondition() const;
+ Q_INVOKABLE QObject *class_() const;
+ Q_INVOKABLE QObject *datatype() const;
+ Q_INVOKABLE QObject *interface_() const;
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isQuery() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE const QSet<QObject *> raisedException() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedOperation() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE QObject *type() const;
+ Q_INVOKABLE int upper() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [BehavioralFeature]
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Operation]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE QSet<QObject *> returnResult() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateableElement]
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [Feature]
+ void Q_DECL_HIDDEN addFeaturingClassifier(QObject *featuringClassifier);
+ void Q_DECL_HIDDEN removeFeaturingClassifier(QObject *featuringClassifier);
+ void setStatic(bool isStatic);
+
+ // Slots for owned attributes [BehavioralFeature]
+ void setConcurrency(QtUml::CallConcurrencyKind concurrency);
+ void setAbstract(bool isAbstract);
+ void addMethod(QObject *method);
+ void removeMethod(QObject *method);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [Operation]
+ void setBodyCondition(QObject *bodyCondition = 0);
+ void setClass(QObject *class_ = 0);
+ void setDatatype(QObject *datatype = 0);
+ void setInterface(QObject *interface_ = 0);
+ void Q_DECL_HIDDEN setOrdered(bool isOrdered);
+ void setQuery(bool isQuery);
+ void Q_DECL_HIDDEN setUnique(bool isUnique);
+ void Q_DECL_HIDDEN setLower(int lower);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void addRaisedException(QObject *raisedException);
+ void removeRaisedException(QObject *raisedException);
+ void addRedefinedOperation(QObject *redefinedOperation);
+ void removeRedefinedOperation(QObject *redefinedOperation);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void Q_DECL_HIDDEN setType(QObject *type = 0);
+ void Q_DECL_HIDDEN setUpper(int upper);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOPERATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumloperationtemplateparameterobject.cpp b/src/uml/qobjects/qumloperationtemplateparameterobject.cpp
new file mode 100644
index 00000000..a5ce46b7
--- /dev/null
+++ b/src/uml/qobjects/qumloperationtemplateparameterobject.cpp
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumloperationtemplateparameterobject_p.h"
+
+#include <QtUml/QUmlOperationTemplateParameter>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlTemplateSignature>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOperationTemplateParameterObject::QUmlOperationTemplateParameterObject(QUmlOperationTemplateParameter *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOperationTemplateParameterObject::~QUmlOperationTemplateParameterObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOperationTemplateParameterObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOperationTemplateParameterObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOperationTemplateParameterObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateParameter]
+
+QObject *QUmlOperationTemplateParameterObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->default_()->asQObject();
+}
+
+QObject *QUmlOperationTemplateParameterObject::ownedDefault() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->ownedDefault()->asQObject();
+}
+
+QObject *QUmlOperationTemplateParameterObject::ownedParameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->ownedParameteredElement()->asQObject();
+}
+
+QObject *QUmlOperationTemplateParameterObject::signature() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->signature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [OperationTemplateParameter]
+
+QObject *QUmlOperationTemplateParameterObject::parameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->parameteredElement()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOperationTemplateParameterObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOperationTemplateParameterObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOperationTemplateParameterObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOperationTemplateParameterObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOperationTemplateParameterObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOperationTemplateParameterObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOperationTemplateParameterObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
+
+void QUmlOperationTemplateParameterObject::setDefault(QObject *default_)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->setDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(default_));
+}
+
+void QUmlOperationTemplateParameterObject::setOwnedDefault(QObject *ownedDefault)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->setOwnedDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedDefault));
+}
+
+void QUmlOperationTemplateParameterObject::setOwnedParameteredElement(QObject *ownedParameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->setOwnedParameteredElement(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedParameteredElement));
+}
+
+void QUmlOperationTemplateParameterObject::setSignature(QObject *signature)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->setSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(signature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [OperationTemplateParameter]
+
+void QUmlOperationTemplateParameterObject::setParameteredElement(QObject *parameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlOperationTemplateParameter *>(this)->setParameteredElement(qmodelingobjectproperty_cast<QUmlOperation *>(parameteredElement));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumloperationtemplateparameterobject_p.h b/src/uml/qobjects/qumloperationtemplateparameterobject_p.h
new file mode 100644
index 00000000..97ced0d3
--- /dev/null
+++ b/src/uml/qobjects/qumloperationtemplateparameterobject_p.h
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOPERATIONTEMPLATEPARAMETEROBJECT_H
+#define QUMLOPERATIONTEMPLATEPARAMETEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOperationTemplateParameter;
+class Q_UML_EXPORT QUmlOperationTemplateParameterObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateParameter]
+ Q_PROPERTY(QObject * default_ READ default_)
+ Q_PROPERTY(QObject * ownedDefault READ ownedDefault)
+ Q_PROPERTY(QObject * ownedParameteredElement READ ownedParameteredElement)
+ Q_PROPERTY(QObject * signature READ signature)
+
+ // Properties [OperationTemplateParameter]
+ Q_PROPERTY(QObject * parameteredElement READ parameteredElement)
+
+public:
+ Q_INVOKABLE explicit QUmlOperationTemplateParameterObject(QUmlOperationTemplateParameter *qModelingObject);
+ virtual ~QUmlOperationTemplateParameterObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateParameter]
+ Q_INVOKABLE QObject *default_() const;
+ Q_INVOKABLE QObject *ownedDefault() const;
+ Q_INVOKABLE QObject *ownedParameteredElement() const;
+ Q_INVOKABLE QObject *signature() const;
+
+ // Owned attributes [OperationTemplateParameter]
+ Q_INVOKABLE QObject *parameteredElement() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateParameter]
+ void setDefault(QObject *default_ = 0);
+ void setOwnedDefault(QObject *ownedDefault = 0);
+ void setOwnedParameteredElement(QObject *ownedParameteredElement = 0);
+ void setSignature(QObject *signature = 0);
+
+ // Slots for owned attributes [OperationTemplateParameter]
+ void setParameteredElement(QObject *parameteredElement = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOPERATIONTEMPLATEPARAMETEROBJECT_H
+
diff --git a/src/uml/qobjects/qumloutputpinobject.cpp b/src/uml/qobjects/qumloutputpinobject.cpp
new file mode 100644
index 00000000..65724557
--- /dev/null
+++ b/src/uml/qobjects/qumloutputpinobject.cpp
@@ -0,0 +1,632 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumloutputpinobject_p.h"
+
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlOutputPinObject::QUmlOutputPinObject(QUmlOutputPin *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlOutputPinObject::~QUmlOutputPinObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlOutputPinObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOutputPinObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOutputPinObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlOutputPinObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isOrdered();
+}
+
+bool QUmlOutputPinObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isUnique();
+}
+
+int QUmlOutputPinObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->lower();
+}
+
+QObject *QUmlOutputPinObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlOutputPinObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->upper();
+}
+
+QObject *QUmlOutputPinObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlOutputPinObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlOutputPinObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->name();
+}
+
+QObject *QUmlOutputPinObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlOutputPinObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlOutputPinObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlOutputPinObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlOutputPinObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlOutputPinObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOutputPinObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlOutputPinObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlOutputPinObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOutputPinObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOutputPinObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlOutputPinObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlOutputPinObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOutputPinObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlOutputPinObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlOutputPinObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlOutputPinObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOutputPinObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlOutputPinObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->ordering();
+}
+
+QObject *QUmlOutputPinObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlOutputPinObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->upperBound()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Pin]
+
+bool QUmlOutputPinObject::isControl() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isControl();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlOutputPinObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOutputPinObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlOutputPinObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlOutputPinObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->includesCardinality(C);
+}
+
+bool QUmlOutputPinObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlOutputPinObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlOutputPinObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isMultivalued();
+}
+
+int QUmlOutputPinObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->lowerBound();
+}
+
+//int QUmlOutputPinObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->upperBound();
+//}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlOutputPinObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlOutputPinObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlOutputPinObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlOutputPinObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlOutputPinObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlOutputPinObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlOutputPinObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOutputPinObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlOutputPinObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOutputPinObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlOutputPinObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlOutputPinObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlOutputPinObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setUnique(isUnique);
+}
+
+void QUmlOutputPinObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setLower(lower);
+}
+
+void QUmlOutputPinObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlOutputPinObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setUpper(upper);
+}
+
+void QUmlOutputPinObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlOutputPinObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOutputPinObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlOutputPinObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setName(name);
+}
+
+void QUmlOutputPinObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlOutputPinObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlOutputPinObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlOutputPinObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlOutputPinObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlOutputPinObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOutputPinObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlOutputPinObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlOutputPinObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlOutputPinObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlOutputPinObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlOutputPinObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlOutputPinObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlOutputPinObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlOutputPinObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlOutputPinObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlOutputPinObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlOutputPinObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlOutputPinObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlOutputPinObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlOutputPinObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlOutputPinObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlOutputPinObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlOutputPinObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlOutputPinObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlOutputPinObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlOutputPinObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setControlType(isControlType);
+}
+
+void QUmlOutputPinObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setOrdering(ordering);
+}
+
+void QUmlOutputPinObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlOutputPinObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Pin]
+
+void QUmlOutputPinObject::setControl(bool isControl)
+{
+ qmodelingobjectproperty_cast<QUmlOutputPin *>(this)->setControl(isControl);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumloutputpinobject_p.h b/src/uml/qobjects/qumloutputpinobject_p.h
new file mode 100644
index 00000000..b6f5855b
--- /dev/null
+++ b/src/uml/qobjects/qumloutputpinobject_p.h
@@ -0,0 +1,255 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLOUTPUTPINOBJECT_H
+#define QUMLOUTPUTPINOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlOutputPin;
+class Q_UML_EXPORT QUmlOutputPinObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+ // Properties [Pin]
+ Q_PROPERTY(bool isControl READ isControl)
+
+public:
+ Q_INVOKABLE explicit QUmlOutputPinObject(QUmlOutputPin *qModelingObject);
+ virtual ~QUmlOutputPinObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Owned attributes [Pin]
+ Q_INVOKABLE bool isControl() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+
+ // Slots for owned attributes [Pin]
+ void setControl(bool isControl);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLOUTPUTPINOBJECT_H
+
diff --git a/src/uml/qobjects/qumlpackageimportobject.cpp b/src/uml/qobjects/qumlpackageimportobject.cpp
new file mode 100644
index 00000000..2fdd9ca6
--- /dev/null
+++ b/src/uml/qobjects/qumlpackageimportobject.cpp
@@ -0,0 +1,226 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlpackageimportobject_p.h"
+
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPackageImportObject::QUmlPackageImportObject(QUmlPackageImport *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPackageImportObject::~QUmlPackageImportObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPackageImportObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageImportObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPackageImportObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlPackageImportObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlPackageImportObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageImportObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [PackageImport]
+
+QObject *QUmlPackageImportObject::importedPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->importedPackage()->asQObject();
+}
+
+QObject *QUmlPackageImportObject::importingNamespace() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->importingNamespace()->asQObject();
+}
+
+QtUml::VisibilityKind QUmlPackageImportObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->visibility();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPackageImportObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPackageImportObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPackageImportObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPackageImportObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPackageImportObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPackageImportObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPackageImportObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlPackageImportObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlPackageImportObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlPackageImportObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlPackageImportObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlPackageImportObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlPackageImportObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageImport]
+
+void QUmlPackageImportObject::setImportedPackage(QObject *importedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->setImportedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(importedPackage));
+}
+
+void QUmlPackageImportObject::setImportingNamespace(QObject *importingNamespace)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->setImportingNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(importingNamespace));
+}
+
+void QUmlPackageImportObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlPackageImport *>(this)->setVisibility(visibility);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlpackageimportobject_p.h b/src/uml/qobjects/qumlpackageimportobject_p.h
new file mode 100644
index 00000000..f4a03caf
--- /dev/null
+++ b/src/uml/qobjects/qumlpackageimportobject_p.h
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPACKAGEIMPORTOBJECT_H
+#define QUMLPACKAGEIMPORTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPackageImport;
+class Q_UML_EXPORT QUmlPackageImportObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [PackageImport]
+ Q_PROPERTY(QObject * importedPackage READ importedPackage)
+ Q_PROPERTY(QObject * importingNamespace READ importingNamespace)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+public:
+ Q_INVOKABLE explicit QUmlPackageImportObject(QUmlPackageImport *qModelingObject);
+ virtual ~QUmlPackageImportObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [PackageImport]
+ Q_INVOKABLE QObject *importedPackage() const;
+ Q_INVOKABLE QObject *importingNamespace() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [PackageImport]
+ void setImportedPackage(QObject *importedPackage = 0);
+ void setImportingNamespace(QObject *importingNamespace = 0);
+ void setVisibility(QtUml::VisibilityKind visibility);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPACKAGEIMPORTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlpackagemergeobject.cpp b/src/uml/qobjects/qumlpackagemergeobject.cpp
new file mode 100644
index 00000000..570d153e
--- /dev/null
+++ b/src/uml/qobjects/qumlpackagemergeobject.cpp
@@ -0,0 +1,215 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlpackagemergeobject_p.h"
+
+#include <QtUml/QUmlPackageMerge>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlPackage>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPackageMergeObject::QUmlPackageMergeObject(QUmlPackageMerge *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPackageMergeObject::~QUmlPackageMergeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPackageMergeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageMergeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPackageMergeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlPackageMergeObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlPackageMergeObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageMergeObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [PackageMerge]
+
+QObject *QUmlPackageMergeObject::mergedPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->mergedPackage()->asQObject();
+}
+
+QObject *QUmlPackageMergeObject::receivingPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->receivingPackage()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPackageMergeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPackageMergeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPackageMergeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPackageMergeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPackageMergeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPackageMergeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPackageMergeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlPackageMergeObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlPackageMergeObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlPackageMergeObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlPackageMergeObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlPackageMergeObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlPackageMergeObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageMerge]
+
+void QUmlPackageMergeObject::setMergedPackage(QObject *mergedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->setMergedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(mergedPackage));
+}
+
+void QUmlPackageMergeObject::setReceivingPackage(QObject *receivingPackage)
+{
+ qmodelingobjectproperty_cast<QUmlPackageMerge *>(this)->setReceivingPackage(qmodelingobjectproperty_cast<QUmlPackage *>(receivingPackage));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlpackagemergeobject_p.h b/src/uml/qobjects/qumlpackagemergeobject_p.h
new file mode 100644
index 00000000..0b8ebac0
--- /dev/null
+++ b/src/uml/qobjects/qumlpackagemergeobject_p.h
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPACKAGEMERGEOBJECT_H
+#define QUMLPACKAGEMERGEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPackageMerge;
+class Q_UML_EXPORT QUmlPackageMergeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [PackageMerge]
+ Q_PROPERTY(QObject * mergedPackage READ mergedPackage)
+ Q_PROPERTY(QObject * receivingPackage READ receivingPackage)
+
+public:
+ Q_INVOKABLE explicit QUmlPackageMergeObject(QUmlPackageMerge *qModelingObject);
+ virtual ~QUmlPackageMergeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [PackageMerge]
+ Q_INVOKABLE QObject *mergedPackage() const;
+ Q_INVOKABLE QObject *receivingPackage() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [PackageMerge]
+ void setMergedPackage(QObject *mergedPackage = 0);
+ void setReceivingPackage(QObject *receivingPackage = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPACKAGEMERGEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlpackageobject.cpp b/src/uml/qobjects/qumlpackageobject.cpp
new file mode 100644
index 00000000..63ae7727
--- /dev/null
+++ b/src/uml/qobjects/qumlpackageobject.cpp
@@ -0,0 +1,635 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlpackageobject_p.h"
+
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlPackageMerge>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProfile>
+#include <QtUml/QUmlProfileApplication>
+#include <QtUml/QUmlStereotype>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPackageObject::QUmlPackageObject(QUmlPackage *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPackageObject::~QUmlPackageObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPackageObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPackageObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlPackageObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlPackageObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->name();
+}
+
+QObject *QUmlPackageObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlPackageObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlPackageObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlPackageObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlPackageObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlPackageObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlPackageObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+QObject *QUmlPackageObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlPackageObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Package]
+
+QString QUmlPackageObject::URI() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->URI();
+}
+
+const QSet<QObject *> QUmlPackageObject::nestedPackage() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->nestedPackage())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPackageObject::nestingPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->nestingPackage()->asQObject();
+}
+
+const QSet<QObject *> QUmlPackageObject::ownedStereotype() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStereotype *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedStereotype())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::ownedType() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->ownedType())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::packageMerge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageMerge *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->packageMerge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::packagedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->packagedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPackageObject::profileApplication() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProfileApplication *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->profileApplication())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPackageObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlPackageObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPackageObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPackageObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlPackageObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlPackageObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlPackageObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlPackageObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPackageObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlPackageObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlPackageObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [TemplateableElement]
+
+bool QUmlPackageObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->isTemplate();
+}
+
+QSet<QObject *> QUmlPackageObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Package]
+
+QSet<QObject *> QUmlPackageObject::allApplicableStereotypes() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStereotype *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->allApplicableStereotypes())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPackageObject::containingProfile() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->containingProfile()->asQObject();
+}
+
+bool QUmlPackageObject::makesVisible(QObject *el) const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->makesVisible(qmodelingobjectproperty_cast<QUmlNamedElement *>(el));
+}
+
+bool QUmlPackageObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPackage *>(this)->mustBeOwned();
+}
+
+QSet<QObject *> QUmlPackageObject::visibleMembers() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPackage *>(this)->visibleMembers())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPackageObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPackageObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPackageObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPackageObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPackageObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlPackageObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPackageObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPackageObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setName(name);
+}
+
+void QUmlPackageObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlPackageObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlPackageObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlPackageObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlPackageObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlPackageObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlPackageObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlPackageObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlPackageObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlPackageObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlPackageObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlPackageObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlPackageObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlPackageObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlPackageObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlPackageObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlPackageObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlPackageObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlPackageObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlPackageObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlPackageObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Package]
+
+void QUmlPackageObject::setURI(QString URI)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setURI(URI);
+}
+
+void QUmlPackageObject::addNestedPackage(QObject *nestedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addNestedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestedPackage));
+}
+
+void QUmlPackageObject::removeNestedPackage(QObject *nestedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeNestedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestedPackage));
+}
+
+void QUmlPackageObject::setNestingPackage(QObject *nestingPackage)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->setNestingPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestingPackage));
+}
+
+void QUmlPackageObject::addOwnedStereotype(QObject *ownedStereotype)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addOwnedStereotype(qmodelingobjectproperty_cast<QUmlStereotype *>(ownedStereotype));
+}
+
+void QUmlPackageObject::removeOwnedStereotype(QObject *ownedStereotype)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeOwnedStereotype(qmodelingobjectproperty_cast<QUmlStereotype *>(ownedStereotype));
+}
+
+void QUmlPackageObject::addOwnedType(QObject *ownedType)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addOwnedType(qmodelingobjectproperty_cast<QUmlType *>(ownedType));
+}
+
+void QUmlPackageObject::removeOwnedType(QObject *ownedType)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeOwnedType(qmodelingobjectproperty_cast<QUmlType *>(ownedType));
+}
+
+void QUmlPackageObject::addPackageMerge(QObject *packageMerge)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addPackageMerge(qmodelingobjectproperty_cast<QUmlPackageMerge *>(packageMerge));
+}
+
+void QUmlPackageObject::removePackageMerge(QObject *packageMerge)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removePackageMerge(qmodelingobjectproperty_cast<QUmlPackageMerge *>(packageMerge));
+}
+
+void QUmlPackageObject::addPackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addPackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlPackageObject::removePackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removePackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlPackageObject::addProfileApplication(QObject *profileApplication)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->addProfileApplication(qmodelingobjectproperty_cast<QUmlProfileApplication *>(profileApplication));
+}
+
+void QUmlPackageObject::removeProfileApplication(QObject *profileApplication)
+{
+ qmodelingobjectproperty_cast<QUmlPackage *>(this)->removeProfileApplication(qmodelingobjectproperty_cast<QUmlProfileApplication *>(profileApplication));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlpackageobject_p.h b/src/uml/qobjects/qumlpackageobject_p.h
new file mode 100644
index 00000000..546e21ce
--- /dev/null
+++ b/src/uml/qobjects/qumlpackageobject_p.h
@@ -0,0 +1,242 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPACKAGEOBJECT_H
+#define QUMLPACKAGEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPackage;
+class Q_UML_EXPORT QUmlPackageObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Package]
+ Q_PROPERTY(QString URI READ URI)
+ Q_PROPERTY(QSet<QObject *> nestedPackage READ nestedPackage)
+ Q_PROPERTY(QObject * nestingPackage READ nestingPackage)
+ Q_PROPERTY(QSet<QObject *> ownedStereotype READ ownedStereotype)
+ Q_PROPERTY(QSet<QObject *> ownedType READ ownedType)
+ Q_PROPERTY(QSet<QObject *> packageMerge READ packageMerge)
+ Q_PROPERTY(QSet<QObject *> packagedElement READ packagedElement)
+ Q_PROPERTY(QSet<QObject *> profileApplication READ profileApplication)
+
+public:
+ Q_INVOKABLE explicit QUmlPackageObject(QUmlPackage *qModelingObject);
+ virtual ~QUmlPackageObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Package]
+ Q_INVOKABLE QString URI() const;
+ Q_INVOKABLE const QSet<QObject *> nestedPackage() const;
+ Q_INVOKABLE QObject *nestingPackage() const;
+ Q_INVOKABLE const QSet<QObject *> ownedStereotype() const;
+ Q_INVOKABLE const QSet<QObject *> ownedType() const;
+ Q_INVOKABLE const QSet<QObject *> packageMerge() const;
+ Q_INVOKABLE const QSet<QObject *> packagedElement() const;
+ Q_INVOKABLE const QSet<QObject *> profileApplication() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Package]
+ Q_INVOKABLE QSet<QObject *> allApplicableStereotypes() const;
+ Q_INVOKABLE QObject *containingProfile() const;
+ Q_INVOKABLE bool makesVisible(QObject *el) const;
+ Q_INVOKABLE bool mustBeOwned() const;
+ Q_INVOKABLE QSet<QObject *> visibleMembers() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TemplateableElement]
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Package]
+ void setURI(QString URI);
+ void addNestedPackage(QObject *nestedPackage);
+ void removeNestedPackage(QObject *nestedPackage);
+ void setNestingPackage(QObject *nestingPackage = 0);
+ void Q_DECL_HIDDEN addOwnedStereotype(QObject *ownedStereotype);
+ void Q_DECL_HIDDEN removeOwnedStereotype(QObject *ownedStereotype);
+ void addOwnedType(QObject *ownedType);
+ void removeOwnedType(QObject *ownedType);
+ void addPackageMerge(QObject *packageMerge);
+ void removePackageMerge(QObject *packageMerge);
+ void addPackagedElement(QObject *packagedElement);
+ void removePackagedElement(QObject *packagedElement);
+ void addProfileApplication(QObject *profileApplication);
+ void removeProfileApplication(QObject *profileApplication);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPACKAGEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlparameterobject.cpp b/src/uml/qobjects/qumlparameterobject.cpp
new file mode 100644
index 00000000..e26c1abb
--- /dev/null
+++ b/src/uml/qobjects/qumlparameterobject.cpp
@@ -0,0 +1,505 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlparameterobject_p.h"
+
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElementTemplateParameter>
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlParameterObject::QUmlParameterObject(QUmlParameter *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlParameterObject::~QUmlParameterObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlParameterObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlParameterObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlParameterObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlParameterObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isOrdered();
+}
+
+bool QUmlParameterObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isUnique();
+}
+
+int QUmlParameterObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->lower();
+}
+
+QObject *QUmlParameterObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlParameterObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->upper();
+}
+
+QObject *QUmlParameterObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlParameterObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlParameterObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->name();
+}
+
+QObject *QUmlParameterObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlParameterObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlParameterObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlParameterObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlParameterObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlParameterObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [ConnectableElement]
+
+const QList<QObject *> QUmlParameterObject::end() const
+{
+ QList<QObject *> list;
+ foreach (QUmlConnectorEnd *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->end())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlParameterObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Parameter]
+
+QString QUmlParameterObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->default_();
+}
+
+QObject *QUmlParameterObject::defaultValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->defaultValue()->asQObject();
+}
+
+QtUml::ParameterDirectionKind QUmlParameterObject::direction() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->direction();
+}
+
+QtUml::ParameterEffectKind QUmlParameterObject::effect() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->effect();
+}
+
+bool QUmlParameterObject::isException() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isException();
+}
+
+bool QUmlParameterObject::isStream() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isStream();
+}
+
+QObject *QUmlParameterObject::operation() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->operation()->asQObject();
+}
+
+const QSet<QObject *> QUmlParameterObject::parameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->parameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlParameterObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlParameterObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlParameterObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlParameterObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->includesCardinality(C);
+}
+
+bool QUmlParameterObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlParameterObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlParameterObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isMultivalued();
+}
+
+int QUmlParameterObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->lowerBound();
+}
+
+//int QUmlParameterObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlParameter *>(this)->upperBound();
+//}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlParameterObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlParameterObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlParameter *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlParameterObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlParameterObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlParameterObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlParameterObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameter *>(this)->isTemplateParameter();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlParameterObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlParameterObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlParameterObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlParameterObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlParameterObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlParameterObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlParameterObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setUnique(isUnique);
+}
+
+void QUmlParameterObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setLower(lower);
+}
+
+void QUmlParameterObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlParameterObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setUpper(upper);
+}
+
+void QUmlParameterObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlParameterObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlParameterObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlParameterObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setName(name);
+}
+
+void QUmlParameterObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlParameterObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlParameterObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlParameterObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlParameterObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlParameterObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
+
+void QUmlParameterObject::addEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->addEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlParameterObject::removeEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->removeEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlParameterObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Parameter]
+
+void QUmlParameterObject::setDefault(QString default_)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setDefault(default_);
+}
+
+void QUmlParameterObject::setDefaultValue(QObject *defaultValue)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setDefaultValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(defaultValue));
+}
+
+void QUmlParameterObject::setDirection(QtUml::ParameterDirectionKind direction)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setDirection(direction);
+}
+
+void QUmlParameterObject::setEffect(QtUml::ParameterEffectKind effect)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setEffect(effect);
+}
+
+void QUmlParameterObject::setException(bool isException)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setException(isException);
+}
+
+void QUmlParameterObject::setStream(bool isStream)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setStream(isStream);
+}
+
+void QUmlParameterObject::setOperation(QObject *operation)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->setOperation(qmodelingobjectproperty_cast<QUmlOperation *>(operation));
+}
+
+void QUmlParameterObject::addParameterSet(QObject *parameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->addParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(parameterSet));
+}
+
+void QUmlParameterObject::removeParameterSet(QObject *parameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlParameter *>(this)->removeParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(parameterSet));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlparameterobject_p.h b/src/uml/qobjects/qumlparameterobject_p.h
new file mode 100644
index 00000000..834cc0a9
--- /dev/null
+++ b/src/uml/qobjects/qumlparameterobject_p.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPARAMETEROBJECT_H
+#define QUMLPARAMETEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlParameter;
+class Q_UML_EXPORT QUmlParameterObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [ConnectableElement]
+ Q_PROPERTY(QList<QObject *> end READ end)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [Parameter]
+ Q_PROPERTY(QString default_ READ default_)
+ Q_PROPERTY(QObject * defaultValue READ defaultValue)
+ Q_PROPERTY(QtUml::ParameterDirectionKind direction READ direction)
+ Q_PROPERTY(QtUml::ParameterEffectKind effect READ effect)
+ Q_PROPERTY(bool isException READ isException)
+ Q_PROPERTY(bool isStream READ isStream)
+ Q_PROPERTY(QObject * operation READ operation)
+ Q_PROPERTY(QSet<QObject *> parameterSet READ parameterSet)
+
+public:
+ Q_INVOKABLE explicit QUmlParameterObject(QUmlParameter *qModelingObject);
+ virtual ~QUmlParameterObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [ConnectableElement]
+ Q_INVOKABLE const QList<QObject *> end() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [Parameter]
+ Q_INVOKABLE QString default_() const;
+ Q_INVOKABLE QObject *defaultValue() const;
+ Q_INVOKABLE QtUml::ParameterDirectionKind direction() const;
+ Q_INVOKABLE QtUml::ParameterEffectKind effect() const;
+ Q_INVOKABLE bool isException() const;
+ Q_INVOKABLE bool isStream() const;
+ Q_INVOKABLE QObject *operation() const;
+ Q_INVOKABLE const QSet<QObject *> parameterSet() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [ConnectableElement]
+ void Q_DECL_HIDDEN addEnd(QObject *end);
+ void Q_DECL_HIDDEN removeEnd(QObject *end);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [Parameter]
+ void setDefault(QString default_);
+ void setDefaultValue(QObject *defaultValue = 0);
+ void setDirection(QtUml::ParameterDirectionKind direction);
+ void setEffect(QtUml::ParameterEffectKind effect);
+ void setException(bool isException);
+ void setStream(bool isStream);
+ void setOperation(QObject *operation = 0);
+ void addParameterSet(QObject *parameterSet);
+ void removeParameterSet(QObject *parameterSet);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPARAMETEROBJECT_H
+
diff --git a/src/uml/qobjects/qumlparametersetobject.cpp b/src/uml/qobjects/qumlparametersetobject.cpp
new file mode 100644
index 00000000..60c2555c
--- /dev/null
+++ b/src/uml/qobjects/qumlparametersetobject.cpp
@@ -0,0 +1,275 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlparametersetobject_p.h"
+
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlParameterSetObject::QUmlParameterSetObject(QUmlParameterSet *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlParameterSetObject::~QUmlParameterSetObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlParameterSetObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlParameterSetObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlParameterSetObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlParameterSetObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlParameterSetObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->name();
+}
+
+QObject *QUmlParameterSetObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlParameterSetObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlParameterSetObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlParameterSetObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [ParameterSet]
+
+const QSet<QObject *> QUmlParameterSetObject::condition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->condition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlParameterSetObject::parameter() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->parameter())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlParameterSetObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlParameterSetObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlParameterSetObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlParameterSetObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlParameterSetObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlParameterSetObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlParameterSetObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlParameterSetObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlParameterSetObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlParameterSetObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlParameterSetObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlParameterSetObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlParameterSetObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlParameterSetObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->setName(name);
+}
+
+void QUmlParameterSetObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlParameterSetObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlParameterSetObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlParameterSetObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterSet]
+
+void QUmlParameterSetObject::addCondition(QObject *condition)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->addCondition(qmodelingobjectproperty_cast<QUmlConstraint *>(condition));
+}
+
+void QUmlParameterSetObject::removeCondition(QObject *condition)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->removeCondition(qmodelingobjectproperty_cast<QUmlConstraint *>(condition));
+}
+
+void QUmlParameterSetObject::addParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->addParameter(qmodelingobjectproperty_cast<QUmlParameter *>(parameter));
+}
+
+void QUmlParameterSetObject::removeParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlParameterSet *>(this)->removeParameter(qmodelingobjectproperty_cast<QUmlParameter *>(parameter));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlparametersetobject_p.h b/src/uml/qobjects/qumlparametersetobject_p.h
new file mode 100644
index 00000000..e9816e50
--- /dev/null
+++ b/src/uml/qobjects/qumlparametersetobject_p.h
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPARAMETERSETOBJECT_H
+#define QUMLPARAMETERSETOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlParameterSet;
+class Q_UML_EXPORT QUmlParameterSetObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [ParameterSet]
+ Q_PROPERTY(QSet<QObject *> condition READ condition)
+ Q_PROPERTY(QSet<QObject *> parameter READ parameter)
+
+public:
+ Q_INVOKABLE explicit QUmlParameterSetObject(QUmlParameterSet *qModelingObject);
+ virtual ~QUmlParameterSetObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [ParameterSet]
+ Q_INVOKABLE const QSet<QObject *> condition() const;
+ Q_INVOKABLE const QSet<QObject *> parameter() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [ParameterSet]
+ void addCondition(QObject *condition);
+ void removeCondition(QObject *condition);
+ void addParameter(QObject *parameter);
+ void removeParameter(QObject *parameter);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPARAMETERSETOBJECT_H
+
diff --git a/src/uml/qobjects/qumlpartdecompositionobject.cpp b/src/uml/qobjects/qumlpartdecompositionobject.cpp
new file mode 100644
index 00000000..57bfc5b5
--- /dev/null
+++ b/src/uml/qobjects/qumlpartdecompositionobject.cpp
@@ -0,0 +1,370 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlpartdecompositionobject_p.h"
+
+#include <QtUml/QUmlPartDecomposition>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGate>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPartDecompositionObject::QUmlPartDecompositionObject(QUmlPartDecomposition *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPartDecompositionObject::~QUmlPartDecompositionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPartDecompositionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPartDecompositionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPartDecompositionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlPartDecompositionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlPartDecompositionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->name();
+}
+
+QObject *QUmlPartDecompositionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlPartDecompositionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlPartDecompositionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlPartDecompositionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+const QSet<QObject *> QUmlPartDecompositionObject::covered() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLifeline *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->covered())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPartDecompositionObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlPartDecompositionObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlPartDecompositionObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [InteractionUse]
+
+const QSet<QObject *> QUmlPartDecompositionObject::actualGate() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGate *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->actualGate())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlPartDecompositionObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlValueSpecification *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlPartDecompositionObject::refersTo() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->refersTo()->asQObject();
+}
+
+QObject *QUmlPartDecompositionObject::returnValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->returnValue()->asQObject();
+}
+
+QObject *QUmlPartDecompositionObject::returnValueRecipient() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->returnValueRecipient()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPartDecompositionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPartDecompositionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlPartDecompositionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPartDecompositionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPartDecompositionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlPartDecompositionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPartDecompositionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPartDecompositionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPartDecompositionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPartDecompositionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPartDecompositionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlPartDecompositionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPartDecompositionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPartDecompositionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setName(name);
+}
+
+void QUmlPartDecompositionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlPartDecompositionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlPartDecompositionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlPartDecompositionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlPartDecompositionObject::addCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlPartDecompositionObject::removeCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlPartDecompositionObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlPartDecompositionObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlPartDecompositionObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlPartDecompositionObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionUse]
+
+void QUmlPartDecompositionObject::addActualGate(QObject *actualGate)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addActualGate(qmodelingobjectproperty_cast<QUmlGate *>(actualGate));
+}
+
+void QUmlPartDecompositionObject::removeActualGate(QObject *actualGate)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeActualGate(qmodelingobjectproperty_cast<QUmlGate *>(actualGate));
+}
+
+void QUmlPartDecompositionObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlValueSpecification *>(argument));
+}
+
+void QUmlPartDecompositionObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlValueSpecification *>(argument));
+}
+
+void QUmlPartDecompositionObject::setRefersTo(QObject *refersTo)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setRefersTo(qmodelingobjectproperty_cast<QUmlInteraction *>(refersTo));
+}
+
+void QUmlPartDecompositionObject::setReturnValue(QObject *returnValue)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setReturnValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(returnValue));
+}
+
+void QUmlPartDecompositionObject::setReturnValueRecipient(QObject *returnValueRecipient)
+{
+ qmodelingobjectproperty_cast<QUmlPartDecomposition *>(this)->setReturnValueRecipient(qmodelingobjectproperty_cast<QUmlProperty *>(returnValueRecipient));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlpartdecompositionobject_p.h b/src/uml/qobjects/qumlpartdecompositionobject_p.h
new file mode 100644
index 00000000..4ff0b849
--- /dev/null
+++ b/src/uml/qobjects/qumlpartdecompositionobject_p.h
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPARTDECOMPOSITIONOBJECT_H
+#define QUMLPARTDECOMPOSITIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPartDecomposition;
+class Q_UML_EXPORT QUmlPartDecompositionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QSet<QObject *> covered READ covered)
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [InteractionUse]
+ Q_PROPERTY(QSet<QObject *> actualGate READ actualGate)
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * refersTo READ refersTo)
+ Q_PROPERTY(QObject * returnValue READ returnValue)
+ Q_PROPERTY(QObject * returnValueRecipient READ returnValueRecipient)
+
+public:
+ Q_INVOKABLE explicit QUmlPartDecompositionObject(QUmlPartDecomposition *qModelingObject);
+ virtual ~QUmlPartDecompositionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE const QSet<QObject *> covered() const;
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [InteractionUse]
+ Q_INVOKABLE const QSet<QObject *> actualGate() const;
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *refersTo() const;
+ Q_INVOKABLE QObject *returnValue() const;
+ Q_INVOKABLE QObject *returnValueRecipient() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void addCovered(QObject *covered);
+ void removeCovered(QObject *covered);
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [InteractionUse]
+ void addActualGate(QObject *actualGate);
+ void removeActualGate(QObject *actualGate);
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setRefersTo(QObject *refersTo = 0);
+ void setReturnValue(QObject *returnValue = 0);
+ void setReturnValueRecipient(QObject *returnValueRecipient = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPARTDECOMPOSITIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlportobject.cpp b/src/uml/qobjects/qumlportobject.cpp
new file mode 100644
index 00000000..464fdfa5
--- /dev/null
+++ b/src/uml/qobjects/qumlportobject.cpp
@@ -0,0 +1,881 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlportobject_p.h"
+
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElementTemplateParameter>
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlDataType>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlProtocolStateMachine>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPortObject::QUmlPortObject(QUmlPort *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPortObject::~QUmlPortObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPortObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPortObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPortObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlPortObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlPortObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->name();
+}
+
+QObject *QUmlPortObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlPortObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlPortObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlPortObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlPortObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlPortObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isOrdered();
+}
+
+bool QUmlPortObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isUnique();
+}
+
+int QUmlPortObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->lower();
+}
+
+QObject *QUmlPortObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlPortObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->upper();
+}
+
+QObject *QUmlPortObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlPortObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlPortObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPortObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Feature]
+
+const QSet<QObject *> QUmlPortObject::featuringClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->featuringClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPortObject::isStatic() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isStatic();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlPortObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [ConnectableElement]
+
+const QList<QObject *> QUmlPortObject::end() const
+{
+ QList<QObject *> list;
+ foreach (QUmlConnectorEnd *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->end())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlPortObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlPortObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPortObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Property]
+
+QtUml::AggregationKind QUmlPortObject::aggregation() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->aggregation();
+}
+
+QObject *QUmlPortObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->association()->asQObject();
+}
+
+QObject *QUmlPortObject::associationEnd() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->associationEnd()->asQObject();
+}
+
+QObject *QUmlPortObject::class_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->class_()->asQObject();
+}
+
+QObject *QUmlPortObject::datatype() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->datatype()->asQObject();
+}
+
+QString QUmlPortObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->default_();
+}
+
+QObject *QUmlPortObject::defaultValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->defaultValue()->asQObject();
+}
+
+QObject *QUmlPortObject::interface_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->interface_()->asQObject();
+}
+
+bool QUmlPortObject::isComposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isComposite();
+}
+
+bool QUmlPortObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isDerived();
+}
+
+bool QUmlPortObject::isDerivedUnion() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isDerivedUnion();
+}
+
+bool QUmlPortObject::isID() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isID();
+}
+
+bool QUmlPortObject::isReadOnly() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isReadOnly();
+}
+
+QObject *QUmlPortObject::opposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->opposite()->asQObject();
+}
+
+QObject *QUmlPortObject::owningAssociation() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->owningAssociation()->asQObject();
+}
+
+const QList<QObject *> QUmlPortObject::qualifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->qualifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlPortObject::redefinedProperty() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->redefinedProperty())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPortObject::subsettedProperty() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->subsettedProperty())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Port]
+
+bool QUmlPortObject::isBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isBehavior();
+}
+
+bool QUmlPortObject::isConjugated() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isConjugated();
+}
+
+bool QUmlPortObject::isService() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isService();
+}
+
+QObject *QUmlPortObject::protocol() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->protocol()->asQObject();
+}
+
+const QSet<QObject *> QUmlPortObject::provided() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->provided())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPortObject::redefinedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->redefinedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPortObject::required() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterface *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->required())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPortObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPortObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlPortObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPortObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPortObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlPortObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->separator();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlPortObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlPortObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->includesCardinality(C);
+}
+
+bool QUmlPortObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlPortObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlPortObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isMultivalued();
+}
+
+int QUmlPortObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->lowerBound();
+}
+
+//int QUmlPortObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlPort *>(this)->upperBound();
+//}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlPortObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlPortObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Property]
+
+bool QUmlPortObject::isAttribute(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(p));
+}
+
+bool QUmlPortObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlPortObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlPortObject::isNavigable() const
+{
+ return qmodelingobjectproperty_cast<QUmlPort *>(this)->isNavigable();
+}
+
+QSet<QObject *> QUmlPortObject::subsettingContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlPort *>(this)->subsettingContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPortObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPortObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPortObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPortObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPortObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlPortObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPortObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPortObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setName(name);
+}
+
+void QUmlPortObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlPortObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlPortObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlPortObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlPortObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlPortObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlPortObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setUnique(isUnique);
+}
+
+void QUmlPortObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setLower(lower);
+}
+
+void QUmlPortObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlPortObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setUpper(upper);
+}
+
+void QUmlPortObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlPortObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlPortObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlPortObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlPortObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlPortObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Feature]
+
+void QUmlPortObject::addFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlPortObject::removeFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlPortObject::setStatic(bool isStatic)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setStatic(isStatic);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlPortObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
+
+void QUmlPortObject::addEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlPortObject::removeEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlPortObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlPortObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlPortObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlPortObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlPortObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Property]
+
+void QUmlPortObject::setAggregation(QtUml::AggregationKind aggregation)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setAggregation(aggregation);
+}
+
+void QUmlPortObject::setAssociation(QObject *association)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(association));
+}
+
+void QUmlPortObject::setAssociationEnd(QObject *associationEnd)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setAssociationEnd(qmodelingobjectproperty_cast<QUmlProperty *>(associationEnd));
+}
+
+void QUmlPortObject::setClass(QObject *class_)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setClass(qmodelingobjectproperty_cast<QUmlClass *>(class_));
+}
+
+void QUmlPortObject::setDatatype(QObject *datatype)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setDatatype(qmodelingobjectproperty_cast<QUmlDataType *>(datatype));
+}
+
+void QUmlPortObject::setDefault(QString default_)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setDefault(default_);
+}
+
+void QUmlPortObject::setDefaultValue(QObject *defaultValue)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setDefaultValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(defaultValue));
+}
+
+void QUmlPortObject::setInterface(QObject *interface_)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setInterface(qmodelingobjectproperty_cast<QUmlInterface *>(interface_));
+}
+
+void QUmlPortObject::setComposite(bool isComposite)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setComposite(isComposite);
+}
+
+void QUmlPortObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setDerived(isDerived);
+}
+
+void QUmlPortObject::setDerivedUnion(bool isDerivedUnion)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setDerivedUnion(isDerivedUnion);
+}
+
+void QUmlPortObject::setID(bool isID)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setID(isID);
+}
+
+void QUmlPortObject::setReadOnly(bool isReadOnly)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setReadOnly(isReadOnly);
+}
+
+void QUmlPortObject::setOpposite(QObject *opposite)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setOpposite(qmodelingobjectproperty_cast<QUmlProperty *>(opposite));
+}
+
+void QUmlPortObject::setOwningAssociation(QObject *owningAssociation)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setOwningAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(owningAssociation));
+}
+
+void QUmlPortObject::addQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlPortObject::removeQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlPortObject::addRedefinedProperty(QObject *redefinedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addRedefinedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(redefinedProperty));
+}
+
+void QUmlPortObject::removeRedefinedProperty(QObject *redefinedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeRedefinedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(redefinedProperty));
+}
+
+void QUmlPortObject::addSubsettedProperty(QObject *subsettedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addSubsettedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(subsettedProperty));
+}
+
+void QUmlPortObject::removeSubsettedProperty(QObject *subsettedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeSubsettedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(subsettedProperty));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Port]
+
+void QUmlPortObject::setBehavior(bool isBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setBehavior(isBehavior);
+}
+
+void QUmlPortObject::setConjugated(bool isConjugated)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setConjugated(isConjugated);
+}
+
+void QUmlPortObject::setService(bool isService)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setService(isService);
+}
+
+void QUmlPortObject::setProtocol(QObject *protocol)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->setProtocol(qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(protocol));
+}
+
+void QUmlPortObject::addProvided(QObject *provided)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addProvided(qmodelingobjectproperty_cast<QUmlInterface *>(provided));
+}
+
+void QUmlPortObject::removeProvided(QObject *provided)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeProvided(qmodelingobjectproperty_cast<QUmlInterface *>(provided));
+}
+
+void QUmlPortObject::addRedefinedPort(QObject *redefinedPort)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addRedefinedPort(qmodelingobjectproperty_cast<QUmlPort *>(redefinedPort));
+}
+
+void QUmlPortObject::removeRedefinedPort(QObject *redefinedPort)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeRedefinedPort(qmodelingobjectproperty_cast<QUmlPort *>(redefinedPort));
+}
+
+void QUmlPortObject::addRequired(QObject *required)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->addRequired(qmodelingobjectproperty_cast<QUmlInterface *>(required));
+}
+
+void QUmlPortObject::removeRequired(QObject *required)
+{
+ qmodelingobjectproperty_cast<QUmlPort *>(this)->removeRequired(qmodelingobjectproperty_cast<QUmlInterface *>(required));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlportobject_p.h b/src/uml/qobjects/qumlportobject_p.h
new file mode 100644
index 00000000..f9f34db6
--- /dev/null
+++ b/src/uml/qobjects/qumlportobject_p.h
@@ -0,0 +1,345 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPORTOBJECT_H
+#define QUMLPORTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPort;
+class Q_UML_EXPORT QUmlPortObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [Feature]
+ Q_PROPERTY(QSet<QObject *> featuringClassifier READ featuringClassifier)
+ Q_PROPERTY(bool isStatic READ isStatic)
+
+ // Properties [StructuralFeature]
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [ConnectableElement]
+ Q_PROPERTY(QList<QObject *> end READ end)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [Property]
+ Q_PROPERTY(QtUml::AggregationKind aggregation READ aggregation)
+ Q_PROPERTY(QObject * association READ association)
+ Q_PROPERTY(QObject * associationEnd READ associationEnd)
+ Q_PROPERTY(QObject * class_ READ class_)
+ Q_PROPERTY(QObject * datatype READ datatype)
+ Q_PROPERTY(QString default_ READ default_)
+ Q_PROPERTY(QObject * defaultValue READ defaultValue)
+ Q_PROPERTY(QObject * interface_ READ interface_)
+ Q_PROPERTY(bool isComposite READ isComposite)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(bool isDerivedUnion READ isDerivedUnion)
+ Q_PROPERTY(bool isID READ isID)
+ Q_PROPERTY(bool isReadOnly READ isReadOnly)
+ Q_PROPERTY(QObject * opposite READ opposite)
+ Q_PROPERTY(QObject * owningAssociation READ owningAssociation)
+ Q_PROPERTY(QList<QObject *> qualifier READ qualifier)
+ Q_PROPERTY(QSet<QObject *> redefinedProperty READ redefinedProperty)
+ Q_PROPERTY(QSet<QObject *> subsettedProperty READ subsettedProperty)
+
+ // Properties [Port]
+ Q_PROPERTY(bool isBehavior READ isBehavior)
+ Q_PROPERTY(bool isConjugated READ isConjugated)
+ Q_PROPERTY(bool isService READ isService)
+ Q_PROPERTY(QObject * protocol READ protocol)
+ Q_PROPERTY(QSet<QObject *> provided READ provided)
+ Q_PROPERTY(QSet<QObject *> redefinedPort READ redefinedPort)
+ Q_PROPERTY(QSet<QObject *> required READ required)
+
+public:
+ Q_INVOKABLE explicit QUmlPortObject(QUmlPort *qModelingObject);
+ virtual ~QUmlPortObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [Feature]
+ Q_INVOKABLE const QSet<QObject *> featuringClassifier() const;
+ Q_INVOKABLE bool isStatic() const;
+
+ // Owned attributes [StructuralFeature]
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [ConnectableElement]
+ Q_INVOKABLE const QList<QObject *> end() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [Property]
+ Q_INVOKABLE QtUml::AggregationKind aggregation() const;
+ Q_INVOKABLE QObject *association() const;
+ Q_INVOKABLE QObject *associationEnd() const;
+ Q_INVOKABLE QObject *class_() const;
+ Q_INVOKABLE QObject *datatype() const;
+ Q_INVOKABLE QString default_() const;
+ Q_INVOKABLE QObject *defaultValue() const;
+ Q_INVOKABLE QObject *interface_() const;
+ Q_INVOKABLE bool isComposite() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE bool isDerivedUnion() const;
+ Q_INVOKABLE bool isID() const;
+ Q_INVOKABLE bool isReadOnly() const;
+ Q_INVOKABLE QObject *opposite() const;
+ Q_INVOKABLE QObject *owningAssociation() const;
+ Q_INVOKABLE const QList<QObject *> qualifier() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedProperty() const;
+ Q_INVOKABLE const QSet<QObject *> subsettedProperty() const;
+
+ // Owned attributes [Port]
+ Q_INVOKABLE bool isBehavior() const;
+ Q_INVOKABLE bool isConjugated() const;
+ Q_INVOKABLE bool isService() const;
+ Q_INVOKABLE QObject *protocol() const;
+ Q_INVOKABLE const QSet<QObject *> provided() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedPort() const;
+ Q_INVOKABLE const QSet<QObject *> required() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Property]
+ Q_INVOKABLE bool isAttribute(QObject *p) const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isNavigable() const;
+ Q_INVOKABLE QSet<QObject *> subsettingContext() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [Feature]
+ void Q_DECL_HIDDEN addFeaturingClassifier(QObject *featuringClassifier);
+ void Q_DECL_HIDDEN removeFeaturingClassifier(QObject *featuringClassifier);
+ void setStatic(bool isStatic);
+
+ // Slots for owned attributes [StructuralFeature]
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [ConnectableElement]
+ void Q_DECL_HIDDEN addEnd(QObject *end);
+ void Q_DECL_HIDDEN removeEnd(QObject *end);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [Property]
+ void setAggregation(QtUml::AggregationKind aggregation);
+ void setAssociation(QObject *association = 0);
+ void setAssociationEnd(QObject *associationEnd = 0);
+ void setClass(QObject *class_ = 0);
+ void setDatatype(QObject *datatype = 0);
+ void setDefault(QString default_);
+ void setDefaultValue(QObject *defaultValue = 0);
+ void setInterface(QObject *interface_ = 0);
+ void setComposite(bool isComposite);
+ void setDerived(bool isDerived);
+ void setDerivedUnion(bool isDerivedUnion);
+ void setID(bool isID);
+ void setReadOnly(bool isReadOnly);
+ void setOpposite(QObject *opposite = 0);
+ void setOwningAssociation(QObject *owningAssociation = 0);
+ void addQualifier(QObject *qualifier);
+ void removeQualifier(QObject *qualifier);
+ void addRedefinedProperty(QObject *redefinedProperty);
+ void removeRedefinedProperty(QObject *redefinedProperty);
+ void addSubsettedProperty(QObject *subsettedProperty);
+ void removeSubsettedProperty(QObject *subsettedProperty);
+
+ // Slots for owned attributes [Port]
+ void setBehavior(bool isBehavior);
+ void setConjugated(bool isConjugated);
+ void setService(bool isService);
+ void setProtocol(QObject *protocol = 0);
+ void Q_DECL_HIDDEN addProvided(QObject *provided);
+ void Q_DECL_HIDDEN removeProvided(QObject *provided);
+ void addRedefinedPort(QObject *redefinedPort);
+ void removeRedefinedPort(QObject *redefinedPort);
+ void Q_DECL_HIDDEN addRequired(QObject *required);
+ void Q_DECL_HIDDEN removeRequired(QObject *required);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPORTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlprimitivetypeobject.cpp b/src/uml/qobjects/qumlprimitivetypeobject.cpp
new file mode 100644
index 00000000..76d49e7c
--- /dev/null
+++ b/src/uml/qobjects/qumlprimitivetypeobject.cpp
@@ -0,0 +1,894 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlprimitivetypeobject_p.h"
+
+#include <QtUml/QUmlPrimitiveType>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPrimitiveTypeObject::QUmlPrimitiveTypeObject(QUmlPrimitiveType *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPrimitiveTypeObject::~QUmlPrimitiveTypeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPrimitiveTypeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlPrimitiveTypeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->name();
+}
+
+QObject *QUmlPrimitiveTypeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlPrimitiveTypeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlPrimitiveTypeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlPrimitiveTypeObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlPrimitiveTypeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlPrimitiveTypeObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlPrimitiveTypeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPrimitiveTypeObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isAbstract();
+}
+
+bool QUmlPrimitiveTypeObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlPrimitiveTypeObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPrimitiveTypeObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPrimitiveTypeObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlPrimitiveTypeObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DataType]
+
+const QList<QObject *> QUmlPrimitiveTypeObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlPrimitiveTypeObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPrimitiveTypeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPrimitiveTypeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlPrimitiveTypeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPrimitiveTypeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPrimitiveTypeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlPrimitiveTypeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlPrimitiveTypeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlPrimitiveTypeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlPrimitiveTypeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPrimitiveTypeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlPrimitiveTypeObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlPrimitiveTypeObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlPrimitiveTypeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlPrimitiveTypeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlPrimitiveTypeObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlPrimitiveTypeObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPrimitiveTypeObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPrimitiveTypeObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlPrimitiveTypeObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlPrimitiveTypeObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPrimitiveTypeObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->isTemplate();
+}
+
+bool QUmlPrimitiveTypeObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlPrimitiveTypeObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [DataType]
+
+QSet<QObject *> QUmlPrimitiveTypeObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPrimitiveTypeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPrimitiveTypeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPrimitiveTypeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlPrimitiveTypeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPrimitiveTypeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPrimitiveTypeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setName(name);
+}
+
+void QUmlPrimitiveTypeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlPrimitiveTypeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlPrimitiveTypeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlPrimitiveTypeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlPrimitiveTypeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlPrimitiveTypeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlPrimitiveTypeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlPrimitiveTypeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlPrimitiveTypeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlPrimitiveTypeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlPrimitiveTypeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlPrimitiveTypeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlPrimitiveTypeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlPrimitiveTypeObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlPrimitiveTypeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlPrimitiveTypeObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlPrimitiveTypeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlPrimitiveTypeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlPrimitiveTypeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlPrimitiveTypeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlPrimitiveTypeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlPrimitiveTypeObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlPrimitiveTypeObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlPrimitiveTypeObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlPrimitiveTypeObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlPrimitiveTypeObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlPrimitiveTypeObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlPrimitiveTypeObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlPrimitiveTypeObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlPrimitiveTypeObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlPrimitiveTypeObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlPrimitiveTypeObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlPrimitiveTypeObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlPrimitiveTypeObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlPrimitiveTypeObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlPrimitiveTypeObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlPrimitiveTypeObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlPrimitiveTypeObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlPrimitiveTypeObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlPrimitiveTypeObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlPrimitiveTypeObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlPrimitiveTypeObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlPrimitiveTypeObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlPrimitiveTypeObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlPrimitiveTypeObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlPrimitiveTypeObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlPrimitiveTypeObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlPrimitiveTypeObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlPrimitiveTypeObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DataType]
+
+void QUmlPrimitiveTypeObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlPrimitiveTypeObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlPrimitiveTypeObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlPrimitiveType *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlprimitivetypeobject_p.h b/src/uml/qobjects/qumlprimitivetypeobject_p.h
new file mode 100644
index 00000000..84f1fca7
--- /dev/null
+++ b/src/uml/qobjects/qumlprimitivetypeobject_p.h
@@ -0,0 +1,317 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPRIMITIVETYPEOBJECT_H
+#define QUMLPRIMITIVETYPEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPrimitiveType;
+class Q_UML_EXPORT QUmlPrimitiveTypeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [DataType]
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+
+public:
+ Q_INVOKABLE explicit QUmlPrimitiveTypeObject(QUmlPrimitiveType *qModelingObject);
+ virtual ~QUmlPrimitiveTypeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [DataType]
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [DataType]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [DataType]
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPRIMITIVETYPEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlprofileapplicationobject.cpp b/src/uml/qobjects/qumlprofileapplicationobject.cpp
new file mode 100644
index 00000000..1317a75b
--- /dev/null
+++ b/src/uml/qobjects/qumlprofileapplicationobject.cpp
@@ -0,0 +1,226 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlprofileapplicationobject_p.h"
+
+#include <QtUml/QUmlProfileApplication>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlProfile>
+
+QT_BEGIN_NAMESPACE
+
+QUmlProfileApplicationObject::QUmlProfileApplicationObject(QUmlProfileApplication *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlProfileApplicationObject::~QUmlProfileApplicationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlProfileApplicationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileApplicationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProfileApplicationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlProfileApplicationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlProfileApplicationObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileApplicationObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ProfileApplication]
+
+QObject *QUmlProfileApplicationObject::appliedProfile() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->appliedProfile()->asQObject();
+}
+
+QObject *QUmlProfileApplicationObject::applyingPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->applyingPackage()->asQObject();
+}
+
+bool QUmlProfileApplicationObject::isStrict() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->isStrict();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlProfileApplicationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProfileApplicationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlProfileApplicationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProfileApplicationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProfileApplicationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProfileApplicationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProfileApplicationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlProfileApplicationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlProfileApplicationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlProfileApplicationObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlProfileApplicationObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlProfileApplicationObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlProfileApplicationObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ProfileApplication]
+
+void QUmlProfileApplicationObject::setAppliedProfile(QObject *appliedProfile)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->setAppliedProfile(qmodelingobjectproperty_cast<QUmlProfile *>(appliedProfile));
+}
+
+void QUmlProfileApplicationObject::setApplyingPackage(QObject *applyingPackage)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->setApplyingPackage(qmodelingobjectproperty_cast<QUmlPackage *>(applyingPackage));
+}
+
+void QUmlProfileApplicationObject::setStrict(bool isStrict)
+{
+ qmodelingobjectproperty_cast<QUmlProfileApplication *>(this)->setStrict(isStrict);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlprofileapplicationobject_p.h b/src/uml/qobjects/qumlprofileapplicationobject_p.h
new file mode 100644
index 00000000..c4b0a416
--- /dev/null
+++ b/src/uml/qobjects/qumlprofileapplicationobject_p.h
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPROFILEAPPLICATIONOBJECT_H
+#define QUMLPROFILEAPPLICATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlProfileApplication;
+class Q_UML_EXPORT QUmlProfileApplicationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [ProfileApplication]
+ Q_PROPERTY(QObject * appliedProfile READ appliedProfile)
+ Q_PROPERTY(QObject * applyingPackage READ applyingPackage)
+ Q_PROPERTY(bool isStrict READ isStrict)
+
+public:
+ Q_INVOKABLE explicit QUmlProfileApplicationObject(QUmlProfileApplication *qModelingObject);
+ virtual ~QUmlProfileApplicationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [ProfileApplication]
+ Q_INVOKABLE QObject *appliedProfile() const;
+ Q_INVOKABLE QObject *applyingPackage() const;
+ Q_INVOKABLE bool isStrict() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [ProfileApplication]
+ void setAppliedProfile(QObject *appliedProfile = 0);
+ void setApplyingPackage(QObject *applyingPackage = 0);
+ void setStrict(bool isStrict);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPROFILEAPPLICATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlprofileobject.cpp b/src/uml/qobjects/qumlprofileobject.cpp
new file mode 100644
index 00000000..3ec88186
--- /dev/null
+++ b/src/uml/qobjects/qumlprofileobject.cpp
@@ -0,0 +1,675 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlprofileobject_p.h"
+
+#include <QtUml/QUmlProfile>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlPackageMerge>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProfileApplication>
+#include <QtUml/QUmlStereotype>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlProfileObject::QUmlProfileObject(QUmlProfile *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlProfileObject::~QUmlProfileObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlProfileObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProfileObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlProfileObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlProfileObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->name();
+}
+
+QObject *QUmlProfileObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlProfileObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlProfileObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlProfileObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlProfileObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlProfileObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlProfileObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+QObject *QUmlProfileObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlProfileObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Package]
+
+QString QUmlProfileObject::URI() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->URI();
+}
+
+const QSet<QObject *> QUmlProfileObject::nestedPackage() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->nestedPackage())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProfileObject::nestingPackage() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->nestingPackage()->asQObject();
+}
+
+const QSet<QObject *> QUmlProfileObject::ownedStereotype() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStereotype *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedStereotype())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::ownedType() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->ownedType())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::packageMerge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageMerge *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->packageMerge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::packagedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->packagedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::profileApplication() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProfileApplication *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->profileApplication())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Profile]
+
+const QSet<QObject *> QUmlProfileObject::metaclassReference() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->metaclassReference())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProfileObject::metamodelReference() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->metamodelReference())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlProfileObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlProfileObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlProfileObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProfileObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlProfileObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlProfileObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlProfileObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlProfileObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProfileObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlProfileObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlProfileObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [TemplateableElement]
+
+bool QUmlProfileObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->isTemplate();
+}
+
+QSet<QObject *> QUmlProfileObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Package]
+
+QSet<QObject *> QUmlProfileObject::allApplicableStereotypes() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStereotype *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->allApplicableStereotypes())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProfileObject::containingProfile() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->containingProfile()->asQObject();
+}
+
+bool QUmlProfileObject::makesVisible(QObject *el) const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->makesVisible(qmodelingobjectproperty_cast<QUmlNamedElement *>(el));
+}
+
+bool QUmlProfileObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlProfile *>(this)->mustBeOwned();
+}
+
+QSet<QObject *> QUmlProfileObject::visibleMembers() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProfile *>(this)->visibleMembers())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlProfileObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProfileObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProfileObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProfileObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProfileObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlProfileObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlProfileObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlProfileObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setName(name);
+}
+
+void QUmlProfileObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlProfileObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlProfileObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlProfileObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlProfileObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlProfileObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlProfileObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlProfileObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlProfileObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlProfileObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlProfileObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlProfileObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlProfileObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlProfileObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlProfileObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlProfileObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlProfileObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlProfileObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlProfileObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlProfileObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlProfileObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Package]
+
+void QUmlProfileObject::setURI(QString URI)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setURI(URI);
+}
+
+void QUmlProfileObject::addNestedPackage(QObject *nestedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addNestedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestedPackage));
+}
+
+void QUmlProfileObject::removeNestedPackage(QObject *nestedPackage)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeNestedPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestedPackage));
+}
+
+void QUmlProfileObject::setNestingPackage(QObject *nestingPackage)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->setNestingPackage(qmodelingobjectproperty_cast<QUmlPackage *>(nestingPackage));
+}
+
+void QUmlProfileObject::addOwnedStereotype(QObject *ownedStereotype)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addOwnedStereotype(qmodelingobjectproperty_cast<QUmlStereotype *>(ownedStereotype));
+}
+
+void QUmlProfileObject::removeOwnedStereotype(QObject *ownedStereotype)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeOwnedStereotype(qmodelingobjectproperty_cast<QUmlStereotype *>(ownedStereotype));
+}
+
+void QUmlProfileObject::addOwnedType(QObject *ownedType)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addOwnedType(qmodelingobjectproperty_cast<QUmlType *>(ownedType));
+}
+
+void QUmlProfileObject::removeOwnedType(QObject *ownedType)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeOwnedType(qmodelingobjectproperty_cast<QUmlType *>(ownedType));
+}
+
+void QUmlProfileObject::addPackageMerge(QObject *packageMerge)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addPackageMerge(qmodelingobjectproperty_cast<QUmlPackageMerge *>(packageMerge));
+}
+
+void QUmlProfileObject::removePackageMerge(QObject *packageMerge)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removePackageMerge(qmodelingobjectproperty_cast<QUmlPackageMerge *>(packageMerge));
+}
+
+void QUmlProfileObject::addPackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addPackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlProfileObject::removePackagedElement(QObject *packagedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removePackagedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(packagedElement));
+}
+
+void QUmlProfileObject::addProfileApplication(QObject *profileApplication)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addProfileApplication(qmodelingobjectproperty_cast<QUmlProfileApplication *>(profileApplication));
+}
+
+void QUmlProfileObject::removeProfileApplication(QObject *profileApplication)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeProfileApplication(qmodelingobjectproperty_cast<QUmlProfileApplication *>(profileApplication));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Profile]
+
+void QUmlProfileObject::addMetaclassReference(QObject *metaclassReference)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addMetaclassReference(qmodelingobjectproperty_cast<QUmlElementImport *>(metaclassReference));
+}
+
+void QUmlProfileObject::removeMetaclassReference(QObject *metaclassReference)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeMetaclassReference(qmodelingobjectproperty_cast<QUmlElementImport *>(metaclassReference));
+}
+
+void QUmlProfileObject::addMetamodelReference(QObject *metamodelReference)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->addMetamodelReference(qmodelingobjectproperty_cast<QUmlPackageImport *>(metamodelReference));
+}
+
+void QUmlProfileObject::removeMetamodelReference(QObject *metamodelReference)
+{
+ qmodelingobjectproperty_cast<QUmlProfile *>(this)->removeMetamodelReference(qmodelingobjectproperty_cast<QUmlPackageImport *>(metamodelReference));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlprofileobject_p.h b/src/uml/qobjects/qumlprofileobject_p.h
new file mode 100644
index 00000000..7bb75b81
--- /dev/null
+++ b/src/uml/qobjects/qumlprofileobject_p.h
@@ -0,0 +1,256 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPROFILEOBJECT_H
+#define QUMLPROFILEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlProfile;
+class Q_UML_EXPORT QUmlProfileObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Package]
+ Q_PROPERTY(QString URI READ URI)
+ Q_PROPERTY(QSet<QObject *> nestedPackage READ nestedPackage)
+ Q_PROPERTY(QObject * nestingPackage READ nestingPackage)
+ Q_PROPERTY(QSet<QObject *> ownedStereotype READ ownedStereotype)
+ Q_PROPERTY(QSet<QObject *> ownedType READ ownedType)
+ Q_PROPERTY(QSet<QObject *> packageMerge READ packageMerge)
+ Q_PROPERTY(QSet<QObject *> packagedElement READ packagedElement)
+ Q_PROPERTY(QSet<QObject *> profileApplication READ profileApplication)
+
+ // Properties [Profile]
+ Q_PROPERTY(QSet<QObject *> metaclassReference READ metaclassReference)
+ Q_PROPERTY(QSet<QObject *> metamodelReference READ metamodelReference)
+
+public:
+ Q_INVOKABLE explicit QUmlProfileObject(QUmlProfile *qModelingObject);
+ virtual ~QUmlProfileObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Package]
+ Q_INVOKABLE QString URI() const;
+ Q_INVOKABLE const QSet<QObject *> nestedPackage() const;
+ Q_INVOKABLE QObject *nestingPackage() const;
+ Q_INVOKABLE const QSet<QObject *> ownedStereotype() const;
+ Q_INVOKABLE const QSet<QObject *> ownedType() const;
+ Q_INVOKABLE const QSet<QObject *> packageMerge() const;
+ Q_INVOKABLE const QSet<QObject *> packagedElement() const;
+ Q_INVOKABLE const QSet<QObject *> profileApplication() const;
+
+ // Owned attributes [Profile]
+ Q_INVOKABLE const QSet<QObject *> metaclassReference() const;
+ Q_INVOKABLE const QSet<QObject *> metamodelReference() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Package]
+ Q_INVOKABLE QSet<QObject *> allApplicableStereotypes() const;
+ Q_INVOKABLE QObject *containingProfile() const;
+ Q_INVOKABLE bool makesVisible(QObject *el) const;
+ Q_INVOKABLE bool mustBeOwned() const;
+ Q_INVOKABLE QSet<QObject *> visibleMembers() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TemplateableElement]
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Package]
+ void setURI(QString URI);
+ void addNestedPackage(QObject *nestedPackage);
+ void removeNestedPackage(QObject *nestedPackage);
+ void setNestingPackage(QObject *nestingPackage = 0);
+ void Q_DECL_HIDDEN addOwnedStereotype(QObject *ownedStereotype);
+ void Q_DECL_HIDDEN removeOwnedStereotype(QObject *ownedStereotype);
+ void addOwnedType(QObject *ownedType);
+ void removeOwnedType(QObject *ownedType);
+ void addPackageMerge(QObject *packageMerge);
+ void removePackageMerge(QObject *packageMerge);
+ void addPackagedElement(QObject *packagedElement);
+ void removePackagedElement(QObject *packagedElement);
+ void addProfileApplication(QObject *profileApplication);
+ void removeProfileApplication(QObject *profileApplication);
+
+ // Slots for owned attributes [Profile]
+ void addMetaclassReference(QObject *metaclassReference);
+ void removeMetaclassReference(QObject *metaclassReference);
+ void addMetamodelReference(QObject *metamodelReference);
+ void removeMetamodelReference(QObject *metamodelReference);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPROFILEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlpropertyobject.cpp b/src/uml/qobjects/qumlpropertyobject.cpp
new file mode 100644
index 00000000..505f769a
--- /dev/null
+++ b/src/uml/qobjects/qumlpropertyobject.cpp
@@ -0,0 +1,781 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlpropertyobject_p.h"
+
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElementTemplateParameter>
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlDataType>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlDeployment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterface>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPropertyObject::QUmlPropertyObject(QUmlProperty *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPropertyObject::~QUmlPropertyObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPropertyObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPropertyObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPropertyObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlPropertyObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlPropertyObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->name();
+}
+
+QObject *QUmlPropertyObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlPropertyObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlPropertyObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlPropertyObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlPropertyObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlPropertyObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isOrdered();
+}
+
+bool QUmlPropertyObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isUnique();
+}
+
+int QUmlPropertyObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->lower();
+}
+
+QObject *QUmlPropertyObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlPropertyObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->upper();
+}
+
+QObject *QUmlPropertyObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlPropertyObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlPropertyObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPropertyObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Feature]
+
+const QSet<QObject *> QUmlPropertyObject::featuringClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->featuringClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPropertyObject::isStatic() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isStatic();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlPropertyObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [ConnectableElement]
+
+const QList<QObject *> QUmlPropertyObject::end() const
+{
+ QList<QObject *> list;
+ foreach (QUmlConnectorEnd *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->end())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlPropertyObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [DeploymentTarget]
+
+const QSet<QObject *> QUmlPropertyObject::deployedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->deployedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPropertyObject::deployment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDeployment *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->deployment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Property]
+
+QtUml::AggregationKind QUmlPropertyObject::aggregation() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->aggregation();
+}
+
+QObject *QUmlPropertyObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->association()->asQObject();
+}
+
+QObject *QUmlPropertyObject::associationEnd() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->associationEnd()->asQObject();
+}
+
+QObject *QUmlPropertyObject::class_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->class_()->asQObject();
+}
+
+QObject *QUmlPropertyObject::datatype() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->datatype()->asQObject();
+}
+
+QString QUmlPropertyObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->default_();
+}
+
+QObject *QUmlPropertyObject::defaultValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->defaultValue()->asQObject();
+}
+
+QObject *QUmlPropertyObject::interface_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->interface_()->asQObject();
+}
+
+bool QUmlPropertyObject::isComposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isComposite();
+}
+
+bool QUmlPropertyObject::isDerived() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isDerived();
+}
+
+bool QUmlPropertyObject::isDerivedUnion() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isDerivedUnion();
+}
+
+bool QUmlPropertyObject::isID() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isID();
+}
+
+bool QUmlPropertyObject::isReadOnly() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isReadOnly();
+}
+
+QObject *QUmlPropertyObject::opposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->opposite()->asQObject();
+}
+
+QObject *QUmlPropertyObject::owningAssociation() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->owningAssociation()->asQObject();
+}
+
+const QList<QObject *> QUmlPropertyObject::qualifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->qualifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlPropertyObject::redefinedProperty() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->redefinedProperty())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPropertyObject::subsettedProperty() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->subsettedProperty())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPropertyObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPropertyObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlPropertyObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPropertyObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPropertyObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlPropertyObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->separator();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlPropertyObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlPropertyObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->includesCardinality(C);
+}
+
+bool QUmlPropertyObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlPropertyObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlPropertyObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isMultivalued();
+}
+
+int QUmlPropertyObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->lowerBound();
+}
+
+//int QUmlPropertyObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlProperty *>(this)->upperBound();
+//}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlPropertyObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlPropertyObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Property]
+
+bool QUmlPropertyObject::isAttribute(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(p));
+}
+
+bool QUmlPropertyObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlPropertyObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlPropertyObject::isNavigable() const
+{
+ return qmodelingobjectproperty_cast<QUmlProperty *>(this)->isNavigable();
+}
+
+QSet<QObject *> QUmlPropertyObject::subsettingContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlProperty *>(this)->subsettingContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPropertyObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPropertyObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPropertyObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPropertyObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPropertyObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlPropertyObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPropertyObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPropertyObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setName(name);
+}
+
+void QUmlPropertyObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlPropertyObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlPropertyObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlPropertyObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlPropertyObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlPropertyObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlPropertyObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setUnique(isUnique);
+}
+
+void QUmlPropertyObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setLower(lower);
+}
+
+void QUmlPropertyObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlPropertyObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setUpper(upper);
+}
+
+void QUmlPropertyObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlPropertyObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlPropertyObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlPropertyObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlPropertyObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlPropertyObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Feature]
+
+void QUmlPropertyObject::addFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlPropertyObject::removeFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlPropertyObject::setStatic(bool isStatic)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setStatic(isStatic);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlPropertyObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
+
+void QUmlPropertyObject::addEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlPropertyObject::removeEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlPropertyObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+
+void QUmlPropertyObject::addDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlPropertyObject::removeDeployedElement(QObject *deployedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeDeployedElement(qmodelingobjectproperty_cast<QUmlPackageableElement *>(deployedElement));
+}
+
+void QUmlPropertyObject::addDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+void QUmlPropertyObject::removeDeployment(QObject *deployment)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeDeployment(qmodelingobjectproperty_cast<QUmlDeployment *>(deployment));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Property]
+
+void QUmlPropertyObject::setAggregation(QtUml::AggregationKind aggregation)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setAggregation(aggregation);
+}
+
+void QUmlPropertyObject::setAssociation(QObject *association)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(association));
+}
+
+void QUmlPropertyObject::setAssociationEnd(QObject *associationEnd)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setAssociationEnd(qmodelingobjectproperty_cast<QUmlProperty *>(associationEnd));
+}
+
+void QUmlPropertyObject::setClass(QObject *class_)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setClass(qmodelingobjectproperty_cast<QUmlClass *>(class_));
+}
+
+void QUmlPropertyObject::setDatatype(QObject *datatype)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setDatatype(qmodelingobjectproperty_cast<QUmlDataType *>(datatype));
+}
+
+void QUmlPropertyObject::setDefault(QString default_)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setDefault(default_);
+}
+
+void QUmlPropertyObject::setDefaultValue(QObject *defaultValue)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setDefaultValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(defaultValue));
+}
+
+void QUmlPropertyObject::setInterface(QObject *interface_)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setInterface(qmodelingobjectproperty_cast<QUmlInterface *>(interface_));
+}
+
+void QUmlPropertyObject::setComposite(bool isComposite)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setComposite(isComposite);
+}
+
+void QUmlPropertyObject::setDerived(bool isDerived)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setDerived(isDerived);
+}
+
+void QUmlPropertyObject::setDerivedUnion(bool isDerivedUnion)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setDerivedUnion(isDerivedUnion);
+}
+
+void QUmlPropertyObject::setID(bool isID)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setID(isID);
+}
+
+void QUmlPropertyObject::setReadOnly(bool isReadOnly)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setReadOnly(isReadOnly);
+}
+
+void QUmlPropertyObject::setOpposite(QObject *opposite)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setOpposite(qmodelingobjectproperty_cast<QUmlProperty *>(opposite));
+}
+
+void QUmlPropertyObject::setOwningAssociation(QObject *owningAssociation)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->setOwningAssociation(qmodelingobjectproperty_cast<QUmlAssociation *>(owningAssociation));
+}
+
+void QUmlPropertyObject::addQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlPropertyObject::removeQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlPropertyObject::addRedefinedProperty(QObject *redefinedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addRedefinedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(redefinedProperty));
+}
+
+void QUmlPropertyObject::removeRedefinedProperty(QObject *redefinedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeRedefinedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(redefinedProperty));
+}
+
+void QUmlPropertyObject::addSubsettedProperty(QObject *subsettedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->addSubsettedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(subsettedProperty));
+}
+
+void QUmlPropertyObject::removeSubsettedProperty(QObject *subsettedProperty)
+{
+ qmodelingobjectproperty_cast<QUmlProperty *>(this)->removeSubsettedProperty(qmodelingobjectproperty_cast<QUmlProperty *>(subsettedProperty));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlpropertyobject_p.h b/src/uml/qobjects/qumlpropertyobject_p.h
new file mode 100644
index 00000000..a8c23450
--- /dev/null
+++ b/src/uml/qobjects/qumlpropertyobject_p.h
@@ -0,0 +1,315 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPROPERTYOBJECT_H
+#define QUMLPROPERTYOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlProperty;
+class Q_UML_EXPORT QUmlPropertyObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [Feature]
+ Q_PROPERTY(QSet<QObject *> featuringClassifier READ featuringClassifier)
+ Q_PROPERTY(bool isStatic READ isStatic)
+
+ // Properties [StructuralFeature]
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [ConnectableElement]
+ Q_PROPERTY(QList<QObject *> end READ end)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [DeploymentTarget]
+ Q_PROPERTY(QSet<QObject *> deployedElement READ deployedElement)
+ Q_PROPERTY(QSet<QObject *> deployment READ deployment)
+
+ // Properties [Property]
+ Q_PROPERTY(QtUml::AggregationKind aggregation READ aggregation)
+ Q_PROPERTY(QObject * association READ association)
+ Q_PROPERTY(QObject * associationEnd READ associationEnd)
+ Q_PROPERTY(QObject * class_ READ class_)
+ Q_PROPERTY(QObject * datatype READ datatype)
+ Q_PROPERTY(QString default_ READ default_)
+ Q_PROPERTY(QObject * defaultValue READ defaultValue)
+ Q_PROPERTY(QObject * interface_ READ interface_)
+ Q_PROPERTY(bool isComposite READ isComposite)
+ Q_PROPERTY(bool isDerived READ isDerived)
+ Q_PROPERTY(bool isDerivedUnion READ isDerivedUnion)
+ Q_PROPERTY(bool isID READ isID)
+ Q_PROPERTY(bool isReadOnly READ isReadOnly)
+ Q_PROPERTY(QObject * opposite READ opposite)
+ Q_PROPERTY(QObject * owningAssociation READ owningAssociation)
+ Q_PROPERTY(QList<QObject *> qualifier READ qualifier)
+ Q_PROPERTY(QSet<QObject *> redefinedProperty READ redefinedProperty)
+ Q_PROPERTY(QSet<QObject *> subsettedProperty READ subsettedProperty)
+
+public:
+ Q_INVOKABLE explicit QUmlPropertyObject(QUmlProperty *qModelingObject);
+ virtual ~QUmlPropertyObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [Feature]
+ Q_INVOKABLE const QSet<QObject *> featuringClassifier() const;
+ Q_INVOKABLE bool isStatic() const;
+
+ // Owned attributes [StructuralFeature]
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [ConnectableElement]
+ Q_INVOKABLE const QList<QObject *> end() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [DeploymentTarget]
+ Q_INVOKABLE const QSet<QObject *> deployedElement() const;
+ Q_INVOKABLE const QSet<QObject *> deployment() const;
+
+ // Owned attributes [Property]
+ Q_INVOKABLE QtUml::AggregationKind aggregation() const;
+ Q_INVOKABLE QObject *association() const;
+ Q_INVOKABLE QObject *associationEnd() const;
+ Q_INVOKABLE QObject *class_() const;
+ Q_INVOKABLE QObject *datatype() const;
+ Q_INVOKABLE QString default_() const;
+ Q_INVOKABLE QObject *defaultValue() const;
+ Q_INVOKABLE QObject *interface_() const;
+ Q_INVOKABLE bool isComposite() const;
+ Q_INVOKABLE bool isDerived() const;
+ Q_INVOKABLE bool isDerivedUnion() const;
+ Q_INVOKABLE bool isID() const;
+ Q_INVOKABLE bool isReadOnly() const;
+ Q_INVOKABLE QObject *opposite() const;
+ Q_INVOKABLE QObject *owningAssociation() const;
+ Q_INVOKABLE const QList<QObject *> qualifier() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedProperty() const;
+ Q_INVOKABLE const QSet<QObject *> subsettedProperty() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Property]
+ Q_INVOKABLE bool isAttribute(QObject *p) const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isNavigable() const;
+ Q_INVOKABLE QSet<QObject *> subsettingContext() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [Feature]
+ void Q_DECL_HIDDEN addFeaturingClassifier(QObject *featuringClassifier);
+ void Q_DECL_HIDDEN removeFeaturingClassifier(QObject *featuringClassifier);
+ void setStatic(bool isStatic);
+
+ // Slots for owned attributes [StructuralFeature]
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [ConnectableElement]
+ void Q_DECL_HIDDEN addEnd(QObject *end);
+ void Q_DECL_HIDDEN removeEnd(QObject *end);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [DeploymentTarget]
+ void Q_DECL_HIDDEN addDeployedElement(QObject *deployedElement);
+ void Q_DECL_HIDDEN removeDeployedElement(QObject *deployedElement);
+ void addDeployment(QObject *deployment);
+ void removeDeployment(QObject *deployment);
+
+ // Slots for owned attributes [Property]
+ void setAggregation(QtUml::AggregationKind aggregation);
+ void setAssociation(QObject *association = 0);
+ void setAssociationEnd(QObject *associationEnd = 0);
+ void setClass(QObject *class_ = 0);
+ void setDatatype(QObject *datatype = 0);
+ void setDefault(QString default_);
+ void setDefaultValue(QObject *defaultValue = 0);
+ void setInterface(QObject *interface_ = 0);
+ void setComposite(bool isComposite);
+ void setDerived(bool isDerived);
+ void setDerivedUnion(bool isDerivedUnion);
+ void setID(bool isID);
+ void setReadOnly(bool isReadOnly);
+ void setOpposite(QObject *opposite = 0);
+ void setOwningAssociation(QObject *owningAssociation = 0);
+ void addQualifier(QObject *qualifier);
+ void removeQualifier(QObject *qualifier);
+ void addRedefinedProperty(QObject *redefinedProperty);
+ void removeRedefinedProperty(QObject *redefinedProperty);
+ void addSubsettedProperty(QObject *subsettedProperty);
+ void removeSubsettedProperty(QObject *subsettedProperty);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPROPERTYOBJECT_H
+
diff --git a/src/uml/qobjects/qumlprotocolconformanceobject.cpp b/src/uml/qobjects/qumlprotocolconformanceobject.cpp
new file mode 100644
index 00000000..50aa70da
--- /dev/null
+++ b/src/uml/qobjects/qumlprotocolconformanceobject.cpp
@@ -0,0 +1,215 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlprotocolconformanceobject_p.h"
+
+#include <QtUml/QUmlProtocolConformance>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlProtocolStateMachine>
+
+QT_BEGIN_NAMESPACE
+
+QUmlProtocolConformanceObject::QUmlProtocolConformanceObject(QUmlProtocolConformance *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlProtocolConformanceObject::~QUmlProtocolConformanceObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlProtocolConformanceObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolConformanceObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProtocolConformanceObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlProtocolConformanceObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlProtocolConformanceObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolConformanceObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ProtocolConformance]
+
+QObject *QUmlProtocolConformanceObject::generalMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->generalMachine()->asQObject();
+}
+
+QObject *QUmlProtocolConformanceObject::specificMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->specificMachine()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlProtocolConformanceObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolConformanceObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlProtocolConformanceObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProtocolConformanceObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProtocolConformanceObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProtocolConformanceObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProtocolConformanceObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlProtocolConformanceObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlProtocolConformanceObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlProtocolConformanceObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlProtocolConformanceObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlProtocolConformanceObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlProtocolConformanceObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ProtocolConformance]
+
+void QUmlProtocolConformanceObject::setGeneralMachine(QObject *generalMachine)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->setGeneralMachine(qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(generalMachine));
+}
+
+void QUmlProtocolConformanceObject::setSpecificMachine(QObject *specificMachine)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolConformance *>(this)->setSpecificMachine(qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(specificMachine));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlprotocolconformanceobject_p.h b/src/uml/qobjects/qumlprotocolconformanceobject_p.h
new file mode 100644
index 00000000..8dee849e
--- /dev/null
+++ b/src/uml/qobjects/qumlprotocolconformanceobject_p.h
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPROTOCOLCONFORMANCEOBJECT_H
+#define QUMLPROTOCOLCONFORMANCEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlProtocolConformance;
+class Q_UML_EXPORT QUmlProtocolConformanceObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [ProtocolConformance]
+ Q_PROPERTY(QObject * generalMachine READ generalMachine)
+ Q_PROPERTY(QObject * specificMachine READ specificMachine)
+
+public:
+ Q_INVOKABLE explicit QUmlProtocolConformanceObject(QUmlProtocolConformance *qModelingObject);
+ virtual ~QUmlProtocolConformanceObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [ProtocolConformance]
+ Q_INVOKABLE QObject *generalMachine() const;
+ Q_INVOKABLE QObject *specificMachine() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [ProtocolConformance]
+ void setGeneralMachine(QObject *generalMachine = 0);
+ void setSpecificMachine(QObject *specificMachine = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPROTOCOLCONFORMANCEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlprotocolstatemachineobject.cpp b/src/uml/qobjects/qumlprotocolstatemachineobject.cpp
new file mode 100644
index 00000000..cd08b5c4
--- /dev/null
+++ b/src/uml/qobjects/qumlprotocolstatemachineobject.cpp
@@ -0,0 +1,1320 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlprotocolstatemachineobject_p.h"
+
+#include <QtUml/QUmlProtocolStateMachine>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlProtocolConformance>
+#include <QtUml/QUmlPseudostate>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlProtocolStateMachineObject::QUmlProtocolStateMachineObject(QUmlProtocolStateMachine *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlProtocolStateMachineObject::~QUmlProtocolStateMachineObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProtocolStateMachineObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlProtocolStateMachineObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->name();
+}
+
+QObject *QUmlProtocolStateMachineObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlProtocolStateMachineObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlProtocolStateMachineObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlProtocolStateMachineObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlProtocolStateMachineObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlProtocolStateMachineObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlProtocolStateMachineObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlProtocolStateMachineObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProtocolStateMachineObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProtocolStateMachineObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlProtocolStateMachineObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isAbstract();
+}
+
+bool QUmlProtocolStateMachineObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlProtocolStateMachineObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlProtocolStateMachineObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlProtocolStateMachineObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Behavior]
+
+QObject *QUmlProtocolStateMachineObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->context()->asQObject();
+}
+
+bool QUmlProtocolStateMachineObject::isReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isReentrant();
+}
+
+const QList<QObject *> QUmlProtocolStateMachineObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProtocolStateMachineObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StateMachine]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::connectionPoint() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPseudostate *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->connectionPoint())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::extendedStateMachine() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStateMachine *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->extendedStateMachine())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::region() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRegion *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->region())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::submachineState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->submachineState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ProtocolStateMachine]
+
+const QSet<QObject *> QUmlProtocolStateMachineObject::conformance() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProtocolConformance *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->conformance())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlProtocolStateMachineObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlProtocolStateMachineObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlProtocolStateMachineObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlProtocolStateMachineObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlProtocolStateMachineObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlProtocolStateMachineObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlProtocolStateMachineObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlProtocolStateMachineObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlProtocolStateMachineObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlProtocolStateMachineObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlProtocolStateMachineObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlProtocolStateMachineObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlProtocolStateMachineObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlProtocolStateMachineObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolStateMachineObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isTemplate();
+}
+
+bool QUmlProtocolStateMachineObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlProtocolStateMachineObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlProtocolStateMachineObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [StateMachine]
+
+QObject *QUmlProtocolStateMachineObject::LCA(QObject *s1, QObject *s2) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->LCA(qmodelingobjectproperty_cast<QUmlState *>(s1), qmodelingobjectproperty_cast<QUmlState *>(s2))->asQObject();
+}
+
+bool QUmlProtocolStateMachineObject::ancestor(QObject *s1, QObject *s2) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->ancestor(qmodelingobjectproperty_cast<QUmlState *>(s1), qmodelingobjectproperty_cast<QUmlState *>(s2));
+}
+
+bool QUmlProtocolStateMachineObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlProtocolStateMachineObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlStateMachine *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlProtocolStateMachineObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProtocolStateMachineObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlProtocolStateMachineObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlProtocolStateMachineObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlProtocolStateMachineObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setName(name);
+}
+
+void QUmlProtocolStateMachineObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlProtocolStateMachineObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlProtocolStateMachineObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlProtocolStateMachineObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlProtocolStateMachineObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlProtocolStateMachineObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlProtocolStateMachineObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlProtocolStateMachineObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlProtocolStateMachineObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlProtocolStateMachineObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlProtocolStateMachineObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlProtocolStateMachineObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlProtocolStateMachineObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlProtocolStateMachineObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlProtocolStateMachineObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlProtocolStateMachineObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlProtocolStateMachineObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlProtocolStateMachineObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlProtocolStateMachineObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlProtocolStateMachineObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlProtocolStateMachineObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlProtocolStateMachineObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlProtocolStateMachineObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlProtocolStateMachineObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlProtocolStateMachineObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlProtocolStateMachineObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlProtocolStateMachineObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlProtocolStateMachineObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlProtocolStateMachineObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlProtocolStateMachineObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlProtocolStateMachineObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlProtocolStateMachineObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlProtocolStateMachineObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlProtocolStateMachineObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlProtocolStateMachineObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlProtocolStateMachineObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlProtocolStateMachineObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlProtocolStateMachineObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlProtocolStateMachineObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlProtocolStateMachineObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlProtocolStateMachineObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlProtocolStateMachineObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlProtocolStateMachineObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlProtocolStateMachineObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlProtocolStateMachineObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlProtocolStateMachineObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlProtocolStateMachineObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlProtocolStateMachineObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlProtocolStateMachineObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlProtocolStateMachineObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlProtocolStateMachineObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlProtocolStateMachineObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlProtocolStateMachineObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlProtocolStateMachineObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlProtocolStateMachineObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlProtocolStateMachineObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setActive(isActive);
+}
+
+void QUmlProtocolStateMachineObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlProtocolStateMachineObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlProtocolStateMachineObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlProtocolStateMachineObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Behavior]
+
+void QUmlProtocolStateMachineObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setContext(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(context));
+}
+
+void QUmlProtocolStateMachineObject::setReentrant(bool isReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setReentrant(isReentrant);
+}
+
+void QUmlProtocolStateMachineObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlProtocolStateMachineObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlProtocolStateMachineObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlProtocolStateMachineObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlProtocolStateMachineObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlProtocolStateMachineObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlProtocolStateMachineObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlProtocolStateMachineObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlBehavioralFeature *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StateMachine]
+
+void QUmlProtocolStateMachineObject::addConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlProtocolStateMachineObject::removeConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlProtocolStateMachineObject::addExtendedStateMachine(QObject *extendedStateMachine)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addExtendedStateMachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(extendedStateMachine));
+}
+
+void QUmlProtocolStateMachineObject::removeExtendedStateMachine(QObject *extendedStateMachine)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeExtendedStateMachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(extendedStateMachine));
+}
+
+void QUmlProtocolStateMachineObject::addRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlProtocolStateMachineObject::removeRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlProtocolStateMachineObject::addSubmachineState(QObject *submachineState)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addSubmachineState(qmodelingobjectproperty_cast<QUmlState *>(submachineState));
+}
+
+void QUmlProtocolStateMachineObject::removeSubmachineState(QObject *submachineState)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeSubmachineState(qmodelingobjectproperty_cast<QUmlState *>(submachineState));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ProtocolStateMachine]
+
+void QUmlProtocolStateMachineObject::addConformance(QObject *conformance)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->addConformance(qmodelingobjectproperty_cast<QUmlProtocolConformance *>(conformance));
+}
+
+void QUmlProtocolStateMachineObject::removeConformance(QObject *conformance)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolStateMachine *>(this)->removeConformance(qmodelingobjectproperty_cast<QUmlProtocolConformance *>(conformance));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlprotocolstatemachineobject_p.h b/src/uml/qobjects/qumlprotocolstatemachineobject_p.h
new file mode 100644
index 00000000..3d0e8233
--- /dev/null
+++ b/src/uml/qobjects/qumlprotocolstatemachineobject_p.h
@@ -0,0 +1,444 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPROTOCOLSTATEMACHINEOBJECT_H
+#define QUMLPROTOCOLSTATEMACHINEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlProtocolStateMachine;
+class Q_UML_EXPORT QUmlProtocolStateMachineObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Behavior]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(bool isReentrant READ isReentrant)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [StateMachine]
+ Q_PROPERTY(QSet<QObject *> connectionPoint READ connectionPoint)
+ Q_PROPERTY(QSet<QObject *> extendedStateMachine READ extendedStateMachine)
+ Q_PROPERTY(QSet<QObject *> region READ region)
+ Q_PROPERTY(QSet<QObject *> submachineState READ submachineState)
+
+ // Properties [ProtocolStateMachine]
+ Q_PROPERTY(QSet<QObject *> conformance READ conformance)
+
+public:
+ Q_INVOKABLE explicit QUmlProtocolStateMachineObject(QUmlProtocolStateMachine *qModelingObject);
+ virtual ~QUmlProtocolStateMachineObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Behavior]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE bool isReentrant() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [StateMachine]
+ Q_INVOKABLE const QSet<QObject *> connectionPoint() const;
+ Q_INVOKABLE const QSet<QObject *> extendedStateMachine() const;
+ Q_INVOKABLE const QSet<QObject *> region() const;
+ Q_INVOKABLE const QSet<QObject *> submachineState() const;
+
+ // Owned attributes [ProtocolStateMachine]
+ Q_INVOKABLE const QSet<QObject *> conformance() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+ // Operations [StateMachine]
+ Q_INVOKABLE QObject *LCA(QObject *s1, QObject *s2) const;
+ Q_INVOKABLE bool ancestor(QObject *s1, QObject *s2) const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Behavior]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void setReentrant(bool isReentrant);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [StateMachine]
+ void addConnectionPoint(QObject *connectionPoint);
+ void removeConnectionPoint(QObject *connectionPoint);
+ void addExtendedStateMachine(QObject *extendedStateMachine);
+ void removeExtendedStateMachine(QObject *extendedStateMachine);
+ void addRegion(QObject *region);
+ void removeRegion(QObject *region);
+ void addSubmachineState(QObject *submachineState);
+ void removeSubmachineState(QObject *submachineState);
+
+ // Slots for owned attributes [ProtocolStateMachine]
+ void addConformance(QObject *conformance);
+ void removeConformance(QObject *conformance);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPROTOCOLSTATEMACHINEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlprotocoltransitionobject.cpp b/src/uml/qobjects/qumlprotocoltransitionobject.cpp
new file mode 100644
index 00000000..d8b4eee1
--- /dev/null
+++ b/src/uml/qobjects/qumlprotocoltransitionobject.cpp
@@ -0,0 +1,585 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlprotocoltransitionobject_p.h"
+
+#include <QtUml/QUmlProtocolTransition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTransition>
+#include <QtUml/QUmlTrigger>
+#include <QtUml/QUmlVertex>
+
+QT_BEGIN_NAMESPACE
+
+QUmlProtocolTransitionObject::QUmlProtocolTransitionObject(QUmlProtocolTransition *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlProtocolTransitionObject::~QUmlProtocolTransitionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlProtocolTransitionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlProtocolTransitionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlProtocolTransitionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlProtocolTransitionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->name();
+}
+
+QObject *QUmlProtocolTransitionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlProtocolTransitionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlProtocolTransitionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlProtocolTransitionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlProtocolTransitionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Transition]
+
+QObject *QUmlProtocolTransitionObject::container() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->container()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::effect() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->effect()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::guard() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->guard()->asQObject();
+}
+
+QtUml::TransitionKind QUmlProtocolTransitionObject::kind() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->kind();
+}
+
+QObject *QUmlProtocolTransitionObject::redefinedTransition() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->redefinedTransition()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::redefinitionContext() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->redefinitionContext()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::source() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->source()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->target()->asQObject();
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::trigger() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTrigger *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->trigger())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ProtocolTransition]
+
+QObject *QUmlProtocolTransitionObject::postCondition() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->postCondition()->asQObject();
+}
+
+QObject *QUmlProtocolTransitionObject::preCondition() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->preCondition()->asQObject();
+}
+
+const QSet<QObject *> QUmlProtocolTransitionObject::referred() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->referred())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlProtocolTransitionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolTransitionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlProtocolTransitionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlProtocolTransitionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolTransitionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlProtocolTransitionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlProtocolTransitionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlProtocolTransitionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlProtocolTransitionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlProtocolTransitionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlProtocolTransitionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [Transition]
+
+QObject *QUmlProtocolTransitionObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->containingStateMachine()->asQObject();
+}
+
+bool QUmlProtocolTransitionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlProtocolTransitionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProtocolTransitionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlProtocolTransitionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProtocolTransitionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlProtocolTransitionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlProtocolTransitionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlProtocolTransitionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlProtocolTransitionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setName(name);
+}
+
+void QUmlProtocolTransitionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlProtocolTransitionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlProtocolTransitionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlProtocolTransitionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlProtocolTransitionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlProtocolTransitionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlProtocolTransitionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlProtocolTransitionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlProtocolTransitionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlProtocolTransitionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlProtocolTransitionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlProtocolTransitionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlProtocolTransitionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlProtocolTransitionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlProtocolTransitionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlProtocolTransitionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlProtocolTransitionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlProtocolTransitionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlProtocolTransitionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Transition]
+
+void QUmlProtocolTransitionObject::setContainer(QObject *container)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setContainer(qmodelingobjectproperty_cast<QUmlRegion *>(container));
+}
+
+void QUmlProtocolTransitionObject::setEffect(QObject *effect)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setEffect(qmodelingobjectproperty_cast<QUmlBehavior *>(effect));
+}
+
+void QUmlProtocolTransitionObject::setGuard(QObject *guard)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setGuard(qmodelingobjectproperty_cast<QUmlConstraint *>(guard));
+}
+
+void QUmlProtocolTransitionObject::setKind(QtUml::TransitionKind kind)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setKind(kind);
+}
+
+void QUmlProtocolTransitionObject::setRedefinedTransition(QObject *redefinedTransition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setRedefinedTransition(qmodelingobjectproperty_cast<QUmlTransition *>(redefinedTransition));
+}
+
+void QUmlProtocolTransitionObject::setRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlProtocolTransitionObject::setSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setSource(qmodelingobjectproperty_cast<QUmlVertex *>(source));
+}
+
+void QUmlProtocolTransitionObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlVertex *>(target));
+}
+
+void QUmlProtocolTransitionObject::addTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+void QUmlProtocolTransitionObject::removeTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ProtocolTransition]
+
+void QUmlProtocolTransitionObject::setPostCondition(QObject *postCondition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setPostCondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postCondition));
+}
+
+void QUmlProtocolTransitionObject::setPreCondition(QObject *preCondition)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->setPreCondition(qmodelingobjectproperty_cast<QUmlConstraint *>(preCondition));
+}
+
+void QUmlProtocolTransitionObject::addReferred(QObject *referred)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->addReferred(qmodelingobjectproperty_cast<QUmlOperation *>(referred));
+}
+
+void QUmlProtocolTransitionObject::removeReferred(QObject *referred)
+{
+ qmodelingobjectproperty_cast<QUmlProtocolTransition *>(this)->removeReferred(qmodelingobjectproperty_cast<QUmlOperation *>(referred));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlprotocoltransitionobject_p.h b/src/uml/qobjects/qumlprotocoltransitionobject_p.h
new file mode 100644
index 00000000..e5cfb3a4
--- /dev/null
+++ b/src/uml/qobjects/qumlprotocoltransitionobject_p.h
@@ -0,0 +1,231 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPROTOCOLTRANSITIONOBJECT_H
+#define QUMLPROTOCOLTRANSITIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlProtocolTransition;
+class Q_UML_EXPORT QUmlProtocolTransitionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [Transition]
+ Q_PROPERTY(QObject * container READ container)
+ Q_PROPERTY(QObject * effect READ effect)
+ Q_PROPERTY(QObject * guard READ guard)
+ Q_PROPERTY(QtUml::TransitionKind kind READ kind)
+ Q_PROPERTY(QObject * redefinedTransition READ redefinedTransition)
+ Q_PROPERTY(QObject * redefinitionContext READ redefinitionContext)
+ Q_PROPERTY(QObject * source READ source)
+ Q_PROPERTY(QObject * target READ target)
+ Q_PROPERTY(QSet<QObject *> trigger READ trigger)
+
+ // Properties [ProtocolTransition]
+ Q_PROPERTY(QObject * postCondition READ postCondition)
+ Q_PROPERTY(QObject * preCondition READ preCondition)
+ Q_PROPERTY(QSet<QObject *> referred READ referred)
+
+public:
+ Q_INVOKABLE explicit QUmlProtocolTransitionObject(QUmlProtocolTransition *qModelingObject);
+ virtual ~QUmlProtocolTransitionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [Transition]
+ Q_INVOKABLE QObject *container() const;
+ Q_INVOKABLE QObject *effect() const;
+ Q_INVOKABLE QObject *guard() const;
+ Q_INVOKABLE QtUml::TransitionKind kind() const;
+ Q_INVOKABLE QObject *redefinedTransition() const;
+ Q_INVOKABLE QObject *redefinitionContext() const;
+ Q_INVOKABLE QObject *source() const;
+ Q_INVOKABLE QObject *target() const;
+ Q_INVOKABLE const QSet<QObject *> trigger() const;
+
+ // Owned attributes [ProtocolTransition]
+ Q_INVOKABLE QObject *postCondition() const;
+ Q_INVOKABLE QObject *preCondition() const;
+ Q_INVOKABLE const QSet<QObject *> referred() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [Transition]
+ Q_INVOKABLE QObject *containingStateMachine() const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [Transition]
+ void setContainer(QObject *container = 0);
+ void setEffect(QObject *effect = 0);
+ void setGuard(QObject *guard = 0);
+ void setKind(QtUml::TransitionKind kind);
+ void setRedefinedTransition(QObject *redefinedTransition = 0);
+ void Q_DECL_HIDDEN setRedefinitionContext(QObject *redefinitionContext = 0);
+ void setSource(QObject *source = 0);
+ void setTarget(QObject *target = 0);
+ void addTrigger(QObject *trigger);
+ void removeTrigger(QObject *trigger);
+
+ // Slots for owned attributes [ProtocolTransition]
+ void setPostCondition(QObject *postCondition = 0);
+ void setPreCondition(QObject *preCondition = 0);
+ void Q_DECL_HIDDEN addReferred(QObject *referred);
+ void Q_DECL_HIDDEN removeReferred(QObject *referred);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPROTOCOLTRANSITIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlpseudostateobject.cpp b/src/uml/qobjects/qumlpseudostateobject.cpp
new file mode 100644
index 00000000..8a4f3e6f
--- /dev/null
+++ b/src/uml/qobjects/qumlpseudostateobject.cpp
@@ -0,0 +1,328 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlpseudostateobject_p.h"
+
+#include <QtUml/QUmlPseudostate>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTransition>
+
+QT_BEGIN_NAMESPACE
+
+QUmlPseudostateObject::QUmlPseudostateObject(QUmlPseudostate *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlPseudostateObject::~QUmlPseudostateObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlPseudostateObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPseudostateObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlPseudostateObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlPseudostateObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlPseudostateObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->name();
+}
+
+QObject *QUmlPseudostateObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlPseudostateObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlPseudostateObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlPseudostateObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Vertex]
+
+QObject *QUmlPseudostateObject::container() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->container()->asQObject();
+}
+
+const QSet<QObject *> QUmlPseudostateObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlPseudostateObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Pseudostate]
+
+QtUml::PseudostateKind QUmlPseudostateObject::kind() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->kind();
+}
+
+QObject *QUmlPseudostateObject::state() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->state()->asQObject();
+}
+
+QObject *QUmlPseudostateObject::stateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->stateMachine()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlPseudostateObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPseudostateObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlPseudostateObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlPseudostateObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlPseudostateObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlPseudostateObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->separator();
+}
+
+// OPERATIONS [Vertex]
+
+QObject *QUmlPseudostateObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->containingStateMachine()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlPseudostateObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPseudostateObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlPseudostateObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPseudostateObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlPseudostateObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlPseudostateObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPseudostateObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlPseudostateObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setName(name);
+}
+
+void QUmlPseudostateObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlPseudostateObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlPseudostateObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlPseudostateObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Vertex]
+
+void QUmlPseudostateObject::setContainer(QObject *container)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setContainer(qmodelingobjectproperty_cast<QUmlRegion *>(container));
+}
+
+void QUmlPseudostateObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlPseudostateObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlPseudostateObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+void QUmlPseudostateObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Pseudostate]
+
+void QUmlPseudostateObject::setKind(QtUml::PseudostateKind kind)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setKind(kind);
+}
+
+void QUmlPseudostateObject::setState(QObject *state)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setState(qmodelingobjectproperty_cast<QUmlState *>(state));
+}
+
+void QUmlPseudostateObject::setStateMachine(QObject *stateMachine)
+{
+ qmodelingobjectproperty_cast<QUmlPseudostate *>(this)->setStateMachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(stateMachine));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlpseudostateobject_p.h b/src/uml/qobjects/qumlpseudostateobject_p.h
new file mode 100644
index 00000000..d580327a
--- /dev/null
+++ b/src/uml/qobjects/qumlpseudostateobject_p.h
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLPSEUDOSTATEOBJECT_H
+#define QUMLPSEUDOSTATEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlPseudostate;
+class Q_UML_EXPORT QUmlPseudostateObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Vertex]
+ Q_PROPERTY(QObject * container READ container)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+
+ // Properties [Pseudostate]
+ Q_PROPERTY(QtUml::PseudostateKind kind READ kind)
+ Q_PROPERTY(QObject * state READ state)
+ Q_PROPERTY(QObject * stateMachine READ stateMachine)
+
+public:
+ Q_INVOKABLE explicit QUmlPseudostateObject(QUmlPseudostate *qModelingObject);
+ virtual ~QUmlPseudostateObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Vertex]
+ Q_INVOKABLE QObject *container() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+
+ // Owned attributes [Pseudostate]
+ Q_INVOKABLE QtUml::PseudostateKind kind() const;
+ Q_INVOKABLE QObject *state() const;
+ Q_INVOKABLE QObject *stateMachine() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Vertex]
+ Q_INVOKABLE QObject *containingStateMachine() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Vertex]
+ void setContainer(QObject *container = 0);
+ void Q_DECL_HIDDEN addIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN removeIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN addOutgoing(QObject *outgoing);
+ void Q_DECL_HIDDEN removeOutgoing(QObject *outgoing);
+
+ // Slots for owned attributes [Pseudostate]
+ void setKind(QtUml::PseudostateKind kind);
+ void setState(QObject *state = 0);
+ void setStateMachine(QObject *stateMachine = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLPSEUDOSTATEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlqualifiervalueobject.cpp b/src/uml/qobjects/qumlqualifiervalueobject.cpp
new file mode 100644
index 00000000..5b5d55bc
--- /dev/null
+++ b/src/uml/qobjects/qumlqualifiervalueobject.cpp
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlqualifiervalueobject_p.h"
+
+#include <QtUml/QUmlQualifierValue>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlProperty>
+
+QT_BEGIN_NAMESPACE
+
+QUmlQualifierValueObject::QUmlQualifierValueObject(QUmlQualifierValue *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlQualifierValueObject::~QUmlQualifierValueObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlQualifierValueObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlQualifierValueObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlQualifierValueObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [QualifierValue]
+
+QObject *QUmlQualifierValueObject::qualifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->qualifier()->asQObject();
+}
+
+QObject *QUmlQualifierValueObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->value()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlQualifierValueObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlQualifierValueObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlQualifierValueObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlQualifierValueObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlQualifierValueObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlQualifierValueObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlQualifierValueObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [QualifierValue]
+
+void QUmlQualifierValueObject::setQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->setQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlQualifierValueObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlQualifierValue *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlqualifiervalueobject_p.h b/src/uml/qobjects/qumlqualifiervalueobject_p.h
new file mode 100644
index 00000000..4e420f8a
--- /dev/null
+++ b/src/uml/qobjects/qumlqualifiervalueobject_p.h
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLQUALIFIERVALUEOBJECT_H
+#define QUMLQUALIFIERVALUEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlQualifierValue;
+class Q_UML_EXPORT QUmlQualifierValueObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [QualifierValue]
+ Q_PROPERTY(QObject * qualifier READ qualifier)
+ Q_PROPERTY(QObject * value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlQualifierValueObject(QUmlQualifierValue *qModelingObject);
+ virtual ~QUmlQualifierValueObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [QualifierValue]
+ Q_INVOKABLE QObject *qualifier() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [QualifierValue]
+ void setQualifier(QObject *qualifier = 0);
+ void setValue(QObject *value = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLQUALIFIERVALUEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlraiseexceptionactionobject.cpp b/src/uml/qobjects/qumlraiseexceptionactionobject.cpp
new file mode 100644
index 00000000..4ce57172
--- /dev/null
+++ b/src/uml/qobjects/qumlraiseexceptionactionobject.cpp
@@ -0,0 +1,572 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlraiseexceptionactionobject_p.h"
+
+#include <QtUml/QUmlRaiseExceptionAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlRaiseExceptionActionObject::QUmlRaiseExceptionActionObject(QUmlRaiseExceptionAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlRaiseExceptionActionObject::~QUmlRaiseExceptionActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRaiseExceptionActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlRaiseExceptionActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->name();
+}
+
+QObject *QUmlRaiseExceptionActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlRaiseExceptionActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlRaiseExceptionActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlRaiseExceptionActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlRaiseExceptionActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlRaiseExceptionActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRaiseExceptionActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlRaiseExceptionActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlRaiseExceptionActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlRaiseExceptionActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRaiseExceptionActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlRaiseExceptionActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [RaiseExceptionAction]
+
+QObject *QUmlRaiseExceptionActionObject::exception() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->exception()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlRaiseExceptionActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRaiseExceptionActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlRaiseExceptionActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlRaiseExceptionActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRaiseExceptionActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlRaiseExceptionActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlRaiseExceptionActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlRaiseExceptionActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlRaiseExceptionActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRaiseExceptionActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRaiseExceptionActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRaiseExceptionActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRaiseExceptionActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlRaiseExceptionActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRaiseExceptionActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRaiseExceptionActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setName(name);
+}
+
+void QUmlRaiseExceptionActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlRaiseExceptionActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlRaiseExceptionActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlRaiseExceptionActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlRaiseExceptionActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlRaiseExceptionActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRaiseExceptionActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRaiseExceptionActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlRaiseExceptionActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlRaiseExceptionActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlRaiseExceptionActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlRaiseExceptionActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlRaiseExceptionActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlRaiseExceptionActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlRaiseExceptionActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlRaiseExceptionActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlRaiseExceptionActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlRaiseExceptionActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlRaiseExceptionActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlRaiseExceptionActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlRaiseExceptionActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlRaiseExceptionActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlRaiseExceptionActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlRaiseExceptionActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlRaiseExceptionActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlRaiseExceptionActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlRaiseExceptionActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlRaiseExceptionActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlRaiseExceptionActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlRaiseExceptionActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlRaiseExceptionActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlRaiseExceptionActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlRaiseExceptionActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlRaiseExceptionActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlRaiseExceptionActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RaiseExceptionAction]
+
+void QUmlRaiseExceptionActionObject::setException(QObject *exception)
+{
+ qmodelingobjectproperty_cast<QUmlRaiseExceptionAction *>(this)->setException(qmodelingobjectproperty_cast<QUmlInputPin *>(exception));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlraiseexceptionactionobject_p.h b/src/uml/qobjects/qumlraiseexceptionactionobject_p.h
new file mode 100644
index 00000000..199cc27e
--- /dev/null
+++ b/src/uml/qobjects/qumlraiseexceptionactionobject_p.h
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLRAISEEXCEPTIONACTIONOBJECT_H
+#define QUMLRAISEEXCEPTIONACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlRaiseExceptionAction;
+class Q_UML_EXPORT QUmlRaiseExceptionActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [RaiseExceptionAction]
+ Q_PROPERTY(QObject * exception READ exception)
+
+public:
+ Q_INVOKABLE explicit QUmlRaiseExceptionActionObject(QUmlRaiseExceptionAction *qModelingObject);
+ virtual ~QUmlRaiseExceptionActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [RaiseExceptionAction]
+ Q_INVOKABLE QObject *exception() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [RaiseExceptionAction]
+ void setException(QObject *exception = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLRAISEEXCEPTIONACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadextentactionobject.cpp b/src/uml/qobjects/qumlreadextentactionobject.cpp
new file mode 100644
index 00000000..810ade08
--- /dev/null
+++ b/src/uml/qobjects/qumlreadextentactionobject.cpp
@@ -0,0 +1,582 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadextentactionobject_p.h"
+
+#include <QtUml/QUmlReadExtentAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadExtentActionObject::QUmlReadExtentActionObject(QUmlReadExtentAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadExtentActionObject::~QUmlReadExtentActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadExtentActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadExtentActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadExtentActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadExtentActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->name();
+}
+
+QObject *QUmlReadExtentActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadExtentActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadExtentActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadExtentActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadExtentActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadExtentActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadExtentActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadExtentActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadExtentActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadExtentActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadExtentActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadExtentActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadExtentActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReadExtentAction]
+
+QObject *QUmlReadExtentActionObject::classifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->classifier()->asQObject();
+}
+
+QObject *QUmlReadExtentActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadExtentActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadExtentActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadExtentActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadExtentActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadExtentActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadExtentActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadExtentActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadExtentActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadExtentActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadExtentActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadExtentActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadExtentActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadExtentActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadExtentActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadExtentActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadExtentActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setName(name);
+}
+
+void QUmlReadExtentActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadExtentActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadExtentActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadExtentActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadExtentActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadExtentActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadExtentActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadExtentActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadExtentActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadExtentActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadExtentActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadExtentActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadExtentActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadExtentActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadExtentActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadExtentActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadExtentActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadExtentActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadExtentActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadExtentActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadExtentActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadExtentActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadExtentActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadExtentActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadExtentActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadExtentActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadExtentActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadExtentActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadExtentActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadExtentActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadExtentActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadExtentActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadExtentActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadExtentActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadExtentActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadExtentAction]
+
+void QUmlReadExtentActionObject::setClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier));
+}
+
+void QUmlReadExtentActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadExtentAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadextentactionobject_p.h b/src/uml/qobjects/qumlreadextentactionobject_p.h
new file mode 100644
index 00000000..8dd24014
--- /dev/null
+++ b/src/uml/qobjects/qumlreadextentactionobject_p.h
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADEXTENTACTIONOBJECT_H
+#define QUMLREADEXTENTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadExtentAction;
+class Q_UML_EXPORT QUmlReadExtentActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReadExtentAction]
+ Q_PROPERTY(QObject * classifier READ classifier)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadExtentActionObject(QUmlReadExtentAction *qModelingObject);
+ virtual ~QUmlReadExtentActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReadExtentAction]
+ Q_INVOKABLE QObject *classifier() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReadExtentAction]
+ void setClassifier(QObject *classifier = 0);
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADEXTENTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadisclassifiedobjectactionobject.cpp b/src/uml/qobjects/qumlreadisclassifiedobjectactionobject.cpp
new file mode 100644
index 00000000..0288a709
--- /dev/null
+++ b/src/uml/qobjects/qumlreadisclassifiedobjectactionobject.cpp
@@ -0,0 +1,602 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadisclassifiedobjectactionobject_p.h"
+
+#include <QtUml/QUmlReadIsClassifiedObjectAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadIsClassifiedObjectActionObject::QUmlReadIsClassifiedObjectActionObject(QUmlReadIsClassifiedObjectAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadIsClassifiedObjectActionObject::~QUmlReadIsClassifiedObjectActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadIsClassifiedObjectActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadIsClassifiedObjectActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->name();
+}
+
+QObject *QUmlReadIsClassifiedObjectActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadIsClassifiedObjectActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadIsClassifiedObjectActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadIsClassifiedObjectActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadIsClassifiedObjectActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadIsClassifiedObjectActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadIsClassifiedObjectActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadIsClassifiedObjectActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadIsClassifiedObjectActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadIsClassifiedObjectActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadIsClassifiedObjectActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReadIsClassifiedObjectAction]
+
+QObject *QUmlReadIsClassifiedObjectActionObject::classifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->classifier()->asQObject();
+}
+
+bool QUmlReadIsClassifiedObjectActionObject::isDirect() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->isDirect();
+}
+
+QObject *QUmlReadIsClassifiedObjectActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlReadIsClassifiedObjectActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadIsClassifiedObjectActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadIsClassifiedObjectActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadIsClassifiedObjectActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadIsClassifiedObjectActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadIsClassifiedObjectActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadIsClassifiedObjectActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadIsClassifiedObjectActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadIsClassifiedObjectActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadIsClassifiedObjectActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setName(name);
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadIsClassifiedObjectActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadIsClassifiedObjectActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadIsClassifiedObjectActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadIsClassifiedObjectActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadIsClassifiedObjectAction]
+
+void QUmlReadIsClassifiedObjectActionObject::setClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setDirect(bool isDirect)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setDirect(isDirect);
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlReadIsClassifiedObjectActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadIsClassifiedObjectAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadisclassifiedobjectactionobject_p.h b/src/uml/qobjects/qumlreadisclassifiedobjectactionobject_p.h
new file mode 100644
index 00000000..33633429
--- /dev/null
+++ b/src/uml/qobjects/qumlreadisclassifiedobjectactionobject_p.h
@@ -0,0 +1,238 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADISCLASSIFIEDOBJECTACTIONOBJECT_H
+#define QUMLREADISCLASSIFIEDOBJECTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadIsClassifiedObjectAction;
+class Q_UML_EXPORT QUmlReadIsClassifiedObjectActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReadIsClassifiedObjectAction]
+ Q_PROPERTY(QObject * classifier READ classifier)
+ Q_PROPERTY(bool isDirect READ isDirect)
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadIsClassifiedObjectActionObject(QUmlReadIsClassifiedObjectAction *qModelingObject);
+ virtual ~QUmlReadIsClassifiedObjectActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReadIsClassifiedObjectAction]
+ Q_INVOKABLE QObject *classifier() const;
+ Q_INVOKABLE bool isDirect() const;
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReadIsClassifiedObjectAction]
+ void setClassifier(QObject *classifier = 0);
+ void setDirect(bool isDirect);
+ void setObject(QObject *object = 0);
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADISCLASSIFIEDOBJECTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadlinkactionobject.cpp b/src/uml/qobjects/qumlreadlinkactionobject.cpp
new file mode 100644
index 00000000..acfe1528
--- /dev/null
+++ b/src/uml/qobjects/qumlreadlinkactionobject.cpp
@@ -0,0 +1,621 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadlinkactionobject_p.h"
+
+#include <QtUml/QUmlReadLinkAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlAssociation>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlLinkEndData>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadLinkActionObject::QUmlReadLinkActionObject(QUmlReadLinkAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadLinkActionObject::~QUmlReadLinkActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadLinkActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadLinkActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadLinkActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadLinkActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->name();
+}
+
+QObject *QUmlReadLinkActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadLinkActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadLinkActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadLinkActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadLinkActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadLinkActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadLinkActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadLinkActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadLinkActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadLinkActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadLinkActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadLinkActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [LinkAction]
+
+const QSet<QObject *> QUmlReadLinkActionObject::endData() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlLinkEndData *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->endData())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkActionObject::inputValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->inputValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ReadLinkAction]
+
+QObject *QUmlReadLinkActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadLinkActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadLinkActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadLinkActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadLinkActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadLinkActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadLinkActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadLinkActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadLinkActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [LinkAction]
+
+QObject *QUmlReadLinkActionObject::association() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->association()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadLinkActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadLinkActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadLinkActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadLinkActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadLinkActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadLinkActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadLinkActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadLinkActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setName(name);
+}
+
+void QUmlReadLinkActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadLinkActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadLinkActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadLinkActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadLinkActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadLinkActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadLinkActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadLinkActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadLinkActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadLinkActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadLinkActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadLinkActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadLinkActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadLinkActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadLinkActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadLinkActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadLinkActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadLinkActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadLinkActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadLinkActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadLinkActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadLinkActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadLinkActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadLinkActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadLinkActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadLinkActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadLinkActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadLinkActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadLinkActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadLinkActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadLinkActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadLinkActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadLinkActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadLinkActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadLinkActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
+
+void QUmlReadLinkActionObject::addEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addEndData(qmodelingobjectproperty_cast<QUmlLinkEndData *>(endData));
+}
+
+void QUmlReadLinkActionObject::removeEndData(QObject *endData)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeEndData(qmodelingobjectproperty_cast<QUmlLinkEndData *>(endData));
+}
+
+void QUmlReadLinkActionObject::addInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->addInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+void QUmlReadLinkActionObject::removeInputValue(QObject *inputValue)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->removeInputValue(qmodelingobjectproperty_cast<QUmlInputPin *>(inputValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadLinkAction]
+
+void QUmlReadLinkActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadlinkactionobject_p.h b/src/uml/qobjects/qumlreadlinkactionobject_p.h
new file mode 100644
index 00000000..e1fb0c17
--- /dev/null
+++ b/src/uml/qobjects/qumlreadlinkactionobject_p.h
@@ -0,0 +1,246 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADLINKACTIONOBJECT_H
+#define QUMLREADLINKACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadLinkAction;
+class Q_UML_EXPORT QUmlReadLinkActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [LinkAction]
+ Q_PROPERTY(QSet<QObject *> endData READ endData)
+ Q_PROPERTY(QSet<QObject *> inputValue READ inputValue)
+
+ // Properties [ReadLinkAction]
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadLinkActionObject(QUmlReadLinkAction *qModelingObject);
+ virtual ~QUmlReadLinkActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [LinkAction]
+ Q_INVOKABLE const QSet<QObject *> endData() const;
+ Q_INVOKABLE const QSet<QObject *> inputValue() const;
+
+ // Owned attributes [ReadLinkAction]
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [LinkAction]
+ Q_INVOKABLE QObject *association() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [LinkAction]
+ void addEndData(QObject *endData);
+ void removeEndData(QObject *endData);
+ void addInputValue(QObject *inputValue);
+ void removeInputValue(QObject *inputValue);
+
+ // Slots for owned attributes [ReadLinkAction]
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADLINKACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadlinkobjectendactionobject.cpp b/src/uml/qobjects/qumlreadlinkobjectendactionobject.cpp
new file mode 100644
index 00000000..72baccbd
--- /dev/null
+++ b/src/uml/qobjects/qumlreadlinkobjectendactionobject.cpp
@@ -0,0 +1,593 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadlinkobjectendactionobject_p.h"
+
+#include <QtUml/QUmlReadLinkObjectEndAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadLinkObjectEndActionObject::QUmlReadLinkObjectEndActionObject(QUmlReadLinkObjectEndAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadLinkObjectEndActionObject::~QUmlReadLinkObjectEndActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadLinkObjectEndActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadLinkObjectEndActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->name();
+}
+
+QObject *QUmlReadLinkObjectEndActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadLinkObjectEndActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadLinkObjectEndActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadLinkObjectEndActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadLinkObjectEndActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadLinkObjectEndActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadLinkObjectEndActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadLinkObjectEndActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadLinkObjectEndActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadLinkObjectEndActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadLinkObjectEndActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReadLinkObjectEndAction]
+
+QObject *QUmlReadLinkObjectEndActionObject::end() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->end()->asQObject();
+}
+
+QObject *QUmlReadLinkObjectEndActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlReadLinkObjectEndActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadLinkObjectEndActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadLinkObjectEndActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadLinkObjectEndActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadLinkObjectEndActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadLinkObjectEndActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadLinkObjectEndActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadLinkObjectEndActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadLinkObjectEndActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadLinkObjectEndActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadLinkObjectEndActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadLinkObjectEndActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadLinkObjectEndActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadLinkObjectEndActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setName(name);
+}
+
+void QUmlReadLinkObjectEndActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadLinkObjectEndActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadLinkObjectEndActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadLinkObjectEndActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadLinkObjectEndActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadLinkObjectEndActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadLinkObjectEndActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadLinkObjectEndActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadLinkObjectEndActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadLinkObjectEndActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadLinkObjectEndActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadLinkObjectEndActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadLinkObjectEndActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadLinkObjectEndActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadLinkObjectEndActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadLinkObjectEndActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadLinkObjectEndActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadLinkObjectEndActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadLinkObjectEndActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadLinkObjectEndActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadLinkObjectEndActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadLinkObjectEndActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadLinkObjectEndActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadLinkObjectEndAction]
+
+void QUmlReadLinkObjectEndActionObject::setEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setEnd(qmodelingobjectproperty_cast<QUmlProperty *>(end));
+}
+
+void QUmlReadLinkObjectEndActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlReadLinkObjectEndActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadlinkobjectendactionobject_p.h b/src/uml/qobjects/qumlreadlinkobjectendactionobject_p.h
new file mode 100644
index 00000000..72625259
--- /dev/null
+++ b/src/uml/qobjects/qumlreadlinkobjectendactionobject_p.h
@@ -0,0 +1,235 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADLINKOBJECTENDACTIONOBJECT_H
+#define QUMLREADLINKOBJECTENDACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadLinkObjectEndAction;
+class Q_UML_EXPORT QUmlReadLinkObjectEndActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReadLinkObjectEndAction]
+ Q_PROPERTY(QObject * end READ end)
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadLinkObjectEndActionObject(QUmlReadLinkObjectEndAction *qModelingObject);
+ virtual ~QUmlReadLinkObjectEndActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReadLinkObjectEndAction]
+ Q_INVOKABLE QObject *end() const;
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReadLinkObjectEndAction]
+ void setEnd(QObject *end = 0);
+ void setObject(QObject *object = 0);
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADLINKOBJECTENDACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject.cpp b/src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject.cpp
new file mode 100644
index 00000000..b24494b4
--- /dev/null
+++ b/src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject.cpp
@@ -0,0 +1,593 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadlinkobjectendqualifieractionobject_p.h"
+
+#include <QtUml/QUmlReadLinkObjectEndQualifierAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadLinkObjectEndQualifierActionObject::QUmlReadLinkObjectEndQualifierActionObject(QUmlReadLinkObjectEndQualifierAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadLinkObjectEndQualifierActionObject::~QUmlReadLinkObjectEndQualifierActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadLinkObjectEndQualifierActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->name();
+}
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadLinkObjectEndQualifierActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadLinkObjectEndQualifierActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadLinkObjectEndQualifierActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadLinkObjectEndQualifierActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadLinkObjectEndQualifierActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadLinkObjectEndQualifierActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReadLinkObjectEndQualifierAction]
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::qualifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->qualifier()->asQObject();
+}
+
+QObject *QUmlReadLinkObjectEndQualifierActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadLinkObjectEndQualifierActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadLinkObjectEndQualifierActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadLinkObjectEndQualifierActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadLinkObjectEndQualifierActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadLinkObjectEndQualifierActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadLinkObjectEndQualifierActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadLinkObjectEndQualifierActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadLinkObjectEndQualifierActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadLinkObjectEndQualifierActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setName(name);
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadLinkObjectEndQualifierActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadLinkObjectEndQualifierActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadLinkObjectEndQualifierActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadLinkObjectEndQualifierActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadLinkObjectEndQualifierAction]
+
+void QUmlReadLinkObjectEndQualifierActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setQualifier(QObject *qualifier)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setQualifier(qmodelingobjectproperty_cast<QUmlProperty *>(qualifier));
+}
+
+void QUmlReadLinkObjectEndQualifierActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadLinkObjectEndQualifierAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject_p.h b/src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject_p.h
new file mode 100644
index 00000000..31835f3f
--- /dev/null
+++ b/src/uml/qobjects/qumlreadlinkobjectendqualifieractionobject_p.h
@@ -0,0 +1,235 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADLINKOBJECTENDQUALIFIERACTIONOBJECT_H
+#define QUMLREADLINKOBJECTENDQUALIFIERACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadLinkObjectEndQualifierAction;
+class Q_UML_EXPORT QUmlReadLinkObjectEndQualifierActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReadLinkObjectEndQualifierAction]
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * qualifier READ qualifier)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadLinkObjectEndQualifierActionObject(QUmlReadLinkObjectEndQualifierAction *qModelingObject);
+ virtual ~QUmlReadLinkObjectEndQualifierActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReadLinkObjectEndQualifierAction]
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *qualifier() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReadLinkObjectEndQualifierAction]
+ void setObject(QObject *object = 0);
+ void setQualifier(QObject *qualifier = 0);
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADLINKOBJECTENDQUALIFIERACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadselfactionobject.cpp b/src/uml/qobjects/qumlreadselfactionobject.cpp
new file mode 100644
index 00000000..fd35f0c2
--- /dev/null
+++ b/src/uml/qobjects/qumlreadselfactionobject.cpp
@@ -0,0 +1,572 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadselfactionobject_p.h"
+
+#include <QtUml/QUmlReadSelfAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadSelfActionObject::QUmlReadSelfActionObject(QUmlReadSelfAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadSelfActionObject::~QUmlReadSelfActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadSelfActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadSelfActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadSelfActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadSelfActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->name();
+}
+
+QObject *QUmlReadSelfActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadSelfActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadSelfActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadSelfActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadSelfActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadSelfActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadSelfActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadSelfActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadSelfActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadSelfActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadSelfActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadSelfActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadSelfActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReadSelfAction]
+
+QObject *QUmlReadSelfActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadSelfActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadSelfActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadSelfActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadSelfActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadSelfActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadSelfActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadSelfActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadSelfActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadSelfActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadSelfActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadSelfActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadSelfActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadSelfActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadSelfActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadSelfActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadSelfActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setName(name);
+}
+
+void QUmlReadSelfActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadSelfActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadSelfActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadSelfActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadSelfActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadSelfActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadSelfActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadSelfActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadSelfActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadSelfActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadSelfActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadSelfActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadSelfActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadSelfActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadSelfActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadSelfActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadSelfActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadSelfActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadSelfActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadSelfActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadSelfActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadSelfActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadSelfActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadSelfActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadSelfActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadSelfActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadSelfActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadSelfActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadSelfActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadSelfActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadSelfActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadSelfActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadSelfActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadSelfActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadSelfActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadSelfAction]
+
+void QUmlReadSelfActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadSelfAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadselfactionobject_p.h b/src/uml/qobjects/qumlreadselfactionobject_p.h
new file mode 100644
index 00000000..de92c2ca
--- /dev/null
+++ b/src/uml/qobjects/qumlreadselfactionobject_p.h
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADSELFACTIONOBJECT_H
+#define QUMLREADSELFACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadSelfAction;
+class Q_UML_EXPORT QUmlReadSelfActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReadSelfAction]
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadSelfActionObject(QUmlReadSelfAction *qModelingObject);
+ virtual ~QUmlReadSelfActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReadSelfAction]
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReadSelfAction]
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADSELFACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadstructuralfeatureactionobject.cpp b/src/uml/qobjects/qumlreadstructuralfeatureactionobject.cpp
new file mode 100644
index 00000000..4f3bb999
--- /dev/null
+++ b/src/uml/qobjects/qumlreadstructuralfeatureactionobject.cpp
@@ -0,0 +1,597 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadstructuralfeatureactionobject_p.h"
+
+#include <QtUml/QUmlReadStructuralFeatureAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuralFeature>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadStructuralFeatureActionObject::QUmlReadStructuralFeatureActionObject(QUmlReadStructuralFeatureAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadStructuralFeatureActionObject::~QUmlReadStructuralFeatureActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadStructuralFeatureActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadStructuralFeatureActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->name();
+}
+
+QObject *QUmlReadStructuralFeatureActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadStructuralFeatureActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadStructuralFeatureActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadStructuralFeatureActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadStructuralFeatureActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadStructuralFeatureActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadStructuralFeatureActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadStructuralFeatureActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadStructuralFeatureActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadStructuralFeatureActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadStructuralFeatureActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadStructuralFeatureActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [StructuralFeatureAction]
+
+QObject *QUmlReadStructuralFeatureActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlReadStructuralFeatureActionObject::structuralFeature() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->structuralFeature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ReadStructuralFeatureAction]
+
+QObject *QUmlReadStructuralFeatureActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadStructuralFeatureActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadStructuralFeatureActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadStructuralFeatureActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadStructuralFeatureActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadStructuralFeatureActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadStructuralFeatureActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadStructuralFeatureActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadStructuralFeatureActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadStructuralFeatureActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadStructuralFeatureActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadStructuralFeatureActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadStructuralFeatureActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadStructuralFeatureActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setName(name);
+}
+
+void QUmlReadStructuralFeatureActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadStructuralFeatureActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadStructuralFeatureActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadStructuralFeatureActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadStructuralFeatureActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadStructuralFeatureActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadStructuralFeatureActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadStructuralFeatureActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadStructuralFeatureActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadStructuralFeatureActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadStructuralFeatureActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadStructuralFeatureActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadStructuralFeatureActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadStructuralFeatureActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadStructuralFeatureActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadStructuralFeatureActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadStructuralFeatureActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadStructuralFeatureActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadStructuralFeatureActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadStructuralFeatureActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadStructuralFeatureActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadStructuralFeatureActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadStructuralFeatureActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
+
+void QUmlReadStructuralFeatureActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlReadStructuralFeatureActionObject::setStructuralFeature(QObject *structuralFeature)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setStructuralFeature(qmodelingobjectproperty_cast<QUmlStructuralFeature *>(structuralFeature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadStructuralFeatureAction]
+
+void QUmlReadStructuralFeatureActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadStructuralFeatureAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadstructuralfeatureactionobject_p.h b/src/uml/qobjects/qumlreadstructuralfeatureactionobject_p.h
new file mode 100644
index 00000000..6ce2ef25
--- /dev/null
+++ b/src/uml/qobjects/qumlreadstructuralfeatureactionobject_p.h
@@ -0,0 +1,241 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADSTRUCTURALFEATUREACTIONOBJECT_H
+#define QUMLREADSTRUCTURALFEATUREACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadStructuralFeatureAction;
+class Q_UML_EXPORT QUmlReadStructuralFeatureActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [StructuralFeatureAction]
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * structuralFeature READ structuralFeature)
+
+ // Properties [ReadStructuralFeatureAction]
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadStructuralFeatureActionObject(QUmlReadStructuralFeatureAction *qModelingObject);
+ virtual ~QUmlReadStructuralFeatureActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [StructuralFeatureAction]
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *structuralFeature() const;
+
+ // Owned attributes [ReadStructuralFeatureAction]
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [StructuralFeatureAction]
+ void setObject(QObject *object = 0);
+ void setStructuralFeature(QObject *structuralFeature = 0);
+
+ // Slots for owned attributes [ReadStructuralFeatureAction]
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADSTRUCTURALFEATUREACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreadvariableactionobject.cpp b/src/uml/qobjects/qumlreadvariableactionobject.cpp
new file mode 100644
index 00000000..006d0bea
--- /dev/null
+++ b/src/uml/qobjects/qumlreadvariableactionobject.cpp
@@ -0,0 +1,587 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreadvariableactionobject_p.h"
+
+#include <QtUml/QUmlReadVariableAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReadVariableActionObject::QUmlReadVariableActionObject(QUmlReadVariableAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReadVariableActionObject::~QUmlReadVariableActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReadVariableActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadVariableActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReadVariableActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReadVariableActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->name();
+}
+
+QObject *QUmlReadVariableActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReadVariableActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReadVariableActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReadVariableActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReadVariableActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReadVariableActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReadVariableActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReadVariableActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReadVariableActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReadVariableActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReadVariableActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReadVariableActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReadVariableActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [VariableAction]
+
+QObject *QUmlReadVariableActionObject::variable() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->variable()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ReadVariableAction]
+
+QObject *QUmlReadVariableActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReadVariableActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadVariableActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReadVariableActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReadVariableActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReadVariableActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReadVariableActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReadVariableActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReadVariableActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReadVariableActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadVariableActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReadVariableActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadVariableActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReadVariableActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReadVariableActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadVariableActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReadVariableActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setName(name);
+}
+
+void QUmlReadVariableActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReadVariableActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReadVariableActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReadVariableActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReadVariableActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReadVariableActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadVariableActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReadVariableActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReadVariableActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReadVariableActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReadVariableActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadVariableActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReadVariableActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadVariableActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReadVariableActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadVariableActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReadVariableActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReadVariableActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadVariableActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReadVariableActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadVariableActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReadVariableActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReadVariableActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReadVariableActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReadVariableActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReadVariableActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReadVariableActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadVariableActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReadVariableActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReadVariableActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadVariableActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReadVariableActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadVariableActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReadVariableActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReadVariableActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
+
+void QUmlReadVariableActionObject::setVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReadVariableAction]
+
+void QUmlReadVariableActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReadVariableAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreadvariableactionobject_p.h b/src/uml/qobjects/qumlreadvariableactionobject_p.h
new file mode 100644
index 00000000..ca02dacd
--- /dev/null
+++ b/src/uml/qobjects/qumlreadvariableactionobject_p.h
@@ -0,0 +1,238 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREADVARIABLEACTIONOBJECT_H
+#define QUMLREADVARIABLEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReadVariableAction;
+class Q_UML_EXPORT QUmlReadVariableActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [VariableAction]
+ Q_PROPERTY(QObject * variable READ variable)
+
+ // Properties [ReadVariableAction]
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReadVariableActionObject(QUmlReadVariableAction *qModelingObject);
+ virtual ~QUmlReadVariableActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [VariableAction]
+ Q_INVOKABLE QObject *variable() const;
+
+ // Owned attributes [ReadVariableAction]
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [VariableAction]
+ void setVariable(QObject *variable = 0);
+
+ // Slots for owned attributes [ReadVariableAction]
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREADVARIABLEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlrealizationobject.cpp b/src/uml/qobjects/qumlrealizationobject.cpp
new file mode 100644
index 00000000..a128befe
--- /dev/null
+++ b/src/uml/qobjects/qumlrealizationobject.cpp
@@ -0,0 +1,390 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlrealizationobject_p.h"
+
+#include <QtUml/QUmlRealization>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlRealizationObject::QUmlRealizationObject(QUmlRealization *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlRealizationObject::~QUmlRealizationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlRealizationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRealizationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRealizationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlRealizationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlRealizationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlRealizationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlRealizationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->name();
+}
+
+QObject *QUmlRealizationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlRealizationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlRealizationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlRealizationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlRealizationObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlRealizationObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRealizationObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlRealizationObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRealizationObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Abstraction]
+
+QObject *QUmlRealizationObject::mapping() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->mapping()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlRealizationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRealizationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlRealizationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlRealizationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlRealizationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlRealizationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlRealization *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRealizationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlRealizationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlRealization *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlRealizationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRealizationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRealizationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRealizationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRealizationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlRealizationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlRealizationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlRealizationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRealizationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRealizationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setName(name);
+}
+
+void QUmlRealizationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlRealizationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlRealizationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlRealizationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlRealizationObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlRealizationObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlRealizationObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlRealizationObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlRealizationObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlRealizationObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlRealizationObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlRealizationObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlRealizationObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlRealizationObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+
+void QUmlRealizationObject::setMapping(QObject *mapping)
+{
+ qmodelingobjectproperty_cast<QUmlRealization *>(this)->setMapping(qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(mapping));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlrealizationobject_p.h b/src/uml/qobjects/qumlrealizationobject_p.h
new file mode 100644
index 00000000..60dd2873
--- /dev/null
+++ b/src/uml/qobjects/qumlrealizationobject_p.h
@@ -0,0 +1,194 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREALIZATIONOBJECT_H
+#define QUMLREALIZATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlRealization;
+class Q_UML_EXPORT QUmlRealizationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Abstraction]
+ Q_PROPERTY(QObject * mapping READ mapping)
+
+public:
+ Q_INVOKABLE explicit QUmlRealizationObject(QUmlRealization *qModelingObject);
+ virtual ~QUmlRealizationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Abstraction]
+ Q_INVOKABLE QObject *mapping() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Abstraction]
+ void setMapping(QObject *mapping = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREALIZATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreceptionobject.cpp b/src/uml/qobjects/qumlreceptionobject.cpp
new file mode 100644
index 00000000..eb8e63a2
--- /dev/null
+++ b/src/uml/qobjects/qumlreceptionobject.cpp
@@ -0,0 +1,596 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreceptionobject_p.h"
+
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlSignal>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReceptionObject::QUmlReceptionObject(QUmlReception *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReceptionObject::~QUmlReceptionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReceptionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReceptionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReceptionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReceptionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->name();
+}
+
+QObject *QUmlReceptionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReceptionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReceptionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReceptionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlReceptionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReceptionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReceptionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Feature]
+
+const QSet<QObject *> QUmlReceptionObject::featuringClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->featuringClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReceptionObject::isStatic() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->isStatic();
+}
+
+// OWNED ATTRIBUTES [BehavioralFeature]
+
+QtUml::CallConcurrencyKind QUmlReceptionObject::concurrency() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->concurrency();
+}
+
+bool QUmlReceptionObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->isAbstract();
+}
+
+const QSet<QObject *> QUmlReceptionObject::method() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->method())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReceptionObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlReceptionObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReceptionObject::raisedException() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlType *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->raisedException())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Reception]
+
+QObject *QUmlReceptionObject::signal() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->signal()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReceptionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReceptionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReceptionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReceptionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReceptionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlReceptionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlReceptionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlReceptionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlReception *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReceptionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReceptionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReceptionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [BehavioralFeature]
+
+bool QUmlReceptionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReception *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReceptionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReceptionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReceptionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReceptionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReceptionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReceptionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReceptionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReceptionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setName(name);
+}
+
+void QUmlReceptionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReceptionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReceptionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReceptionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlReceptionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlReceptionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlReceptionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlReceptionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlReceptionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlReceptionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlReceptionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlReceptionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlReceptionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlReceptionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlReceptionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlReceptionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReceptionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReceptionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReceptionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReceptionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReceptionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Feature]
+
+void QUmlReceptionObject::addFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlReceptionObject::removeFeaturingClassifier(QObject *featuringClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeFeaturingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(featuringClassifier));
+}
+
+void QUmlReceptionObject::setStatic(bool isStatic)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setStatic(isStatic);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioralFeature]
+
+void QUmlReceptionObject::setConcurrency(QtUml::CallConcurrencyKind concurrency)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setConcurrency(concurrency);
+}
+
+void QUmlReceptionObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlReceptionObject::addMethod(QObject *method)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addMethod(qmodelingobjectproperty_cast<QUmlBehavior *>(method));
+}
+
+void QUmlReceptionObject::removeMethod(QObject *method)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeMethod(qmodelingobjectproperty_cast<QUmlBehavior *>(method));
+}
+
+void QUmlReceptionObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlReceptionObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlReceptionObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlReceptionObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlReceptionObject::addRaisedException(QObject *raisedException)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->addRaisedException(qmodelingobjectproperty_cast<QUmlType *>(raisedException));
+}
+
+void QUmlReceptionObject::removeRaisedException(QObject *raisedException)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->removeRaisedException(qmodelingobjectproperty_cast<QUmlType *>(raisedException));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Reception]
+
+void QUmlReceptionObject::setSignal(QObject *signal)
+{
+ qmodelingobjectproperty_cast<QUmlReception *>(this)->setSignal(qmodelingobjectproperty_cast<QUmlSignal *>(signal));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreceptionobject_p.h b/src/uml/qobjects/qumlreceptionobject_p.h
new file mode 100644
index 00000000..546a45a2
--- /dev/null
+++ b/src/uml/qobjects/qumlreceptionobject_p.h
@@ -0,0 +1,234 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLRECEPTIONOBJECT_H
+#define QUMLRECEPTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReception;
+class Q_UML_EXPORT QUmlReceptionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [Feature]
+ Q_PROPERTY(QSet<QObject *> featuringClassifier READ featuringClassifier)
+ Q_PROPERTY(bool isStatic READ isStatic)
+
+ // Properties [BehavioralFeature]
+ Q_PROPERTY(QtUml::CallConcurrencyKind concurrency READ concurrency)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(QSet<QObject *> method READ method)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> raisedException READ raisedException)
+
+ // Properties [Reception]
+ Q_PROPERTY(QObject * signal READ signal)
+
+public:
+ Q_INVOKABLE explicit QUmlReceptionObject(QUmlReception *qModelingObject);
+ virtual ~QUmlReceptionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [Feature]
+ Q_INVOKABLE const QSet<QObject *> featuringClassifier() const;
+ Q_INVOKABLE bool isStatic() const;
+
+ // Owned attributes [BehavioralFeature]
+ Q_INVOKABLE QtUml::CallConcurrencyKind concurrency() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE const QSet<QObject *> method() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> raisedException() const;
+
+ // Owned attributes [Reception]
+ Q_INVOKABLE QObject *signal() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [BehavioralFeature]
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [Feature]
+ void Q_DECL_HIDDEN addFeaturingClassifier(QObject *featuringClassifier);
+ void Q_DECL_HIDDEN removeFeaturingClassifier(QObject *featuringClassifier);
+ void setStatic(bool isStatic);
+
+ // Slots for owned attributes [BehavioralFeature]
+ void setConcurrency(QtUml::CallConcurrencyKind concurrency);
+ void setAbstract(bool isAbstract);
+ void addMethod(QObject *method);
+ void removeMethod(QObject *method);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addRaisedException(QObject *raisedException);
+ void removeRaisedException(QObject *raisedException);
+
+ // Slots for owned attributes [Reception]
+ void setSignal(QObject *signal = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLRECEPTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreclassifyobjectactionobject.cpp b/src/uml/qobjects/qumlreclassifyobjectactionobject.cpp
new file mode 100644
index 00000000..db3576ad
--- /dev/null
+++ b/src/uml/qobjects/qumlreclassifyobjectactionobject.cpp
@@ -0,0 +1,618 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreclassifyobjectactionobject_p.h"
+
+#include <QtUml/QUmlReclassifyObjectAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReclassifyObjectActionObject::QUmlReclassifyObjectActionObject(QUmlReclassifyObjectAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReclassifyObjectActionObject::~QUmlReclassifyObjectActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReclassifyObjectActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReclassifyObjectActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->name();
+}
+
+QObject *QUmlReclassifyObjectActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReclassifyObjectActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReclassifyObjectActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReclassifyObjectActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReclassifyObjectActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReclassifyObjectActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReclassifyObjectActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReclassifyObjectActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReclassifyObjectActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReclassifyObjectActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReclassifyObjectActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReclassifyObjectAction]
+
+bool QUmlReclassifyObjectActionObject::isReplaceAll() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->isReplaceAll();
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::newClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->newClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReclassifyObjectActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->object()->asQObject();
+}
+
+const QSet<QObject *> QUmlReclassifyObjectActionObject::oldClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->oldClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReclassifyObjectActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReclassifyObjectActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReclassifyObjectActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReclassifyObjectActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReclassifyObjectActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReclassifyObjectActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReclassifyObjectActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReclassifyObjectActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReclassifyObjectActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReclassifyObjectActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReclassifyObjectActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReclassifyObjectActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReclassifyObjectActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReclassifyObjectActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReclassifyObjectActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReclassifyObjectActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setName(name);
+}
+
+void QUmlReclassifyObjectActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReclassifyObjectActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReclassifyObjectActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReclassifyObjectActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReclassifyObjectActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReclassifyObjectActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReclassifyObjectActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReclassifyObjectActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReclassifyObjectActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReclassifyObjectActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReclassifyObjectActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReclassifyObjectActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReclassifyObjectActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReclassifyObjectActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReclassifyObjectActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReclassifyObjectActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReclassifyObjectActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReclassifyObjectActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReclassifyObjectActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReclassifyObjectActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReclassifyObjectActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReclassifyObjectActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReclassifyObjectActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReclassifyObjectActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReclassifyObjectActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReclassifyObjectActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReclassifyObjectActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReclassifyObjectActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReclassifyObjectActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReclassifyObjectActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReclassifyObjectActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReclassifyObjectActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReclassifyObjectActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReclassifyObjectActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReclassifyObjectActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReclassifyObjectAction]
+
+void QUmlReclassifyObjectActionObject::setReplaceAll(bool isReplaceAll)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setReplaceAll(isReplaceAll);
+}
+
+void QUmlReclassifyObjectActionObject::addNewClassifier(QObject *newClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addNewClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(newClassifier));
+}
+
+void QUmlReclassifyObjectActionObject::removeNewClassifier(QObject *newClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeNewClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(newClassifier));
+}
+
+void QUmlReclassifyObjectActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlReclassifyObjectActionObject::addOldClassifier(QObject *oldClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->addOldClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(oldClassifier));
+}
+
+void QUmlReclassifyObjectActionObject::removeOldClassifier(QObject *oldClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlReclassifyObjectAction *>(this)->removeOldClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(oldClassifier));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreclassifyobjectactionobject_p.h b/src/uml/qobjects/qumlreclassifyobjectactionobject_p.h
new file mode 100644
index 00000000..73bee855
--- /dev/null
+++ b/src/uml/qobjects/qumlreclassifyobjectactionobject_p.h
@@ -0,0 +1,240 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLRECLASSIFYOBJECTACTIONOBJECT_H
+#define QUMLRECLASSIFYOBJECTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReclassifyObjectAction;
+class Q_UML_EXPORT QUmlReclassifyObjectActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReclassifyObjectAction]
+ Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
+ Q_PROPERTY(QSet<QObject *> newClassifier READ newClassifier)
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QSet<QObject *> oldClassifier READ oldClassifier)
+
+public:
+ Q_INVOKABLE explicit QUmlReclassifyObjectActionObject(QUmlReclassifyObjectAction *qModelingObject);
+ virtual ~QUmlReclassifyObjectActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReclassifyObjectAction]
+ Q_INVOKABLE bool isReplaceAll() const;
+ Q_INVOKABLE const QSet<QObject *> newClassifier() const;
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE const QSet<QObject *> oldClassifier() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReclassifyObjectAction]
+ void setReplaceAll(bool isReplaceAll);
+ void addNewClassifier(QObject *newClassifier);
+ void removeNewClassifier(QObject *newClassifier);
+ void setObject(QObject *object = 0);
+ void addOldClassifier(QObject *oldClassifier);
+ void removeOldClassifier(QObject *oldClassifier);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLRECLASSIFYOBJECTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlredefinabletemplatesignatureobject.cpp b/src/uml/qobjects/qumlredefinabletemplatesignatureobject.cpp
new file mode 100644
index 00000000..f02e944b
--- /dev/null
+++ b/src/uml/qobjects/qumlredefinabletemplatesignatureobject.cpp
@@ -0,0 +1,401 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlredefinabletemplatesignatureobject_p.h"
+
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateableElement>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlRedefinableTemplateSignatureObject::QUmlRedefinableTemplateSignatureObject(QUmlRedefinableTemplateSignature *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlRedefinableTemplateSignatureObject::~QUmlRedefinableTemplateSignatureObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRedefinableTemplateSignatureObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateSignature]
+
+const QList<QObject *> QUmlRedefinableTemplateSignatureObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlTemplateParameter *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlRedefinableTemplateSignatureObject::parameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlTemplateParameter *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->parameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlRedefinableTemplateSignatureObject::template_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->template_()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlRedefinableTemplateSignatureObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->name();
+}
+
+QObject *QUmlRedefinableTemplateSignatureObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlRedefinableTemplateSignatureObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlRedefinableTemplateSignatureObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlRedefinableTemplateSignatureObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlRedefinableTemplateSignatureObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [RedefinableTemplateSignature]
+
+QObject *QUmlRedefinableTemplateSignatureObject::classifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->classifier()->asQObject();
+}
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::extendedSignature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableTemplateSignature *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->extendedSignature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRedefinableTemplateSignatureObject::inheritedParameter() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateParameter *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->inheritedParameter())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlRedefinableTemplateSignatureObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRedefinableTemplateSignatureObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlRedefinableTemplateSignatureObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlRedefinableTemplateSignatureObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRedefinableTemplateSignatureObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlRedefinableTemplateSignatureObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlRedefinableTemplateSignatureObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [RedefinableTemplateSignature]
+
+bool QUmlRedefinableTemplateSignatureObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlRedefinableTemplateSignatureObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRedefinableTemplateSignatureObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRedefinableTemplateSignatureObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateSignature]
+
+void QUmlRedefinableTemplateSignatureObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(ownedParameter));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(ownedParameter));
+}
+
+void QUmlRedefinableTemplateSignatureObject::addParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(parameter));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(parameter));
+}
+
+void QUmlRedefinableTemplateSignatureObject::setTemplate(QObject *template_)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setTemplate(qmodelingobjectproperty_cast<QUmlTemplateableElement *>(template_));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlRedefinableTemplateSignatureObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRedefinableTemplateSignatureObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setName(name);
+}
+
+void QUmlRedefinableTemplateSignatureObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlRedefinableTemplateSignatureObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlRedefinableTemplateSignatureObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlRedefinableTemplateSignatureObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlRedefinableTemplateSignatureObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlRedefinableTemplateSignatureObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRedefinableTemplateSignatureObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableTemplateSignature]
+
+void QUmlRedefinableTemplateSignatureObject::setClassifier(QObject *classifier)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->setClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(classifier));
+}
+
+void QUmlRedefinableTemplateSignatureObject::addExtendedSignature(QObject *extendedSignature)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addExtendedSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(extendedSignature));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeExtendedSignature(QObject *extendedSignature)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeExtendedSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(extendedSignature));
+}
+
+void QUmlRedefinableTemplateSignatureObject::addInheritedParameter(QObject *inheritedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->addInheritedParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(inheritedParameter));
+}
+
+void QUmlRedefinableTemplateSignatureObject::removeInheritedParameter(QObject *inheritedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(this)->removeInheritedParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(inheritedParameter));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlredefinabletemplatesignatureobject_p.h b/src/uml/qobjects/qumlredefinabletemplatesignatureobject_p.h
new file mode 100644
index 00000000..05bb0929
--- /dev/null
+++ b/src/uml/qobjects/qumlredefinabletemplatesignatureobject_p.h
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREDEFINABLETEMPLATESIGNATUREOBJECT_H
+#define QUMLREDEFINABLETEMPLATESIGNATUREOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlRedefinableTemplateSignature;
+class Q_UML_EXPORT QUmlRedefinableTemplateSignatureObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateSignature]
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QList<QObject *> parameter READ parameter)
+ Q_PROPERTY(QObject * template_ READ template_)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [RedefinableTemplateSignature]
+ Q_PROPERTY(QObject * classifier READ classifier)
+ Q_PROPERTY(QSet<QObject *> extendedSignature READ extendedSignature)
+ Q_PROPERTY(QSet<QObject *> inheritedParameter READ inheritedParameter)
+
+public:
+ Q_INVOKABLE explicit QUmlRedefinableTemplateSignatureObject(QUmlRedefinableTemplateSignature *qModelingObject);
+ virtual ~QUmlRedefinableTemplateSignatureObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateSignature]
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QList<QObject *> parameter() const;
+ Q_INVOKABLE QObject *template_() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [RedefinableTemplateSignature]
+ Q_INVOKABLE QObject *classifier() const;
+ Q_INVOKABLE const QSet<QObject *> extendedSignature() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedParameter() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [RedefinableTemplateSignature]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateSignature]
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addParameter(QObject *parameter);
+ void removeParameter(QObject *parameter);
+ void setTemplate(QObject *template_ = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [RedefinableTemplateSignature]
+ void setClassifier(QObject *classifier = 0);
+ void addExtendedSignature(QObject *extendedSignature);
+ void removeExtendedSignature(QObject *extendedSignature);
+ void Q_DECL_HIDDEN addInheritedParameter(QObject *inheritedParameter);
+ void Q_DECL_HIDDEN removeInheritedParameter(QObject *inheritedParameter);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREDEFINABLETEMPLATESIGNATUREOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreduceactionobject.cpp b/src/uml/qobjects/qumlreduceactionobject.cpp
new file mode 100644
index 00000000..b11a6b64
--- /dev/null
+++ b/src/uml/qobjects/qumlreduceactionobject.cpp
@@ -0,0 +1,603 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreduceactionobject_p.h"
+
+#include <QtUml/QUmlReduceAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReduceActionObject::QUmlReduceActionObject(QUmlReduceAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReduceActionObject::~QUmlReduceActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReduceActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReduceActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReduceActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReduceActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->name();
+}
+
+QObject *QUmlReduceActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReduceActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReduceActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReduceActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReduceActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReduceActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReduceActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReduceActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReduceActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReduceActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReduceActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReduceActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReduceActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReduceActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReduceActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReduceActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReduceActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReduceAction]
+
+QObject *QUmlReduceActionObject::collection() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->collection()->asQObject();
+}
+
+bool QUmlReduceActionObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->isOrdered();
+}
+
+QObject *QUmlReduceActionObject::reducer() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->reducer()->asQObject();
+}
+
+QObject *QUmlReduceActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->result()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReduceActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReduceActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReduceActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReduceActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReduceActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReduceActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReduceActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReduceActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReduceActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReduceActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReduceActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReduceActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReduceActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReduceActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReduceActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReduceActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setName(name);
+}
+
+void QUmlReduceActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReduceActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReduceActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReduceActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReduceActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReduceActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReduceActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReduceActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReduceActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReduceActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReduceActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReduceActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReduceActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReduceActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReduceActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReduceActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReduceActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReduceActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReduceActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReduceActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReduceActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReduceActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReduceActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReduceActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReduceActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReduceActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReduceActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReduceActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReduceActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReduceActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReduceActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReduceActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReduceActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReduceActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReduceActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReduceAction]
+
+void QUmlReduceActionObject::setCollection(QObject *collection)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setCollection(qmodelingobjectproperty_cast<QUmlInputPin *>(collection));
+}
+
+void QUmlReduceActionObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlReduceActionObject::setReducer(QObject *reducer)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setReducer(qmodelingobjectproperty_cast<QUmlBehavior *>(reducer));
+}
+
+void QUmlReduceActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlReduceAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreduceactionobject_p.h b/src/uml/qobjects/qumlreduceactionobject_p.h
new file mode 100644
index 00000000..82f1bdf1
--- /dev/null
+++ b/src/uml/qobjects/qumlreduceactionobject_p.h
@@ -0,0 +1,238 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREDUCEACTIONOBJECT_H
+#define QUMLREDUCEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReduceAction;
+class Q_UML_EXPORT QUmlReduceActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReduceAction]
+ Q_PROPERTY(QObject * collection READ collection)
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(QObject * reducer READ reducer)
+ Q_PROPERTY(QObject * result READ result)
+
+public:
+ Q_INVOKABLE explicit QUmlReduceActionObject(QUmlReduceAction *qModelingObject);
+ virtual ~QUmlReduceActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReduceAction]
+ Q_INVOKABLE QObject *collection() const;
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE QObject *reducer() const;
+ Q_INVOKABLE QObject *result() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReduceAction]
+ void setCollection(QObject *collection = 0);
+ void setOrdered(bool isOrdered);
+ void setReducer(QObject *reducer = 0);
+ void setResult(QObject *result = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREDUCEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlregionobject.cpp b/src/uml/qobjects/qumlregionobject.cpp
new file mode 100644
index 00000000..58ecdc5d
--- /dev/null
+++ b/src/uml/qobjects/qumlregionobject.cpp
@@ -0,0 +1,522 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlregionobject_p.h"
+
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTransition>
+#include <QtUml/QUmlVertex>
+
+QT_BEGIN_NAMESPACE
+
+QUmlRegionObject::QUmlRegionObject(QUmlRegion *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlRegionObject::~QUmlRegionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlRegionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRegionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlRegionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlRegionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->name();
+}
+
+QObject *QUmlRegionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlRegionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlRegionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlRegionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlRegionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlRegionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlRegionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Region]
+
+QObject *QUmlRegionObject::extendedRegion() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->extendedRegion()->asQObject();
+}
+
+QObject *QUmlRegionObject::redefinitionContext() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->redefinitionContext()->asQObject();
+}
+
+QObject *QUmlRegionObject::state() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->state()->asQObject();
+}
+
+QObject *QUmlRegionObject::stateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->stateMachine()->asQObject();
+}
+
+const QSet<QObject *> QUmlRegionObject::subvertex() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVertex *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->subvertex())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRegionObject::transition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->transition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlRegionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRegionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlRegionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlRegionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRegionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlRegionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlRegionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlRegionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlRegionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlRegion *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRegionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [Region]
+
+bool QUmlRegionObject::belongsToPSM() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->belongsToPSM();
+}
+
+QObject *QUmlRegionObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->containingStateMachine()->asQObject();
+}
+
+bool QUmlRegionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlRegionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlRegion *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRegion *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlRegionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRegionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRegionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRegionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRegionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlRegionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRegionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRegionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setName(name);
+}
+
+void QUmlRegionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlRegionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlRegionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlRegionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlRegionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlRegionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRegionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlRegionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlRegionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlRegionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlRegionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlRegionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlRegionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlRegionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlRegionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlRegionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlRegionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlRegionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlRegionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Region]
+
+void QUmlRegionObject::setExtendedRegion(QObject *extendedRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setExtendedRegion(qmodelingobjectproperty_cast<QUmlRegion *>(extendedRegion));
+}
+
+void QUmlRegionObject::setRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlRegionObject::setState(QObject *state)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setState(qmodelingobjectproperty_cast<QUmlState *>(state));
+}
+
+void QUmlRegionObject::setStateMachine(QObject *stateMachine)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->setStateMachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(stateMachine));
+}
+
+void QUmlRegionObject::addSubvertex(QObject *subvertex)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addSubvertex(qmodelingobjectproperty_cast<QUmlVertex *>(subvertex));
+}
+
+void QUmlRegionObject::removeSubvertex(QObject *subvertex)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeSubvertex(qmodelingobjectproperty_cast<QUmlVertex *>(subvertex));
+}
+
+void QUmlRegionObject::addTransition(QObject *transition)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->addTransition(qmodelingobjectproperty_cast<QUmlTransition *>(transition));
+}
+
+void QUmlRegionObject::removeTransition(QObject *transition)
+{
+ qmodelingobjectproperty_cast<QUmlRegion *>(this)->removeTransition(qmodelingobjectproperty_cast<QUmlTransition *>(transition));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlregionobject_p.h b/src/uml/qobjects/qumlregionobject_p.h
new file mode 100644
index 00000000..9771c6ac
--- /dev/null
+++ b/src/uml/qobjects/qumlregionobject_p.h
@@ -0,0 +1,208 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREGIONOBJECT_H
+#define QUMLREGIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlRegion;
+class Q_UML_EXPORT QUmlRegionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [Region]
+ Q_PROPERTY(QObject * extendedRegion READ extendedRegion)
+ Q_PROPERTY(QObject * redefinitionContext READ redefinitionContext)
+ Q_PROPERTY(QObject * state READ state)
+ Q_PROPERTY(QObject * stateMachine READ stateMachine)
+ Q_PROPERTY(QSet<QObject *> subvertex READ subvertex)
+ Q_PROPERTY(QSet<QObject *> transition READ transition)
+
+public:
+ Q_INVOKABLE explicit QUmlRegionObject(QUmlRegion *qModelingObject);
+ virtual ~QUmlRegionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [Region]
+ Q_INVOKABLE QObject *extendedRegion() const;
+ Q_INVOKABLE QObject *redefinitionContext() const;
+ Q_INVOKABLE QObject *state() const;
+ Q_INVOKABLE QObject *stateMachine() const;
+ Q_INVOKABLE const QSet<QObject *> subvertex() const;
+ Q_INVOKABLE const QSet<QObject *> transition() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [Region]
+ Q_INVOKABLE bool belongsToPSM() const;
+ Q_INVOKABLE QObject *containingStateMachine() const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [Region]
+ void setExtendedRegion(QObject *extendedRegion = 0);
+ void Q_DECL_HIDDEN setRedefinitionContext(QObject *redefinitionContext = 0);
+ void setState(QObject *state = 0);
+ void setStateMachine(QObject *stateMachine = 0);
+ void addSubvertex(QObject *subvertex);
+ void removeSubvertex(QObject *subvertex);
+ void addTransition(QObject *transition);
+ void removeTransition(QObject *transition);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREGIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject.cpp b/src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject.cpp
new file mode 100644
index 00000000..7db130cd
--- /dev/null
+++ b/src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject.cpp
@@ -0,0 +1,631 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlremovestructuralfeaturevalueactionobject_p.h"
+
+#include <QtUml/QUmlRemoveStructuralFeatureValueAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuralFeature>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlRemoveStructuralFeatureValueActionObject::QUmlRemoveStructuralFeatureValueActionObject(QUmlRemoveStructuralFeatureValueAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlRemoveStructuralFeatureValueActionObject::~QUmlRemoveStructuralFeatureValueActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlRemoveStructuralFeatureValueActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->name();
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlRemoveStructuralFeatureValueActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlRemoveStructuralFeatureValueActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlRemoveStructuralFeatureValueActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlRemoveStructuralFeatureValueActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlRemoveStructuralFeatureValueActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlRemoveStructuralFeatureValueActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [StructuralFeatureAction]
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->object()->asQObject();
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::structuralFeature() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->structuralFeature()->asQObject();
+}
+
+// OWNED ATTRIBUTES [WriteStructuralFeatureAction]
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->result()->asQObject();
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->value()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RemoveStructuralFeatureValueAction]
+
+bool QUmlRemoveStructuralFeatureValueActionObject::isRemoveDuplicates() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->isRemoveDuplicates();
+}
+
+QObject *QUmlRemoveStructuralFeatureValueActionObject::removeAt() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeAt()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRemoveStructuralFeatureValueActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlRemoveStructuralFeatureValueActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlRemoveStructuralFeatureValueActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRemoveStructuralFeatureValueActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlRemoveStructuralFeatureValueActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlRemoveStructuralFeatureValueActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlRemoveStructuralFeatureValueActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlRemoveStructuralFeatureValueActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlRemoveStructuralFeatureValueActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setName(name);
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlRemoveStructuralFeatureValueActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlRemoveStructuralFeatureValueActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlRemoveStructuralFeatureValueActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlRemoveStructuralFeatureValueActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
+
+void QUmlRemoveStructuralFeatureValueActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setStructuralFeature(QObject *structuralFeature)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setStructuralFeature(qmodelingobjectproperty_cast<QUmlStructuralFeature *>(structuralFeature));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [WriteStructuralFeatureAction]
+
+void QUmlRemoveStructuralFeatureValueActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RemoveStructuralFeatureValueAction]
+
+void QUmlRemoveStructuralFeatureValueActionObject::setRemoveDuplicates(bool isRemoveDuplicates)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setRemoveDuplicates(isRemoveDuplicates);
+}
+
+void QUmlRemoveStructuralFeatureValueActionObject::setRemoveAt(QObject *removeAt)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveStructuralFeatureValueAction *>(this)->setRemoveAt(qmodelingobjectproperty_cast<QUmlInputPin *>(removeAt));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject_p.h b/src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject_p.h
new file mode 100644
index 00000000..e950a9b9
--- /dev/null
+++ b/src/uml/qobjects/qumlremovestructuralfeaturevalueactionobject_p.h
@@ -0,0 +1,256 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREMOVESTRUCTURALFEATUREVALUEACTIONOBJECT_H
+#define QUMLREMOVESTRUCTURALFEATUREVALUEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlRemoveStructuralFeatureValueAction;
+class Q_UML_EXPORT QUmlRemoveStructuralFeatureValueActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [StructuralFeatureAction]
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QObject * structuralFeature READ structuralFeature)
+
+ // Properties [WriteStructuralFeatureAction]
+ Q_PROPERTY(QObject * result READ result)
+ Q_PROPERTY(QObject * value READ value)
+
+ // Properties [RemoveStructuralFeatureValueAction]
+ Q_PROPERTY(bool isRemoveDuplicates READ isRemoveDuplicates)
+ Q_PROPERTY(QObject * removeAt READ removeAt)
+
+public:
+ Q_INVOKABLE explicit QUmlRemoveStructuralFeatureValueActionObject(QUmlRemoveStructuralFeatureValueAction *qModelingObject);
+ virtual ~QUmlRemoveStructuralFeatureValueActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [StructuralFeatureAction]
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE QObject *structuralFeature() const;
+
+ // Owned attributes [WriteStructuralFeatureAction]
+ Q_INVOKABLE QObject *result() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Owned attributes [RemoveStructuralFeatureValueAction]
+ Q_INVOKABLE bool isRemoveDuplicates() const;
+ Q_INVOKABLE QObject *removeAt() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [StructuralFeatureAction]
+ void setObject(QObject *object = 0);
+ void setStructuralFeature(QObject *structuralFeature = 0);
+
+ // Slots for owned attributes [WriteStructuralFeatureAction]
+ void setResult(QObject *result = 0);
+ void setValue(QObject *value = 0);
+
+ // Slots for owned attributes [RemoveStructuralFeatureValueAction]
+ void setRemoveDuplicates(bool isRemoveDuplicates);
+ void setRemoveAt(QObject *removeAt = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREMOVESTRUCTURALFEATUREVALUEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlremovevariablevalueactionobject.cpp b/src/uml/qobjects/qumlremovevariablevalueactionobject.cpp
new file mode 100644
index 00000000..cc8a190b
--- /dev/null
+++ b/src/uml/qobjects/qumlremovevariablevalueactionobject.cpp
@@ -0,0 +1,611 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlremovevariablevalueactionobject_p.h"
+
+#include <QtUml/QUmlRemoveVariableValueAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlRemoveVariableValueActionObject::QUmlRemoveVariableValueActionObject(QUmlRemoveVariableValueAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlRemoveVariableValueActionObject::~QUmlRemoveVariableValueActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRemoveVariableValueActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlRemoveVariableValueActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->name();
+}
+
+QObject *QUmlRemoveVariableValueActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlRemoveVariableValueActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlRemoveVariableValueActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlRemoveVariableValueActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlRemoveVariableValueActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlRemoveVariableValueActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlRemoveVariableValueActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlRemoveVariableValueActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlRemoveVariableValueActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlRemoveVariableValueActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlRemoveVariableValueActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlRemoveVariableValueActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [VariableAction]
+
+QObject *QUmlRemoveVariableValueActionObject::variable() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->variable()->asQObject();
+}
+
+// OWNED ATTRIBUTES [WriteVariableAction]
+
+QObject *QUmlRemoveVariableValueActionObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->value()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RemoveVariableValueAction]
+
+bool QUmlRemoveVariableValueActionObject::isRemoveDuplicates() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->isRemoveDuplicates();
+}
+
+QObject *QUmlRemoveVariableValueActionObject::removeAt() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeAt()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlRemoveVariableValueActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRemoveVariableValueActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlRemoveVariableValueActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlRemoveVariableValueActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlRemoveVariableValueActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlRemoveVariableValueActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlRemoveVariableValueActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlRemoveVariableValueActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlRemoveVariableValueActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRemoveVariableValueActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlRemoveVariableValueActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRemoveVariableValueActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlRemoveVariableValueActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlRemoveVariableValueActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRemoveVariableValueActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlRemoveVariableValueActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setName(name);
+}
+
+void QUmlRemoveVariableValueActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlRemoveVariableValueActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlRemoveVariableValueActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlRemoveVariableValueActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlRemoveVariableValueActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlRemoveVariableValueActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRemoveVariableValueActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlRemoveVariableValueActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlRemoveVariableValueActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlRemoveVariableValueActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlRemoveVariableValueActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlRemoveVariableValueActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlRemoveVariableValueActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlRemoveVariableValueActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlRemoveVariableValueActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlRemoveVariableValueActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlRemoveVariableValueActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlRemoveVariableValueActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlRemoveVariableValueActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlRemoveVariableValueActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlRemoveVariableValueActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlRemoveVariableValueActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlRemoveVariableValueActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlRemoveVariableValueActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlRemoveVariableValueActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlRemoveVariableValueActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlRemoveVariableValueActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlRemoveVariableValueActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlRemoveVariableValueActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlRemoveVariableValueActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlRemoveVariableValueActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlRemoveVariableValueActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlRemoveVariableValueActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlRemoveVariableValueActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlRemoveVariableValueActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
+
+void QUmlRemoveVariableValueActionObject::setVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [WriteVariableAction]
+
+void QUmlRemoveVariableValueActionObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setValue(qmodelingobjectproperty_cast<QUmlInputPin *>(value));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RemoveVariableValueAction]
+
+void QUmlRemoveVariableValueActionObject::setRemoveDuplicates(bool isRemoveDuplicates)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setRemoveDuplicates(isRemoveDuplicates);
+}
+
+void QUmlRemoveVariableValueActionObject::setRemoveAt(QObject *removeAt)
+{
+ qmodelingobjectproperty_cast<QUmlRemoveVariableValueAction *>(this)->setRemoveAt(qmodelingobjectproperty_cast<QUmlInputPin *>(removeAt));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlremovevariablevalueactionobject_p.h b/src/uml/qobjects/qumlremovevariablevalueactionobject_p.h
new file mode 100644
index 00000000..c69dcd45
--- /dev/null
+++ b/src/uml/qobjects/qumlremovevariablevalueactionobject_p.h
@@ -0,0 +1,250 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREMOVEVARIABLEVALUEACTIONOBJECT_H
+#define QUMLREMOVEVARIABLEVALUEACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlRemoveVariableValueAction;
+class Q_UML_EXPORT QUmlRemoveVariableValueActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [VariableAction]
+ Q_PROPERTY(QObject * variable READ variable)
+
+ // Properties [WriteVariableAction]
+ Q_PROPERTY(QObject * value READ value)
+
+ // Properties [RemoveVariableValueAction]
+ Q_PROPERTY(bool isRemoveDuplicates READ isRemoveDuplicates)
+ Q_PROPERTY(QObject * removeAt READ removeAt)
+
+public:
+ Q_INVOKABLE explicit QUmlRemoveVariableValueActionObject(QUmlRemoveVariableValueAction *qModelingObject);
+ virtual ~QUmlRemoveVariableValueActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [VariableAction]
+ Q_INVOKABLE QObject *variable() const;
+
+ // Owned attributes [WriteVariableAction]
+ Q_INVOKABLE QObject *value() const;
+
+ // Owned attributes [RemoveVariableValueAction]
+ Q_INVOKABLE bool isRemoveDuplicates() const;
+ Q_INVOKABLE QObject *removeAt() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [VariableAction]
+ void setVariable(QObject *variable = 0);
+
+ // Slots for owned attributes [WriteVariableAction]
+ void setValue(QObject *value = 0);
+
+ // Slots for owned attributes [RemoveVariableValueAction]
+ void setRemoveDuplicates(bool isRemoveDuplicates);
+ void setRemoveAt(QObject *removeAt = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREMOVEVARIABLEVALUEACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlreplyactionobject.cpp b/src/uml/qobjects/qumlreplyactionobject.cpp
new file mode 100644
index 00000000..8b1c7253
--- /dev/null
+++ b/src/uml/qobjects/qumlreplyactionobject.cpp
@@ -0,0 +1,601 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlreplyactionobject_p.h"
+
+#include <QtUml/QUmlReplyAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlTrigger>
+
+QT_BEGIN_NAMESPACE
+
+QUmlReplyActionObject::QUmlReplyActionObject(QUmlReplyAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlReplyActionObject::~QUmlReplyActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlReplyActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReplyActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlReplyActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlReplyActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->name();
+}
+
+QObject *QUmlReplyActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlReplyActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlReplyActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlReplyActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlReplyActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlReplyActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlReplyActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlReplyActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReplyActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlReplyActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlReplyActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlReplyActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlReplyActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlReplyActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlReplyActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlReplyActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlReplyActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ReplyAction]
+
+QObject *QUmlReplyActionObject::replyToCall() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->replyToCall()->asQObject();
+}
+
+const QSet<QObject *> QUmlReplyActionObject::replyValue() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->replyValue())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlReplyActionObject::returnInformation() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->returnInformation()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlReplyActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReplyActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlReplyActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlReplyActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlReplyActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlReplyActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlReplyActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlReplyActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlReplyActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReplyActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlReplyActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReplyActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlReplyActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlReplyActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReplyActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlReplyActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setName(name);
+}
+
+void QUmlReplyActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlReplyActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlReplyActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlReplyActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlReplyActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlReplyActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReplyActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlReplyActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlReplyActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlReplyActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlReplyActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReplyActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlReplyActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReplyActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlReplyActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReplyActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlReplyActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlReplyActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReplyActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlReplyActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReplyActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlReplyActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlReplyActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlReplyActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlReplyActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlReplyActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlReplyActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReplyActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlReplyActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlReplyActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReplyActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlReplyActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReplyActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlReplyActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlReplyActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ReplyAction]
+
+void QUmlReplyActionObject::setReplyToCall(QObject *replyToCall)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setReplyToCall(qmodelingobjectproperty_cast<QUmlTrigger *>(replyToCall));
+}
+
+void QUmlReplyActionObject::addReplyValue(QObject *replyValue)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->addReplyValue(qmodelingobjectproperty_cast<QUmlInputPin *>(replyValue));
+}
+
+void QUmlReplyActionObject::removeReplyValue(QObject *replyValue)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->removeReplyValue(qmodelingobjectproperty_cast<QUmlInputPin *>(replyValue));
+}
+
+void QUmlReplyActionObject::setReturnInformation(QObject *returnInformation)
+{
+ qmodelingobjectproperty_cast<QUmlReplyAction *>(this)->setReturnInformation(qmodelingobjectproperty_cast<QUmlInputPin *>(returnInformation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlreplyactionobject_p.h b/src/uml/qobjects/qumlreplyactionobject_p.h
new file mode 100644
index 00000000..2fe7ab57
--- /dev/null
+++ b/src/uml/qobjects/qumlreplyactionobject_p.h
@@ -0,0 +1,236 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLREPLYACTIONOBJECT_H
+#define QUMLREPLYACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlReplyAction;
+class Q_UML_EXPORT QUmlReplyActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ReplyAction]
+ Q_PROPERTY(QObject * replyToCall READ replyToCall)
+ Q_PROPERTY(QSet<QObject *> replyValue READ replyValue)
+ Q_PROPERTY(QObject * returnInformation READ returnInformation)
+
+public:
+ Q_INVOKABLE explicit QUmlReplyActionObject(QUmlReplyAction *qModelingObject);
+ virtual ~QUmlReplyActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ReplyAction]
+ Q_INVOKABLE QObject *replyToCall() const;
+ Q_INVOKABLE const QSet<QObject *> replyValue() const;
+ Q_INVOKABLE QObject *returnInformation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ReplyAction]
+ void setReplyToCall(QObject *replyToCall = 0);
+ void addReplyValue(QObject *replyValue);
+ void removeReplyValue(QObject *replyValue);
+ void setReturnInformation(QObject *returnInformation = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLREPLYACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlsendobjectactionobject.cpp b/src/uml/qobjects/qumlsendobjectactionobject.cpp
new file mode 100644
index 00000000..e8c0c369
--- /dev/null
+++ b/src/uml/qobjects/qumlsendobjectactionobject.cpp
@@ -0,0 +1,597 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlsendobjectactionobject_p.h"
+
+#include <QtUml/QUmlSendObjectAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSendObjectActionObject::QUmlSendObjectActionObject(QUmlSendObjectAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSendObjectActionObject::~QUmlSendObjectActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSendObjectActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSendObjectActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlSendObjectActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlSendObjectActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->name();
+}
+
+QObject *QUmlSendObjectActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlSendObjectActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlSendObjectActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlSendObjectActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlSendObjectActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlSendObjectActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSendObjectActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlSendObjectActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlSendObjectActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlSendObjectActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlSendObjectActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendObjectActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlSendObjectActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [InvocationAction]
+
+QObject *QUmlSendObjectActionObject::onPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->onPort()->asQObject();
+}
+
+// OWNED ATTRIBUTES [SendObjectAction]
+
+QObject *QUmlSendObjectActionObject::request() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->request()->asQObject();
+}
+
+QObject *QUmlSendObjectActionObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->target()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSendObjectActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSendObjectActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlSendObjectActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSendObjectActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSendObjectActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlSendObjectActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlSendObjectActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlSendObjectActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSendObjectActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSendObjectActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSendObjectActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSendObjectActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSendObjectActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlSendObjectActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSendObjectActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSendObjectActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setName(name);
+}
+
+void QUmlSendObjectActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlSendObjectActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlSendObjectActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlSendObjectActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlSendObjectActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlSendObjectActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSendObjectActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSendObjectActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlSendObjectActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlSendObjectActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlSendObjectActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlSendObjectActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlSendObjectActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlSendObjectActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlSendObjectActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlSendObjectActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlSendObjectActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlSendObjectActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlSendObjectActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlSendObjectActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlSendObjectActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlSendObjectActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlSendObjectActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlSendObjectActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlSendObjectActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlSendObjectActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlSendObjectActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlSendObjectActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlSendObjectActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlSendObjectActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlSendObjectActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlSendObjectActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlSendObjectActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlSendObjectActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlSendObjectActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
+
+void QUmlSendObjectActionObject::setOnPort(QObject *onPort)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setOnPort(qmodelingobjectproperty_cast<QUmlPort *>(onPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [SendObjectAction]
+
+void QUmlSendObjectActionObject::setRequest(QObject *request)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setRequest(qmodelingobjectproperty_cast<QUmlInputPin *>(request));
+}
+
+void QUmlSendObjectActionObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlSendObjectAction *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlInputPin *>(target));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlsendobjectactionobject_p.h b/src/uml/qobjects/qumlsendobjectactionobject_p.h
new file mode 100644
index 00000000..7bae17e4
--- /dev/null
+++ b/src/uml/qobjects/qumlsendobjectactionobject_p.h
@@ -0,0 +1,241 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSENDOBJECTACTIONOBJECT_H
+#define QUMLSENDOBJECTACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSendObjectAction;
+class Q_UML_EXPORT QUmlSendObjectActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [InvocationAction]
+ Q_PROPERTY(QObject * onPort READ onPort)
+
+ // Properties [SendObjectAction]
+ Q_PROPERTY(QObject * request READ request)
+ Q_PROPERTY(QObject * target READ target)
+
+public:
+ Q_INVOKABLE explicit QUmlSendObjectActionObject(QUmlSendObjectAction *qModelingObject);
+ virtual ~QUmlSendObjectActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [InvocationAction]
+ Q_INVOKABLE QObject *onPort() const;
+
+ // Owned attributes [SendObjectAction]
+ Q_INVOKABLE QObject *request() const;
+ Q_INVOKABLE QObject *target() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [InvocationAction]
+ void setOnPort(QObject *onPort = 0);
+
+ // Slots for owned attributes [SendObjectAction]
+ void setRequest(QObject *request = 0);
+ void setTarget(QObject *target = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSENDOBJECTACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlsendsignalactionobject.cpp b/src/uml/qobjects/qumlsendsignalactionobject.cpp
new file mode 100644
index 00000000..c8c697a1
--- /dev/null
+++ b/src/uml/qobjects/qumlsendsignalactionobject.cpp
@@ -0,0 +1,616 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlsendsignalactionobject_p.h"
+
+#include <QtUml/QUmlSendSignalAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlSignal>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSendSignalActionObject::QUmlSendSignalActionObject(QUmlSendSignalAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSendSignalActionObject::~QUmlSendSignalActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSendSignalActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSendSignalActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlSendSignalActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlSendSignalActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->name();
+}
+
+QObject *QUmlSendSignalActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlSendSignalActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlSendSignalActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlSendSignalActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlSendSignalActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlSendSignalActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSendSignalActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlSendSignalActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlSendSignalActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlSendSignalActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlSendSignalActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSendSignalActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlSendSignalActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [InvocationAction]
+
+const QList<QObject *> QUmlSendSignalActionObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlSendSignalActionObject::onPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->onPort()->asQObject();
+}
+
+// OWNED ATTRIBUTES [SendSignalAction]
+
+QObject *QUmlSendSignalActionObject::signal() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->signal()->asQObject();
+}
+
+QObject *QUmlSendSignalActionObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->target()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSendSignalActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSendSignalActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlSendSignalActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSendSignalActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSendSignalActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlSendSignalActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlSendSignalActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlSendSignalActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSendSignalActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSendSignalActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSendSignalActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSendSignalActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSendSignalActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlSendSignalActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSendSignalActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSendSignalActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setName(name);
+}
+
+void QUmlSendSignalActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlSendSignalActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlSendSignalActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlSendSignalActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlSendSignalActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlSendSignalActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSendSignalActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSendSignalActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlSendSignalActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlSendSignalActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlSendSignalActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlSendSignalActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlSendSignalActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlSendSignalActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlSendSignalActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlSendSignalActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlSendSignalActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlSendSignalActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlSendSignalActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlSendSignalActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlSendSignalActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlSendSignalActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlSendSignalActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlSendSignalActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlSendSignalActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlSendSignalActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlSendSignalActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlSendSignalActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlSendSignalActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlSendSignalActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlSendSignalActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlSendSignalActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlSendSignalActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlSendSignalActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlSendSignalActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
+
+void QUmlSendSignalActionObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlSendSignalActionObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlSendSignalActionObject::setOnPort(QObject *onPort)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setOnPort(qmodelingobjectproperty_cast<QUmlPort *>(onPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [SendSignalAction]
+
+void QUmlSendSignalActionObject::setSignal(QObject *signal)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setSignal(qmodelingobjectproperty_cast<QUmlSignal *>(signal));
+}
+
+void QUmlSendSignalActionObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlSendSignalAction *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlInputPin *>(target));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlsendsignalactionobject_p.h b/src/uml/qobjects/qumlsendsignalactionobject_p.h
new file mode 100644
index 00000000..50638258
--- /dev/null
+++ b/src/uml/qobjects/qumlsendsignalactionobject_p.h
@@ -0,0 +1,245 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSENDSIGNALACTIONOBJECT_H
+#define QUMLSENDSIGNALACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSendSignalAction;
+class Q_UML_EXPORT QUmlSendSignalActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [InvocationAction]
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * onPort READ onPort)
+
+ // Properties [SendSignalAction]
+ Q_PROPERTY(QObject * signal READ signal)
+ Q_PROPERTY(QObject * target READ target)
+
+public:
+ Q_INVOKABLE explicit QUmlSendSignalActionObject(QUmlSendSignalAction *qModelingObject);
+ virtual ~QUmlSendSignalActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [InvocationAction]
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *onPort() const;
+
+ // Owned attributes [SendSignalAction]
+ Q_INVOKABLE QObject *signal() const;
+ Q_INVOKABLE QObject *target() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [InvocationAction]
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setOnPort(QObject *onPort = 0);
+
+ // Slots for owned attributes [SendSignalAction]
+ void setSignal(QObject *signal = 0);
+ void setTarget(QObject *target = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSENDSIGNALACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlsequencenodeobject.cpp b/src/uml/qobjects/qumlsequencenodeobject.cpp
new file mode 100644
index 00000000..e9774c7d
--- /dev/null
+++ b/src/uml/qobjects/qumlsequencenodeobject.cpp
@@ -0,0 +1,885 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlsequencenodeobject_p.h"
+
+#include <QtUml/QUmlSequenceNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlExecutableNode>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSequenceNodeObject::QUmlSequenceNodeObject(QUmlSequenceNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSequenceNodeObject::~QUmlSequenceNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSequenceNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSequenceNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlSequenceNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlSequenceNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->name();
+}
+
+QObject *QUmlSequenceNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlSequenceNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlSequenceNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlSequenceNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlSequenceNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+const QSet<QObject *> QUmlSequenceNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSequenceNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlSequenceNodeObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlSequenceNodeObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlSequenceNodeObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlSequenceNodeObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlSequenceNodeObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlSequenceNodeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlSequenceNodeObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSequenceNodeObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StructuredActivityNode]
+
+QObject *QUmlSequenceNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSequenceNodeObject::mustIsolate() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->mustIsolate();
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::structuredNodeInput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->structuredNodeInput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::structuredNodeOutput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->structuredNodeOutput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSequenceNodeObject::variable() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVariable *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->variable())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [SequenceNode]
+
+const QList<QObject *> QUmlSequenceNodeObject::executableNode() const
+{
+ QList<QObject *> list;
+ foreach (QUmlExecutableNode *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->executableNode())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSequenceNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSequenceNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlSequenceNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSequenceNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSequenceNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlSequenceNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlSequenceNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlSequenceNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlSequenceNodeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlSequenceNodeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlSequenceNodeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSequenceNodeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->membersAreDistinguishable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSequenceNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSequenceNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSequenceNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSequenceNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSequenceNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlSequenceNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSequenceNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSequenceNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setName(name);
+}
+
+void QUmlSequenceNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlSequenceNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlSequenceNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlSequenceNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlSequenceNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlSequenceNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSequenceNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSequenceNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlSequenceNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlSequenceNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlSequenceNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlSequenceNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlSequenceNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlSequenceNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlSequenceNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlSequenceNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlSequenceNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlSequenceNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlSequenceNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlSequenceNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlSequenceNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlSequenceNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlSequenceNodeObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlSequenceNodeObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlSequenceNodeObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlSequenceNodeObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlSequenceNodeObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlSequenceNodeObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlSequenceNodeObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlSequenceNodeObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlSequenceNodeObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlSequenceNodeObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlSequenceNodeObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlSequenceNodeObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlSequenceNodeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlSequenceNodeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlSequenceNodeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlSequenceNodeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlSequenceNodeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlSequenceNodeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlSequenceNodeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlSequenceNodeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlSequenceNodeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlSequenceNodeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlSequenceNodeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlSequenceNodeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlSequenceNodeObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlSequenceNodeObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlSequenceNodeObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlSequenceNodeObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlSequenceNodeObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlSequenceNodeObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlSequenceNodeObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
+
+void QUmlSequenceNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlSequenceNodeObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlSequenceNodeObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlSequenceNodeObject::setMustIsolate(bool mustIsolate)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->setMustIsolate(mustIsolate);
+}
+
+void QUmlSequenceNodeObject::addStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlSequenceNodeObject::removeStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlSequenceNodeObject::addStructuredNodeOutput(QObject *structuredNodeOutput)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addStructuredNodeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(structuredNodeOutput));
+}
+
+void QUmlSequenceNodeObject::removeStructuredNodeOutput(QObject *structuredNodeOutput)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeStructuredNodeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(structuredNodeOutput));
+}
+
+void QUmlSequenceNodeObject::addVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+void QUmlSequenceNodeObject::removeVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [SequenceNode]
+
+void QUmlSequenceNodeObject::addExecutableNode(QObject *executableNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->addExecutableNode(qmodelingobjectproperty_cast<QUmlExecutableNode *>(executableNode));
+}
+
+void QUmlSequenceNodeObject::removeExecutableNode(QObject *executableNode)
+{
+ qmodelingobjectproperty_cast<QUmlSequenceNode *>(this)->removeExecutableNode(qmodelingobjectproperty_cast<QUmlExecutableNode *>(executableNode));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlsequencenodeobject_p.h b/src/uml/qobjects/qumlsequencenodeobject_p.h
new file mode 100644
index 00000000..92088669
--- /dev/null
+++ b/src/uml/qobjects/qumlsequencenodeobject_p.h
@@ -0,0 +1,312 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSEQUENCENODEOBJECT_H
+#define QUMLSEQUENCENODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSequenceNode;
+class Q_UML_EXPORT QUmlSequenceNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [StructuredActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(bool mustIsolate READ mustIsolate)
+ Q_PROPERTY(QSet<QObject *> structuredNodeInput READ structuredNodeInput)
+ Q_PROPERTY(QSet<QObject *> structuredNodeOutput READ structuredNodeOutput)
+ Q_PROPERTY(QSet<QObject *> variable READ variable)
+
+ // Properties [SequenceNode]
+ Q_PROPERTY(QList<QObject *> executableNode READ executableNode)
+
+public:
+ Q_INVOKABLE explicit QUmlSequenceNodeObject(QUmlSequenceNode *qModelingObject);
+ virtual ~QUmlSequenceNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [StructuredActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE bool mustIsolate() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeInput() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeOutput() const;
+ Q_INVOKABLE const QSet<QObject *> variable() const;
+
+ // Owned attributes [SequenceNode]
+ Q_INVOKABLE const QList<QObject *> executableNode() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [StructuredActivityNode]
+ void setActivity(QObject *activity = 0);
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void setMustIsolate(bool mustIsolate);
+ void addStructuredNodeInput(QObject *structuredNodeInput);
+ void removeStructuredNodeInput(QObject *structuredNodeInput);
+ void addStructuredNodeOutput(QObject *structuredNodeOutput);
+ void removeStructuredNodeOutput(QObject *structuredNodeOutput);
+ void addVariable(QObject *variable);
+ void removeVariable(QObject *variable);
+
+ // Slots for owned attributes [SequenceNode]
+ void addExecutableNode(QObject *executableNode);
+ void removeExecutableNode(QObject *executableNode);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSEQUENCENODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlsignaleventobject.cpp b/src/uml/qobjects/qumlsignaleventobject.cpp
new file mode 100644
index 00000000..55a95c15
--- /dev/null
+++ b/src/uml/qobjects/qumlsignaleventobject.cpp
@@ -0,0 +1,288 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlsignaleventobject_p.h"
+
+#include <QtUml/QUmlSignalEvent>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlSignal>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSignalEventObject::QUmlSignalEventObject(QUmlSignalEvent *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSignalEventObject::~QUmlSignalEventObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSignalEventObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalEventObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSignalEventObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlSignalEventObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlSignalEventObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlSignalEventObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlSignalEventObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->name();
+}
+
+QObject *QUmlSignalEventObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlSignalEventObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlSignalEventObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlSignalEventObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [SignalEvent]
+
+QObject *QUmlSignalEventObject::signal() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->signal()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSignalEventObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalEventObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlSignalEventObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlSignalEventObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlSignalEventObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSignalEventObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalEventObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlSignalEventObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSignalEventObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSignalEventObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSignalEventObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSignalEventObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSignalEventObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlSignalEventObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlSignalEventObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlSignalEventObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSignalEventObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSignalEventObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setName(name);
+}
+
+void QUmlSignalEventObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlSignalEventObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlSignalEventObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlSignalEventObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [SignalEvent]
+
+void QUmlSignalEventObject::setSignal(QObject *signal)
+{
+ qmodelingobjectproperty_cast<QUmlSignalEvent *>(this)->setSignal(qmodelingobjectproperty_cast<QUmlSignal *>(signal));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlsignaleventobject_p.h b/src/uml/qobjects/qumlsignaleventobject_p.h
new file mode 100644
index 00000000..9b4c82e9
--- /dev/null
+++ b/src/uml/qobjects/qumlsignaleventobject_p.h
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSIGNALEVENTOBJECT_H
+#define QUMLSIGNALEVENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSignalEvent;
+class Q_UML_EXPORT QUmlSignalEventObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [SignalEvent]
+ Q_PROPERTY(QObject * signal READ signal)
+
+public:
+ Q_INVOKABLE explicit QUmlSignalEventObject(QUmlSignalEvent *qModelingObject);
+ virtual ~QUmlSignalEventObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [SignalEvent]
+ Q_INVOKABLE QObject *signal() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [SignalEvent]
+ void setSignal(QObject *signal = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSIGNALEVENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlsignalobject.cpp b/src/uml/qobjects/qumlsignalobject.cpp
new file mode 100644
index 00000000..258b190c
--- /dev/null
+++ b/src/uml/qobjects/qumlsignalobject.cpp
@@ -0,0 +1,873 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlsignalobject_p.h"
+
+#include <QtUml/QUmlSignal>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSignalObject::QUmlSignalObject(QUmlSignal *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSignalObject::~QUmlSignalObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSignalObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSignalObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlSignalObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlSignalObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->name();
+}
+
+QObject *QUmlSignalObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlSignalObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlSignalObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlSignalObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlSignalObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlSignalObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlSignalObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlSignalObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlSignalObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlSignalObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlSignalObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isAbstract();
+}
+
+bool QUmlSignalObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlSignalObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlSignalObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSignalObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSignalObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlSignalObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSignalObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlSignalObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Signal]
+
+const QList<QObject *> QUmlSignalObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSignalObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlSignalObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSignalObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlSignalObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlSignalObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlSignalObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlSignalObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlSignalObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlSignalObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlSignalObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlSignalObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlSignalObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlSignalObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSignalObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlSignalObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlSignalObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSignalObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSignalObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->isTemplate();
+}
+
+bool QUmlSignalObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlSignal *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlSignalObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlSignal *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSignalObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSignalObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSignalObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSignalObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSignalObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlSignalObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSignalObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSignalObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setName(name);
+}
+
+void QUmlSignalObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlSignalObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlSignalObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlSignalObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlSignalObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlSignalObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlSignalObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlSignalObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlSignalObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlSignalObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlSignalObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlSignalObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlSignalObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlSignalObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlSignalObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlSignalObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlSignalObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlSignalObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlSignalObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlSignalObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSignalObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlSignalObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlSignalObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlSignalObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlSignalObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlSignalObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlSignalObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlSignalObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlSignalObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlSignalObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlSignalObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlSignalObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlSignalObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlSignalObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlSignalObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlSignalObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlSignalObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlSignalObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlSignalObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlSignalObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlSignalObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlSignalObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlSignalObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlSignalObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlSignalObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlSignalObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlSignalObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlSignalObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlSignalObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlSignalObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlSignalObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlSignalObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Signal]
+
+void QUmlSignalObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlSignalObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlSignal *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlsignalobject_p.h b/src/uml/qobjects/qumlsignalobject_p.h
new file mode 100644
index 00000000..313d920b
--- /dev/null
+++ b/src/uml/qobjects/qumlsignalobject_p.h
@@ -0,0 +1,311 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSIGNALOBJECT_H
+#define QUMLSIGNALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSignal;
+class Q_UML_EXPORT QUmlSignalObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [Signal]
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+
+public:
+ Q_INVOKABLE explicit QUmlSignalObject(QUmlSignal *qModelingObject);
+ virtual ~QUmlSignalObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [Signal]
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [Signal]
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSIGNALOBJECT_H
+
diff --git a/src/uml/qobjects/qumlslotobject.cpp b/src/uml/qobjects/qumlslotobject.cpp
new file mode 100644
index 00000000..d0e07a10
--- /dev/null
+++ b/src/uml/qobjects/qumlslotobject.cpp
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlslotobject_p.h"
+
+#include <QtUml/QUmlSlot>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInstanceSpecification>
+#include <QtUml/QUmlStructuralFeature>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSlotObject::QUmlSlotObject(QUmlSlot *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSlotObject::~QUmlSlotObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSlotObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSlot *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSlotObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSlot *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSlotObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSlot *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Slot]
+
+QObject *QUmlSlotObject::definingFeature() const
+{
+ return qmodelingobjectproperty_cast<QUmlSlot *>(this)->definingFeature()->asQObject();
+}
+
+QObject *QUmlSlotObject::owningInstance() const
+{
+ return qmodelingobjectproperty_cast<QUmlSlot *>(this)->owningInstance()->asQObject();
+}
+
+const QList<QObject *> QUmlSlotObject::value() const
+{
+ QList<QObject *> list;
+ foreach (QUmlValueSpecification *element, qmodelingobjectproperty_cast<QUmlSlot *>(this)->value())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSlotObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSlot *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSlotObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSlot *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSlotObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSlotObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSlotObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSlotObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSlotObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Slot]
+
+void QUmlSlotObject::setDefiningFeature(QObject *definingFeature)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->setDefiningFeature(qmodelingobjectproperty_cast<QUmlStructuralFeature *>(definingFeature));
+}
+
+void QUmlSlotObject::setOwningInstance(QObject *owningInstance)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->setOwningInstance(qmodelingobjectproperty_cast<QUmlInstanceSpecification *>(owningInstance));
+}
+
+void QUmlSlotObject::addValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->addValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(value));
+}
+
+void QUmlSlotObject::removeValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlSlot *>(this)->removeValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(value));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlslotobject_p.h b/src/uml/qobjects/qumlslotobject_p.h
new file mode 100644
index 00000000..761e0838
--- /dev/null
+++ b/src/uml/qobjects/qumlslotobject_p.h
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSLOTOBJECT_H
+#define QUMLSLOTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSlot;
+class Q_UML_EXPORT QUmlSlotObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Slot]
+ Q_PROPERTY(QObject * definingFeature READ definingFeature)
+ Q_PROPERTY(QObject * owningInstance READ owningInstance)
+ Q_PROPERTY(QList<QObject *> value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlSlotObject(QUmlSlot *qModelingObject);
+ virtual ~QUmlSlotObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Slot]
+ Q_INVOKABLE QObject *definingFeature() const;
+ Q_INVOKABLE QObject *owningInstance() const;
+ Q_INVOKABLE const QList<QObject *> value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Slot]
+ void setDefiningFeature(QObject *definingFeature = 0);
+ void setOwningInstance(QObject *owningInstance = 0);
+ void addValue(QObject *value);
+ void removeValue(QObject *value);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSLOTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstartclassifierbehavioractionobject.cpp b/src/uml/qobjects/qumlstartclassifierbehavioractionobject.cpp
new file mode 100644
index 00000000..5a7925af
--- /dev/null
+++ b/src/uml/qobjects/qumlstartclassifierbehavioractionobject.cpp
@@ -0,0 +1,572 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstartclassifierbehavioractionobject_p.h"
+
+#include <QtUml/QUmlStartClassifierBehaviorAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStartClassifierBehaviorActionObject::QUmlStartClassifierBehaviorActionObject(QUmlStartClassifierBehaviorAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStartClassifierBehaviorActionObject::~QUmlStartClassifierBehaviorActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStartClassifierBehaviorActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStartClassifierBehaviorActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->name();
+}
+
+QObject *QUmlStartClassifierBehaviorActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStartClassifierBehaviorActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStartClassifierBehaviorActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlStartClassifierBehaviorActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlStartClassifierBehaviorActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlStartClassifierBehaviorActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStartClassifierBehaviorActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlStartClassifierBehaviorActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlStartClassifierBehaviorActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlStartClassifierBehaviorActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartClassifierBehaviorActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlStartClassifierBehaviorActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [StartClassifierBehaviorAction]
+
+QObject *QUmlStartClassifierBehaviorActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->object()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStartClassifierBehaviorActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStartClassifierBehaviorActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStartClassifierBehaviorActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStartClassifierBehaviorActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStartClassifierBehaviorActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStartClassifierBehaviorActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlStartClassifierBehaviorActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlStartClassifierBehaviorActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStartClassifierBehaviorActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStartClassifierBehaviorActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStartClassifierBehaviorActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStartClassifierBehaviorActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setName(name);
+}
+
+void QUmlStartClassifierBehaviorActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStartClassifierBehaviorActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStartClassifierBehaviorActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlStartClassifierBehaviorActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlStartClassifierBehaviorActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlStartClassifierBehaviorActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlStartClassifierBehaviorActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlStartClassifierBehaviorActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlStartClassifierBehaviorActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlStartClassifierBehaviorActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlStartClassifierBehaviorActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlStartClassifierBehaviorActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlStartClassifierBehaviorActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlStartClassifierBehaviorActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StartClassifierBehaviorAction]
+
+void QUmlStartClassifierBehaviorActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlStartClassifierBehaviorAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstartclassifierbehavioractionobject_p.h b/src/uml/qobjects/qumlstartclassifierbehavioractionobject_p.h
new file mode 100644
index 00000000..bb43dd16
--- /dev/null
+++ b/src/uml/qobjects/qumlstartclassifierbehavioractionobject_p.h
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTARTCLASSIFIERBEHAVIORACTIONOBJECT_H
+#define QUMLSTARTCLASSIFIERBEHAVIORACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStartClassifierBehaviorAction;
+class Q_UML_EXPORT QUmlStartClassifierBehaviorActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [StartClassifierBehaviorAction]
+ Q_PROPERTY(QObject * object READ object)
+
+public:
+ Q_INVOKABLE explicit QUmlStartClassifierBehaviorActionObject(QUmlStartClassifierBehaviorAction *qModelingObject);
+ virtual ~QUmlStartClassifierBehaviorActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [StartClassifierBehaviorAction]
+ Q_INVOKABLE QObject *object() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [StartClassifierBehaviorAction]
+ void setObject(QObject *object = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTARTCLASSIFIERBEHAVIORACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstartobjectbehavioractionobject.cpp b/src/uml/qobjects/qumlstartobjectbehavioractionobject.cpp
new file mode 100644
index 00000000..1f42e7c6
--- /dev/null
+++ b/src/uml/qobjects/qumlstartobjectbehavioractionobject.cpp
@@ -0,0 +1,637 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstartobjectbehavioractionobject_p.h"
+
+#include <QtUml/QUmlStartObjectBehaviorAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStartObjectBehaviorActionObject::QUmlStartObjectBehaviorActionObject(QUmlStartObjectBehaviorAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStartObjectBehaviorActionObject::~QUmlStartObjectBehaviorActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStartObjectBehaviorActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStartObjectBehaviorActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->name();
+}
+
+QObject *QUmlStartObjectBehaviorActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStartObjectBehaviorActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStartObjectBehaviorActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlStartObjectBehaviorActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlStartObjectBehaviorActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlStartObjectBehaviorActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStartObjectBehaviorActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlStartObjectBehaviorActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlStartObjectBehaviorActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlStartObjectBehaviorActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStartObjectBehaviorActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlStartObjectBehaviorActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [InvocationAction]
+
+const QList<QObject *> QUmlStartObjectBehaviorActionObject::argument() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->argument())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlStartObjectBehaviorActionObject::onPort() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->onPort()->asQObject();
+}
+
+// OWNED ATTRIBUTES [CallAction]
+
+bool QUmlStartObjectBehaviorActionObject::isSynchronous() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->isSynchronous();
+}
+
+const QList<QObject *> QUmlStartObjectBehaviorActionObject::result() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->result())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [StartObjectBehaviorAction]
+
+QObject *QUmlStartObjectBehaviorActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->object()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStartObjectBehaviorActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStartObjectBehaviorActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStartObjectBehaviorActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStartObjectBehaviorActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStartObjectBehaviorActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStartObjectBehaviorActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlStartObjectBehaviorActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlStartObjectBehaviorActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStartObjectBehaviorActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStartObjectBehaviorActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStartObjectBehaviorActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStartObjectBehaviorActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStartObjectBehaviorActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setName(name);
+}
+
+void QUmlStartObjectBehaviorActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStartObjectBehaviorActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStartObjectBehaviorActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlStartObjectBehaviorActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlStartObjectBehaviorActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlStartObjectBehaviorActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStartObjectBehaviorActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlStartObjectBehaviorActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlStartObjectBehaviorActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlStartObjectBehaviorActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlStartObjectBehaviorActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlStartObjectBehaviorActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlStartObjectBehaviorActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlStartObjectBehaviorActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlStartObjectBehaviorActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlStartObjectBehaviorActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlStartObjectBehaviorActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlStartObjectBehaviorActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlStartObjectBehaviorActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlStartObjectBehaviorActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlStartObjectBehaviorActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlStartObjectBehaviorActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
+
+void QUmlStartObjectBehaviorActionObject::addArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeArgument(QObject *argument)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeArgument(qmodelingobjectproperty_cast<QUmlInputPin *>(argument));
+}
+
+void QUmlStartObjectBehaviorActionObject::setOnPort(QObject *onPort)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setOnPort(qmodelingobjectproperty_cast<QUmlPort *>(onPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [CallAction]
+
+void QUmlStartObjectBehaviorActionObject::setSynchronous(bool isSynchronous)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setSynchronous(isSynchronous);
+}
+
+void QUmlStartObjectBehaviorActionObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlStartObjectBehaviorActionObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StartObjectBehaviorAction]
+
+void QUmlStartObjectBehaviorActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlStartObjectBehaviorAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstartobjectbehavioractionobject_p.h b/src/uml/qobjects/qumlstartobjectbehavioractionobject_p.h
new file mode 100644
index 00000000..ffb14c25
--- /dev/null
+++ b/src/uml/qobjects/qumlstartobjectbehavioractionobject_p.h
@@ -0,0 +1,255 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTARTOBJECTBEHAVIORACTIONOBJECT_H
+#define QUMLSTARTOBJECTBEHAVIORACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStartObjectBehaviorAction;
+class Q_UML_EXPORT QUmlStartObjectBehaviorActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [InvocationAction]
+ Q_PROPERTY(QList<QObject *> argument READ argument)
+ Q_PROPERTY(QObject * onPort READ onPort)
+
+ // Properties [CallAction]
+ Q_PROPERTY(bool isSynchronous READ isSynchronous)
+ Q_PROPERTY(QList<QObject *> result READ result)
+
+ // Properties [StartObjectBehaviorAction]
+ Q_PROPERTY(QObject * object READ object)
+
+public:
+ Q_INVOKABLE explicit QUmlStartObjectBehaviorActionObject(QUmlStartObjectBehaviorAction *qModelingObject);
+ virtual ~QUmlStartObjectBehaviorActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [InvocationAction]
+ Q_INVOKABLE const QList<QObject *> argument() const;
+ Q_INVOKABLE QObject *onPort() const;
+
+ // Owned attributes [CallAction]
+ Q_INVOKABLE bool isSynchronous() const;
+ Q_INVOKABLE const QList<QObject *> result() const;
+
+ // Owned attributes [StartObjectBehaviorAction]
+ Q_INVOKABLE QObject *object() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [InvocationAction]
+ void addArgument(QObject *argument);
+ void removeArgument(QObject *argument);
+ void setOnPort(QObject *onPort = 0);
+
+ // Slots for owned attributes [CallAction]
+ void setSynchronous(bool isSynchronous);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+
+ // Slots for owned attributes [StartObjectBehaviorAction]
+ void setObject(QObject *object = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTARTOBJECTBEHAVIORACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstateinvariantobject.cpp b/src/uml/qobjects/qumlstateinvariantobject.cpp
new file mode 100644
index 00000000..4a82d769
--- /dev/null
+++ b/src/uml/qobjects/qumlstateinvariantobject.cpp
@@ -0,0 +1,304 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstateinvariantobject_p.h"
+
+#include <QtUml/QUmlStateInvariant>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlGeneralOrdering>
+#include <QtUml/QUmlInteraction>
+#include <QtUml/QUmlInteractionOperand>
+#include <QtUml/QUmlLifeline>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStateInvariantObject::QUmlStateInvariantObject(QUmlStateInvariant *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStateInvariantObject::~QUmlStateInvariantObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStateInvariantObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateInvariantObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateInvariantObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStateInvariantObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStateInvariantObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->name();
+}
+
+QObject *QUmlStateInvariantObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStateInvariantObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStateInvariantObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlStateInvariantObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [InteractionFragment]
+
+QObject *QUmlStateInvariantObject::enclosingInteraction() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->enclosingInteraction()->asQObject();
+}
+
+QObject *QUmlStateInvariantObject::enclosingOperand() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->enclosingOperand()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateInvariantObject::generalOrdering() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralOrdering *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->generalOrdering())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StateInvariant]
+
+QObject *QUmlStateInvariantObject::covered() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->covered()->asQObject();
+}
+
+QObject *QUmlStateInvariantObject::invariant() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->invariant()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStateInvariantObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateInvariantObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStateInvariantObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStateInvariantObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateInvariantObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStateInvariantObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStateInvariantObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStateInvariantObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStateInvariantObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStateInvariantObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStateInvariantObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStateInvariantObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStateInvariantObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStateInvariantObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setName(name);
+}
+
+void QUmlStateInvariantObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStateInvariantObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStateInvariantObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlStateInvariantObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
+
+void QUmlStateInvariantObject::setEnclosingInteraction(QObject *enclosingInteraction)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setEnclosingInteraction(qmodelingobjectproperty_cast<QUmlInteraction *>(enclosingInteraction));
+}
+
+void QUmlStateInvariantObject::setEnclosingOperand(QObject *enclosingOperand)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setEnclosingOperand(qmodelingobjectproperty_cast<QUmlInteractionOperand *>(enclosingOperand));
+}
+
+void QUmlStateInvariantObject::addGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->addGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+void QUmlStateInvariantObject::removeGeneralOrdering(QObject *generalOrdering)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->removeGeneralOrdering(qmodelingobjectproperty_cast<QUmlGeneralOrdering *>(generalOrdering));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StateInvariant]
+
+void QUmlStateInvariantObject::setCovered(QObject *covered)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setCovered(qmodelingobjectproperty_cast<QUmlLifeline *>(covered));
+}
+
+void QUmlStateInvariantObject::setInvariant(QObject *invariant)
+{
+ qmodelingobjectproperty_cast<QUmlStateInvariant *>(this)->setInvariant(qmodelingobjectproperty_cast<QUmlConstraint *>(invariant));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstateinvariantobject_p.h b/src/uml/qobjects/qumlstateinvariantobject_p.h
new file mode 100644
index 00000000..ad7264b0
--- /dev/null
+++ b/src/uml/qobjects/qumlstateinvariantobject_p.h
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTATEINVARIANTOBJECT_H
+#define QUMLSTATEINVARIANTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStateInvariant;
+class Q_UML_EXPORT QUmlStateInvariantObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [InteractionFragment]
+ Q_PROPERTY(QObject * enclosingInteraction READ enclosingInteraction)
+ Q_PROPERTY(QObject * enclosingOperand READ enclosingOperand)
+ Q_PROPERTY(QSet<QObject *> generalOrdering READ generalOrdering)
+
+ // Properties [StateInvariant]
+ Q_PROPERTY(QObject * covered READ covered)
+ Q_PROPERTY(QObject * invariant READ invariant)
+
+public:
+ Q_INVOKABLE explicit QUmlStateInvariantObject(QUmlStateInvariant *qModelingObject);
+ virtual ~QUmlStateInvariantObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [InteractionFragment]
+ Q_INVOKABLE QObject *enclosingInteraction() const;
+ Q_INVOKABLE QObject *enclosingOperand() const;
+ Q_INVOKABLE const QSet<QObject *> generalOrdering() const;
+
+ // Owned attributes [StateInvariant]
+ Q_INVOKABLE QObject *covered() const;
+ Q_INVOKABLE QObject *invariant() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [InteractionFragment]
+ void setEnclosingInteraction(QObject *enclosingInteraction = 0);
+ void setEnclosingOperand(QObject *enclosingOperand = 0);
+ void addGeneralOrdering(QObject *generalOrdering);
+ void removeGeneralOrdering(QObject *generalOrdering);
+
+ // Slots for owned attributes [StateInvariant]
+ void setCovered(QObject *covered = 0);
+ void setInvariant(QObject *invariant = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTATEINVARIANTOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstatemachineobject.cpp b/src/uml/qobjects/qumlstatemachineobject.cpp
new file mode 100644
index 00000000..3331260f
--- /dev/null
+++ b/src/uml/qobjects/qumlstatemachineobject.cpp
@@ -0,0 +1,1296 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstatemachineobject_p.h"
+
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlBehavioredClassifier>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameter>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlParameterSet>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlPseudostate>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStateMachineObject::QUmlStateMachineObject(QUmlStateMachine *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStateMachineObject::~QUmlStateMachineObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStateMachineObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateMachineObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStateMachineObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStateMachineObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->name();
+}
+
+QObject *QUmlStateMachineObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStateMachineObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStateMachineObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlStateMachineObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlStateMachineObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlStateMachineObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlStateMachineObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlStateMachineObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlStateMachineObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlStateMachineObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlStateMachineObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlStateMachineObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateMachineObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateMachineObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateMachineObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateMachineObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlStateMachineObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlStateMachineObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlStateMachineObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateMachineObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlStateMachineObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isAbstract();
+}
+
+bool QUmlStateMachineObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlStateMachineObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlStateMachineObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlStateMachineObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Behavior]
+
+QObject *QUmlStateMachineObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->context()->asQObject();
+}
+
+bool QUmlStateMachineObject::isReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isReentrant();
+}
+
+const QList<QObject *> QUmlStateMachineObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlParameter *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::ownedParameterSet() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterSet *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ownedParameterSet())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::postcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->postcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::precondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->precondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateMachineObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->specification()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StateMachine]
+
+const QSet<QObject *> QUmlStateMachineObject::connectionPoint() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPseudostate *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->connectionPoint())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::extendedStateMachine() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStateMachine *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->extendedStateMachine())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::region() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRegion *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->region())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateMachineObject::submachineState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->submachineState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStateMachineObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStateMachineObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStateMachineObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStateMachineObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlStateMachineObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlStateMachineObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlStateMachineObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlStateMachineObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlStateMachineObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlStateMachineObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlStateMachineObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStateMachineObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlStateMachineObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlStateMachineObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateMachineObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isTemplate();
+}
+
+bool QUmlStateMachineObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlStateMachineObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlStateMachineObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [StateMachine]
+
+QObject *QUmlStateMachineObject::LCA(QObject *s1, QObject *s2) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->LCA(qmodelingobjectproperty_cast<QUmlState *>(s1), qmodelingobjectproperty_cast<QUmlState *>(s2))->asQObject();
+}
+
+bool QUmlStateMachineObject::ancestor(QObject *s1, QObject *s2) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->ancestor(qmodelingobjectproperty_cast<QUmlState *>(s1), qmodelingobjectproperty_cast<QUmlState *>(s2));
+}
+
+bool QUmlStateMachineObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlStateMachineObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlStateMachine *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStateMachineObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStateMachineObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStateMachineObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStateMachineObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStateMachineObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStateMachineObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStateMachineObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStateMachineObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setName(name);
+}
+
+void QUmlStateMachineObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStateMachineObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStateMachineObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlStateMachineObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStateMachineObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStateMachineObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStateMachineObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStateMachineObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStateMachineObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStateMachineObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStateMachineObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStateMachineObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStateMachineObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStateMachineObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlStateMachineObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlStateMachineObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlStateMachineObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlStateMachineObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlStateMachineObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlStateMachineObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStateMachineObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStateMachineObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlStateMachineObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlStateMachineObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlStateMachineObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlStateMachineObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlStateMachineObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlStateMachineObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlStateMachineObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlStateMachineObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlStateMachineObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlStateMachineObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlStateMachineObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlStateMachineObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlStateMachineObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlStateMachineObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlStateMachineObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlStateMachineObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlStateMachineObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlStateMachineObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlStateMachineObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlStateMachineObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlStateMachineObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlStateMachineObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlStateMachineObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlStateMachineObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlStateMachineObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlStateMachineObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlStateMachineObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlStateMachineObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlStateMachineObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlStateMachineObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlStateMachineObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlStateMachineObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlStateMachineObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlStateMachineObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlStateMachineObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlStateMachineObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlStateMachineObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlStateMachineObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlStateMachineObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlStateMachineObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlStateMachineObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlStateMachineObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlStateMachineObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlStateMachineObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setActive(isActive);
+}
+
+void QUmlStateMachineObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlStateMachineObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlStateMachineObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlStateMachineObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlStateMachineObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlStateMachineObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlStateMachineObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlStateMachineObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlStateMachineObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlStateMachineObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Behavior]
+
+void QUmlStateMachineObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setContext(qmodelingobjectproperty_cast<QUmlBehavioredClassifier *>(context));
+}
+
+void QUmlStateMachineObject::setReentrant(bool isReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setReentrant(isReentrant);
+}
+
+void QUmlStateMachineObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlStateMachineObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlParameter *>(ownedParameter));
+}
+
+void QUmlStateMachineObject::addOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlStateMachineObject::removeOwnedParameterSet(QObject *ownedParameterSet)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeOwnedParameterSet(qmodelingobjectproperty_cast<QUmlParameterSet *>(ownedParameterSet));
+}
+
+void QUmlStateMachineObject::addPostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlStateMachineObject::removePostcondition(QObject *postcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removePostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(postcondition));
+}
+
+void QUmlStateMachineObject::addPrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlStateMachineObject::removePrecondition(QObject *precondition)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removePrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(precondition));
+}
+
+void QUmlStateMachineObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlBehavioralFeature *>(specification));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StateMachine]
+
+void QUmlStateMachineObject::addConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlStateMachineObject::removeConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlStateMachineObject::addExtendedStateMachine(QObject *extendedStateMachine)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addExtendedStateMachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(extendedStateMachine));
+}
+
+void QUmlStateMachineObject::removeExtendedStateMachine(QObject *extendedStateMachine)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeExtendedStateMachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(extendedStateMachine));
+}
+
+void QUmlStateMachineObject::addRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlStateMachineObject::removeRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlStateMachineObject::addSubmachineState(QObject *submachineState)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->addSubmachineState(qmodelingobjectproperty_cast<QUmlState *>(submachineState));
+}
+
+void QUmlStateMachineObject::removeSubmachineState(QObject *submachineState)
+{
+ qmodelingobjectproperty_cast<QUmlStateMachine *>(this)->removeSubmachineState(qmodelingobjectproperty_cast<QUmlState *>(submachineState));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstatemachineobject_p.h b/src/uml/qobjects/qumlstatemachineobject_p.h
new file mode 100644
index 00000000..79249ca3
--- /dev/null
+++ b/src/uml/qobjects/qumlstatemachineobject_p.h
@@ -0,0 +1,434 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTATEMACHINEOBJECT_H
+#define QUMLSTATEMACHINEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStateMachine;
+class Q_UML_EXPORT QUmlStateMachineObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Behavior]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(bool isReentrant READ isReentrant)
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QSet<QObject *> ownedParameterSet READ ownedParameterSet)
+ Q_PROPERTY(QSet<QObject *> postcondition READ postcondition)
+ Q_PROPERTY(QSet<QObject *> precondition READ precondition)
+ Q_PROPERTY(QObject * specification READ specification)
+
+ // Properties [StateMachine]
+ Q_PROPERTY(QSet<QObject *> connectionPoint READ connectionPoint)
+ Q_PROPERTY(QSet<QObject *> extendedStateMachine READ extendedStateMachine)
+ Q_PROPERTY(QSet<QObject *> region READ region)
+ Q_PROPERTY(QSet<QObject *> submachineState READ submachineState)
+
+public:
+ Q_INVOKABLE explicit QUmlStateMachineObject(QUmlStateMachine *qModelingObject);
+ virtual ~QUmlStateMachineObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Behavior]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE bool isReentrant() const;
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QSet<QObject *> ownedParameterSet() const;
+ Q_INVOKABLE const QSet<QObject *> postcondition() const;
+ Q_INVOKABLE const QSet<QObject *> precondition() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Owned attributes [StateMachine]
+ Q_INVOKABLE const QSet<QObject *> connectionPoint() const;
+ Q_INVOKABLE const QSet<QObject *> extendedStateMachine() const;
+ Q_INVOKABLE const QSet<QObject *> region() const;
+ Q_INVOKABLE const QSet<QObject *> submachineState() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+ // Operations [StateMachine]
+ Q_INVOKABLE QObject *LCA(QObject *s1, QObject *s2) const;
+ Q_INVOKABLE bool ancestor(QObject *s1, QObject *s2) const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Behavior]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void setReentrant(bool isReentrant);
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addOwnedParameterSet(QObject *ownedParameterSet);
+ void removeOwnedParameterSet(QObject *ownedParameterSet);
+ void addPostcondition(QObject *postcondition);
+ void removePostcondition(QObject *postcondition);
+ void addPrecondition(QObject *precondition);
+ void removePrecondition(QObject *precondition);
+ void setSpecification(QObject *specification = 0);
+
+ // Slots for owned attributes [StateMachine]
+ void addConnectionPoint(QObject *connectionPoint);
+ void removeConnectionPoint(QObject *connectionPoint);
+ void addExtendedStateMachine(QObject *extendedStateMachine);
+ void removeExtendedStateMachine(QObject *extendedStateMachine);
+ void addRegion(QObject *region);
+ void removeRegion(QObject *region);
+ void addSubmachineState(QObject *submachineState);
+ void removeSubmachineState(QObject *submachineState);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTATEMACHINEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstateobject.cpp b/src/uml/qobjects/qumlstateobject.cpp
new file mode 100644
index 00000000..344de112
--- /dev/null
+++ b/src/uml/qobjects/qumlstateobject.cpp
@@ -0,0 +1,677 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstateobject_p.h"
+
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectionPointReference>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlPseudostate>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTransition>
+#include <QtUml/QUmlTrigger>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStateObject::QUmlStateObject(QUmlState *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStateObject::~QUmlStateObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlState *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStateObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlState *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStateObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlState *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStateObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->name();
+}
+
+QObject *QUmlStateObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStateObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStateObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlStateObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlStateObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlState *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlState *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlState *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlStateObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlStateObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [Vertex]
+
+QObject *QUmlStateObject::container() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->container()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlState *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTransition *element, qmodelingobjectproperty_cast<QUmlState *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [State]
+
+const QSet<QObject *> QUmlStateObject::connection() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectionPointReference *element, qmodelingobjectproperty_cast<QUmlState *>(this)->connection())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::connectionPoint() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPseudostate *element, qmodelingobjectproperty_cast<QUmlState *>(this)->connectionPoint())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStateObject::deferrableTrigger() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTrigger *element, qmodelingobjectproperty_cast<QUmlState *>(this)->deferrableTrigger())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateObject::doActivity() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->doActivity()->asQObject();
+}
+
+QObject *QUmlStateObject::entry() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->entry()->asQObject();
+}
+
+QObject *QUmlStateObject::exit() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->exit()->asQObject();
+}
+
+bool QUmlStateObject::isComposite() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isComposite();
+}
+
+bool QUmlStateObject::isOrthogonal() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isOrthogonal();
+}
+
+bool QUmlStateObject::isSimple() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isSimple();
+}
+
+bool QUmlStateObject::isSubmachineState() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isSubmachineState();
+}
+
+QObject *QUmlStateObject::redefinedState() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->redefinedState()->asQObject();
+}
+
+QObject *QUmlStateObject::redefinitionContext() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->redefinitionContext()->asQObject();
+}
+
+const QSet<QObject *> QUmlStateObject::region() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRegion *element, qmodelingobjectproperty_cast<QUmlState *>(this)->region())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStateObject::stateInvariant() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->stateInvariant()->asQObject();
+}
+
+QObject *QUmlStateObject::submachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->submachine()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStateObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStateObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlState *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStateObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlState *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStateObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlStateObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlStateObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlStateObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlState *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStateObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [RedefinableElement]
+// OPERATIONS [Vertex]
+// OPERATIONS [State]
+
+QObject *QUmlStateObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->containingStateMachine()->asQObject();
+}
+
+bool QUmlStateObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlStateObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlState *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlState *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStateObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStateObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStateObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStateObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStateObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStateObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStateObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStateObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setName(name);
+}
+
+void QUmlStateObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStateObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStateObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlStateObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlStateObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStateObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStateObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStateObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStateObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStateObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStateObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStateObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStateObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStateObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStateObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlStateObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlStateObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlStateObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStateObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Vertex]
+
+void QUmlStateObject::setContainer(QObject *container)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setContainer(qmodelingobjectproperty_cast<QUmlRegion *>(container));
+}
+
+void QUmlStateObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlStateObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlTransition *>(incoming));
+}
+
+void QUmlStateObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+void QUmlStateObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlTransition *>(outgoing));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [State]
+
+void QUmlStateObject::addConnection(QObject *connection)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addConnection(qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(connection));
+}
+
+void QUmlStateObject::removeConnection(QObject *connection)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeConnection(qmodelingobjectproperty_cast<QUmlConnectionPointReference *>(connection));
+}
+
+void QUmlStateObject::addConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlStateObject::removeConnectionPoint(QObject *connectionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeConnectionPoint(qmodelingobjectproperty_cast<QUmlPseudostate *>(connectionPoint));
+}
+
+void QUmlStateObject::addDeferrableTrigger(QObject *deferrableTrigger)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addDeferrableTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(deferrableTrigger));
+}
+
+void QUmlStateObject::removeDeferrableTrigger(QObject *deferrableTrigger)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeDeferrableTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(deferrableTrigger));
+}
+
+void QUmlStateObject::setDoActivity(QObject *doActivity)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setDoActivity(qmodelingobjectproperty_cast<QUmlBehavior *>(doActivity));
+}
+
+void QUmlStateObject::setEntry(QObject *entry)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setEntry(qmodelingobjectproperty_cast<QUmlBehavior *>(entry));
+}
+
+void QUmlStateObject::setExit(QObject *exit)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setExit(qmodelingobjectproperty_cast<QUmlBehavior *>(exit));
+}
+
+void QUmlStateObject::setComposite(bool isComposite)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setComposite(isComposite);
+}
+
+void QUmlStateObject::setOrthogonal(bool isOrthogonal)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setOrthogonal(isOrthogonal);
+}
+
+void QUmlStateObject::setSimple(bool isSimple)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setSimple(isSimple);
+}
+
+void QUmlStateObject::setSubmachineState(bool isSubmachineState)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setSubmachineState(isSubmachineState);
+}
+
+void QUmlStateObject::setRedefinedState(QObject *redefinedState)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setRedefinedState(qmodelingobjectproperty_cast<QUmlState *>(redefinedState));
+}
+
+void QUmlStateObject::setRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlStateObject::addRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->addRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlStateObject::removeRegion(QObject *region)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->removeRegion(qmodelingobjectproperty_cast<QUmlRegion *>(region));
+}
+
+void QUmlStateObject::setStateInvariant(QObject *stateInvariant)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setStateInvariant(qmodelingobjectproperty_cast<QUmlConstraint *>(stateInvariant));
+}
+
+void QUmlStateObject::setSubmachine(QObject *submachine)
+{
+ qmodelingobjectproperty_cast<QUmlState *>(this)->setSubmachine(qmodelingobjectproperty_cast<QUmlStateMachine *>(submachine));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstateobject_p.h b/src/uml/qobjects/qumlstateobject_p.h
new file mode 100644
index 00000000..40375cd4
--- /dev/null
+++ b/src/uml/qobjects/qumlstateobject_p.h
@@ -0,0 +1,255 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTATEOBJECT_H
+#define QUMLSTATEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlState;
+class Q_UML_EXPORT QUmlStateObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+
+ // Properties [Vertex]
+ Q_PROPERTY(QObject * container READ container)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+
+ // Properties [State]
+ Q_PROPERTY(QSet<QObject *> connection READ connection)
+ Q_PROPERTY(QSet<QObject *> connectionPoint READ connectionPoint)
+ Q_PROPERTY(QSet<QObject *> deferrableTrigger READ deferrableTrigger)
+ Q_PROPERTY(QObject * doActivity READ doActivity)
+ Q_PROPERTY(QObject * entry READ entry)
+ Q_PROPERTY(QObject * exit READ exit)
+ Q_PROPERTY(bool isComposite READ isComposite)
+ Q_PROPERTY(bool isOrthogonal READ isOrthogonal)
+ Q_PROPERTY(bool isSimple READ isSimple)
+ Q_PROPERTY(bool isSubmachineState READ isSubmachineState)
+ Q_PROPERTY(QObject * redefinedState READ redefinedState)
+ Q_PROPERTY(QObject * redefinitionContext READ redefinitionContext)
+ Q_PROPERTY(QSet<QObject *> region READ region)
+ Q_PROPERTY(QObject * stateInvariant READ stateInvariant)
+ Q_PROPERTY(QObject * submachine READ submachine)
+
+public:
+ Q_INVOKABLE explicit QUmlStateObject(QUmlState *qModelingObject);
+ virtual ~QUmlStateObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+
+ // Owned attributes [Vertex]
+ Q_INVOKABLE QObject *container() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+
+ // Owned attributes [State]
+ Q_INVOKABLE const QSet<QObject *> connection() const;
+ Q_INVOKABLE const QSet<QObject *> connectionPoint() const;
+ Q_INVOKABLE const QSet<QObject *> deferrableTrigger() const;
+ Q_INVOKABLE QObject *doActivity() const;
+ Q_INVOKABLE QObject *entry() const;
+ Q_INVOKABLE QObject *exit() const;
+ Q_INVOKABLE bool isComposite() const;
+ Q_INVOKABLE bool isOrthogonal() const;
+ Q_INVOKABLE bool isSimple() const;
+ Q_INVOKABLE bool isSubmachineState() const;
+ Q_INVOKABLE QObject *redefinedState() const;
+ Q_INVOKABLE QObject *redefinitionContext() const;
+ Q_INVOKABLE const QSet<QObject *> region() const;
+ Q_INVOKABLE QObject *stateInvariant() const;
+ Q_INVOKABLE QObject *submachine() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [RedefinableElement]
+
+ // Operations [Vertex]
+
+ // Operations [State]
+ Q_INVOKABLE QObject *containingStateMachine() const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+
+ // Slots for owned attributes [Vertex]
+ void setContainer(QObject *container = 0);
+ void Q_DECL_HIDDEN addIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN removeIncoming(QObject *incoming);
+ void Q_DECL_HIDDEN addOutgoing(QObject *outgoing);
+ void Q_DECL_HIDDEN removeOutgoing(QObject *outgoing);
+
+ // Slots for owned attributes [State]
+ void addConnection(QObject *connection);
+ void removeConnection(QObject *connection);
+ void addConnectionPoint(QObject *connectionPoint);
+ void removeConnectionPoint(QObject *connectionPoint);
+ void addDeferrableTrigger(QObject *deferrableTrigger);
+ void removeDeferrableTrigger(QObject *deferrableTrigger);
+ void setDoActivity(QObject *doActivity = 0);
+ void setEntry(QObject *entry = 0);
+ void setExit(QObject *exit = 0);
+ void Q_DECL_HIDDEN setComposite(bool isComposite);
+ void Q_DECL_HIDDEN setOrthogonal(bool isOrthogonal);
+ void Q_DECL_HIDDEN setSimple(bool isSimple);
+ void Q_DECL_HIDDEN setSubmachineState(bool isSubmachineState);
+ void setRedefinedState(QObject *redefinedState = 0);
+ void Q_DECL_HIDDEN setRedefinitionContext(QObject *redefinitionContext = 0);
+ void addRegion(QObject *region);
+ void removeRegion(QObject *region);
+ void setStateInvariant(QObject *stateInvariant = 0);
+ void setSubmachine(QObject *submachine = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTATEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstereotypeobject.cpp b/src/uml/qobjects/qumlstereotypeobject.cpp
new file mode 100644
index 00000000..bab4015c
--- /dev/null
+++ b/src/uml/qobjects/qumlstereotypeobject.cpp
@@ -0,0 +1,1137 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstereotypeobject_p.h"
+
+#include <QtUml/QUmlStereotype>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlConnector>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtension>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlImage>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOperation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlProfile>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlReception>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlUseCase>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStereotypeObject::QUmlStereotypeObject(QUmlStereotype *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStereotypeObject::~QUmlStereotypeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStereotypeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStereotypeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStereotypeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStereotypeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->name();
+}
+
+QObject *QUmlStereotypeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStereotypeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStereotypeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlStereotypeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlStereotypeObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlStereotypeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlStereotypeObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlStereotypeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlStereotypeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlStereotypeObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlStereotypeObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlStereotypeObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlStereotypeObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStereotypeObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlStereotypeObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStereotypeObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlStereotypeObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StructuredClassifier]
+
+const QSet<QObject *> QUmlStereotypeObject::ownedConnector() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnector *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedConnector())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::part() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->part())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::role() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConnectableElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->role())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+const QSet<QObject *> QUmlStereotypeObject::ownedPort() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedPort())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlStereotypeObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlStereotypeObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Class]
+
+const QSet<QObject *> QUmlStereotypeObject::extension() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtension *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->extension())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isAbstract();
+}
+
+bool QUmlStereotypeObject::isActive() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isActive();
+}
+
+const QList<QObject *> QUmlStereotypeObject::nestedClassifier() const
+{
+ QList<QObject *> list;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->nestedClassifier())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlStereotypeObject::ownedAttribute() const
+{
+ QList<QObject *> list;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedAttribute())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlStereotypeObject::ownedOperation() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOperation *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedOperation())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::ownedReception() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlReception *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->ownedReception())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStereotypeObject::superClass() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClass *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->superClass())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Stereotype]
+
+const QSet<QObject *> QUmlStereotypeObject::icon() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlImage *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->icon())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStereotypeObject::profile() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->profile()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStereotypeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStereotypeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStereotypeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStereotypeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlStereotypeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlStereotypeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlStereotypeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlStereotypeObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlStereotypeObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlStereotypeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlStereotypeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlStereotypeObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlStereotypeObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStereotypeObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlStereotypeObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlStereotypeObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStereotypeObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->isTemplate();
+}
+
+bool QUmlStereotypeObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlStereotypeObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Class]
+
+QSet<QObject *> QUmlStereotypeObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStereotype *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Stereotype]
+
+QObject *QUmlStereotypeObject::containingProfile() const
+{
+ return qmodelingobjectproperty_cast<QUmlStereotype *>(this)->containingProfile()->asQObject();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStereotypeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStereotypeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStereotypeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStereotypeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStereotypeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStereotypeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStereotypeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStereotypeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setName(name);
+}
+
+void QUmlStereotypeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStereotypeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStereotypeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlStereotypeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStereotypeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStereotypeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStereotypeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStereotypeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStereotypeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStereotypeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStereotypeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStereotypeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStereotypeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStereotypeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlStereotypeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlStereotypeObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlStereotypeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlStereotypeObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlStereotypeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlStereotypeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStereotypeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStereotypeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlStereotypeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlStereotypeObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlStereotypeObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlStereotypeObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlStereotypeObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlStereotypeObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlStereotypeObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlStereotypeObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlStereotypeObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlStereotypeObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlStereotypeObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlStereotypeObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlStereotypeObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlStereotypeObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlStereotypeObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlStereotypeObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlStereotypeObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlStereotypeObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlStereotypeObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlStereotypeObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlStereotypeObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlStereotypeObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlStereotypeObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlStereotypeObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlStereotypeObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlStereotypeObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlStereotypeObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
+
+void QUmlStereotypeObject::addOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlStereotypeObject::removeOwnedConnector(QObject *ownedConnector)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedConnector(qmodelingobjectproperty_cast<QUmlConnector *>(ownedConnector));
+}
+
+void QUmlStereotypeObject::addPart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addPart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlStereotypeObject::removePart(QObject *part)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removePart(qmodelingobjectproperty_cast<QUmlProperty *>(part));
+}
+
+void QUmlStereotypeObject::addRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+void QUmlStereotypeObject::removeRole(QObject *role)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeRole(qmodelingobjectproperty_cast<QUmlConnectableElement *>(role));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
+
+void QUmlStereotypeObject::addOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+void QUmlStereotypeObject::removeOwnedPort(QObject *ownedPort)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedPort(qmodelingobjectproperty_cast<QUmlPort *>(ownedPort));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlStereotypeObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlStereotypeObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlStereotypeObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlStereotypeObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlStereotypeObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Class]
+
+void QUmlStereotypeObject::addExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlStereotypeObject::removeExtension(QObject *extension)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeExtension(qmodelingobjectproperty_cast<QUmlExtension *>(extension));
+}
+
+void QUmlStereotypeObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlStereotypeObject::setActive(bool isActive)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setActive(isActive);
+}
+
+void QUmlStereotypeObject::addNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlStereotypeObject::removeNestedClassifier(QObject *nestedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeNestedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(nestedClassifier));
+}
+
+void QUmlStereotypeObject::addOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlStereotypeObject::removeOwnedAttribute(QObject *ownedAttribute)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(ownedAttribute));
+}
+
+void QUmlStereotypeObject::addOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlStereotypeObject::removeOwnedOperation(QObject *ownedOperation)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedOperation(qmodelingobjectproperty_cast<QUmlOperation *>(ownedOperation));
+}
+
+void QUmlStereotypeObject::addOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlStereotypeObject::removeOwnedReception(QObject *ownedReception)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeOwnedReception(qmodelingobjectproperty_cast<QUmlReception *>(ownedReception));
+}
+
+void QUmlStereotypeObject::addSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+void QUmlStereotypeObject::removeSuperClass(QObject *superClass)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeSuperClass(qmodelingobjectproperty_cast<QUmlClass *>(superClass));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Stereotype]
+
+void QUmlStereotypeObject::addIcon(QObject *icon)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->addIcon(qmodelingobjectproperty_cast<QUmlImage *>(icon));
+}
+
+void QUmlStereotypeObject::removeIcon(QObject *icon)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->removeIcon(qmodelingobjectproperty_cast<QUmlImage *>(icon));
+}
+
+void QUmlStereotypeObject::setProfile(QObject *profile)
+{
+ qmodelingobjectproperty_cast<QUmlStereotype *>(this)->setProfile(qmodelingobjectproperty_cast<QUmlProfile *>(profile));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstereotypeobject_p.h b/src/uml/qobjects/qumlstereotypeobject_p.h
new file mode 100644
index 00000000..08dad441
--- /dev/null
+++ b/src/uml/qobjects/qumlstereotypeobject_p.h
@@ -0,0 +1,393 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTEREOTYPEOBJECT_H
+#define QUMLSTEREOTYPEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStereotype;
+class Q_UML_EXPORT QUmlStereotypeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [StructuredClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedConnector READ ownedConnector)
+ Q_PROPERTY(QSet<QObject *> part READ part)
+ Q_PROPERTY(QSet<QObject *> role READ role)
+
+ // Properties [EncapsulatedClassifier]
+ Q_PROPERTY(QSet<QObject *> ownedPort READ ownedPort)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [Class]
+ Q_PROPERTY(QSet<QObject *> extension READ extension)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isActive READ isActive)
+ Q_PROPERTY(QList<QObject *> nestedClassifier READ nestedClassifier)
+ Q_PROPERTY(QList<QObject *> ownedAttribute READ ownedAttribute)
+ Q_PROPERTY(QList<QObject *> ownedOperation READ ownedOperation)
+ Q_PROPERTY(QSet<QObject *> ownedReception READ ownedReception)
+ Q_PROPERTY(QSet<QObject *> superClass READ superClass)
+
+ // Properties [Stereotype]
+ Q_PROPERTY(QSet<QObject *> icon READ icon)
+ Q_PROPERTY(QObject * profile READ profile)
+
+public:
+ Q_INVOKABLE explicit QUmlStereotypeObject(QUmlStereotype *qModelingObject);
+ virtual ~QUmlStereotypeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [StructuredClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedConnector() const;
+ Q_INVOKABLE const QSet<QObject *> part() const;
+ Q_INVOKABLE const QSet<QObject *> role() const;
+
+ // Owned attributes [EncapsulatedClassifier]
+ Q_INVOKABLE const QSet<QObject *> ownedPort() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [Class]
+ Q_INVOKABLE const QSet<QObject *> extension() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isActive() const;
+ Q_INVOKABLE const QList<QObject *> nestedClassifier() const;
+ Q_INVOKABLE const QList<QObject *> ownedAttribute() const;
+ Q_INVOKABLE const QList<QObject *> ownedOperation() const;
+ Q_INVOKABLE const QSet<QObject *> ownedReception() const;
+ Q_INVOKABLE const QSet<QObject *> superClass() const;
+
+ // Owned attributes [Stereotype]
+ Q_INVOKABLE const QSet<QObject *> icon() const;
+ Q_INVOKABLE QObject *profile() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [Class]
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+
+ // Operations [Stereotype]
+ Q_INVOKABLE QObject *containingProfile() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [StructuredClassifier]
+ void addOwnedConnector(QObject *ownedConnector);
+ void removeOwnedConnector(QObject *ownedConnector);
+ void Q_DECL_HIDDEN addPart(QObject *part);
+ void Q_DECL_HIDDEN removePart(QObject *part);
+ void Q_DECL_HIDDEN addRole(QObject *role);
+ void Q_DECL_HIDDEN removeRole(QObject *role);
+
+ // Slots for owned attributes [EncapsulatedClassifier]
+ void Q_DECL_HIDDEN addOwnedPort(QObject *ownedPort);
+ void Q_DECL_HIDDEN removeOwnedPort(QObject *ownedPort);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [Class]
+ void Q_DECL_HIDDEN addExtension(QObject *extension);
+ void Q_DECL_HIDDEN removeExtension(QObject *extension);
+ void setAbstract(bool isAbstract);
+ void setActive(bool isActive);
+ void addNestedClassifier(QObject *nestedClassifier);
+ void removeNestedClassifier(QObject *nestedClassifier);
+ void addOwnedAttribute(QObject *ownedAttribute);
+ void removeOwnedAttribute(QObject *ownedAttribute);
+ void addOwnedOperation(QObject *ownedOperation);
+ void removeOwnedOperation(QObject *ownedOperation);
+ void addOwnedReception(QObject *ownedReception);
+ void removeOwnedReception(QObject *ownedReception);
+ void addSuperClass(QObject *superClass);
+ void removeSuperClass(QObject *superClass);
+
+ // Slots for owned attributes [Stereotype]
+ void addIcon(QObject *icon);
+ void removeIcon(QObject *icon);
+ void Q_DECL_HIDDEN setProfile(QObject *profile = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTEREOTYPEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstringexpressionobject.cpp b/src/uml/qobjects/qumlstringexpressionobject.cpp
new file mode 100644
index 00000000..fc7687ec
--- /dev/null
+++ b/src/uml/qobjects/qumlstringexpressionobject.cpp
@@ -0,0 +1,440 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstringexpressionobject_p.h"
+
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStringExpressionObject::QUmlStringExpressionObject(QUmlStringExpression *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStringExpressionObject::~QUmlStringExpressionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStringExpressionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStringExpressionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStringExpressionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStringExpressionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStringExpressionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->name();
+}
+
+QObject *QUmlStringExpressionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStringExpressionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStringExpressionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlStringExpressionObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlStringExpressionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlStringExpressionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlStringExpressionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Expression]
+
+const QList<QObject *> QUmlStringExpressionObject::operand() const
+{
+ QList<QObject *> list;
+ foreach (QUmlValueSpecification *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->operand())
+ list.append(element->asQObject());
+ return list;
+}
+
+QString QUmlStringExpressionObject::symbol() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->symbol();
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+QObject *QUmlStringExpressionObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlStringExpressionObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [StringExpression]
+
+QObject *QUmlStringExpressionObject::owningExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->owningExpression()->asQObject();
+}
+
+const QSet<QObject *> QUmlStringExpressionObject::subExpression() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlStringExpression *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->subExpression())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStringExpressionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStringExpressionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStringExpressionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStringExpressionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStringExpressionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStringExpressionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlStringExpressionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlStringExpressionObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->booleanValue();
+}
+
+int QUmlStringExpressionObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->integerValue();
+}
+
+bool QUmlStringExpressionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlStringExpressionObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->isComputable();
+}
+
+bool QUmlStringExpressionObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->isNull();
+}
+
+double QUmlStringExpressionObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->realValue();
+}
+
+int QUmlStringExpressionObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->unlimitedValue();
+}
+
+// OPERATIONS [TemplateableElement]
+
+bool QUmlStringExpressionObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->isTemplate();
+}
+
+QSet<QObject *> QUmlStringExpressionObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [StringExpression]
+
+QString QUmlStringExpressionObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->stringValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStringExpressionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStringExpressionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStringExpressionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStringExpressionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStringExpressionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStringExpressionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStringExpressionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStringExpressionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setName(name);
+}
+
+void QUmlStringExpressionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStringExpressionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStringExpressionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlStringExpressionObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlStringExpressionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlStringExpressionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlStringExpressionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Expression]
+
+void QUmlStringExpressionObject::addOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->addOperand(qmodelingobjectproperty_cast<QUmlValueSpecification *>(operand));
+}
+
+void QUmlStringExpressionObject::removeOperand(QObject *operand)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->removeOperand(qmodelingobjectproperty_cast<QUmlValueSpecification *>(operand));
+}
+
+void QUmlStringExpressionObject::setSymbol(QString symbol)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setSymbol(symbol);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlStringExpressionObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlStringExpressionObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlStringExpressionObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StringExpression]
+
+void QUmlStringExpressionObject::setOwningExpression(QObject *owningExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->setOwningExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(owningExpression));
+}
+
+void QUmlStringExpressionObject::addSubExpression(QObject *subExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->addSubExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(subExpression));
+}
+
+void QUmlStringExpressionObject::removeSubExpression(QObject *subExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStringExpression *>(this)->removeSubExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(subExpression));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstringexpressionobject_p.h b/src/uml/qobjects/qumlstringexpressionobject_p.h
new file mode 100644
index 00000000..a123dee7
--- /dev/null
+++ b/src/uml/qobjects/qumlstringexpressionobject_p.h
@@ -0,0 +1,210 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTRINGEXPRESSIONOBJECT_H
+#define QUMLSTRINGEXPRESSIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStringExpression;
+class Q_UML_EXPORT QUmlStringExpressionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Expression]
+ Q_PROPERTY(QList<QObject *> operand READ operand)
+ Q_PROPERTY(QString symbol READ symbol)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [StringExpression]
+ Q_PROPERTY(QObject * owningExpression READ owningExpression)
+ Q_PROPERTY(QSet<QObject *> subExpression READ subExpression)
+
+public:
+ Q_INVOKABLE explicit QUmlStringExpressionObject(QUmlStringExpression *qModelingObject);
+ virtual ~QUmlStringExpressionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Expression]
+ Q_INVOKABLE const QList<QObject *> operand() const;
+ Q_INVOKABLE QString symbol() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [StringExpression]
+ Q_INVOKABLE QObject *owningExpression() const;
+ Q_INVOKABLE const QSet<QObject *> subExpression() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [StringExpression]
+ Q_INVOKABLE QString stringValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Expression]
+ void addOperand(QObject *operand);
+ void removeOperand(QObject *operand);
+ void setSymbol(QString symbol);
+
+ // Slots for owned attributes [TemplateableElement]
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [StringExpression]
+ void setOwningExpression(QObject *owningExpression = 0);
+ void addSubExpression(QObject *subExpression);
+ void removeSubExpression(QObject *subExpression);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTRINGEXPRESSIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlstructuredactivitynodeobject.cpp b/src/uml/qobjects/qumlstructuredactivitynodeobject.cpp
new file mode 100644
index 00000000..8773a778
--- /dev/null
+++ b/src/uml/qobjects/qumlstructuredactivitynodeobject.cpp
@@ -0,0 +1,879 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlstructuredactivitynodeobject_p.h"
+
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlVariable>
+
+QT_BEGIN_NAMESPACE
+
+QUmlStructuredActivityNodeObject::QUmlStructuredActivityNodeObject(QUmlStructuredActivityNode *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlStructuredActivityNodeObject::~QUmlStructuredActivityNodeObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStructuredActivityNodeObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlStructuredActivityNodeObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->name();
+}
+
+QObject *QUmlStructuredActivityNodeObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlStructuredActivityNodeObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlStructuredActivityNodeObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlStructuredActivityNodeObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlStructuredActivityNodeObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStructuredActivityNodeObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlStructuredActivityNodeObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlStructuredActivityNodeObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlStructuredActivityNodeObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlStructuredActivityNodeObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityGroup]
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::containedEdge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->containedEdge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::containedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->containedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::subgroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->subgroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlStructuredActivityNodeObject::superGroup() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->superGroup()->asQObject();
+}
+
+// OWNED ATTRIBUTES [StructuredActivityNode]
+
+QObject *QUmlStructuredActivityNodeObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::edge() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->edge())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStructuredActivityNodeObject::mustIsolate() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->mustIsolate();
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::node() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->node())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::structuredNodeInput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->structuredNodeInput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::structuredNodeOutput() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->structuredNodeOutput())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlStructuredActivityNodeObject::variable() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlVariable *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->variable())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlStructuredActivityNodeObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStructuredActivityNodeObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlStructuredActivityNodeObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlStructuredActivityNodeObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStructuredActivityNodeObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlStructuredActivityNodeObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlStructuredActivityNodeObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlStructuredActivityNodeObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlStructuredActivityNodeObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlStructuredActivityNodeObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlStructuredActivityNodeObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlStructuredActivityNodeObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->membersAreDistinguishable();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlStructuredActivityNodeObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStructuredActivityNodeObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlStructuredActivityNodeObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStructuredActivityNodeObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlStructuredActivityNodeObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlStructuredActivityNodeObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStructuredActivityNodeObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlStructuredActivityNodeObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setName(name);
+}
+
+void QUmlStructuredActivityNodeObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlStructuredActivityNodeObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlStructuredActivityNodeObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlStructuredActivityNodeObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlStructuredActivityNodeObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlStructuredActivityNodeObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStructuredActivityNodeObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlStructuredActivityNodeObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlStructuredActivityNodeObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlStructuredActivityNodeObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlStructuredActivityNodeObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlStructuredActivityNodeObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlStructuredActivityNodeObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlStructuredActivityNodeObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlStructuredActivityNodeObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlStructuredActivityNodeObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlStructuredActivityNodeObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlStructuredActivityNodeObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlStructuredActivityNodeObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlStructuredActivityNodeObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlStructuredActivityNodeObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlStructuredActivityNodeObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlStructuredActivityNodeObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlStructuredActivityNodeObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlStructuredActivityNodeObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlStructuredActivityNodeObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlStructuredActivityNodeObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlStructuredActivityNodeObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlStructuredActivityNodeObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlStructuredActivityNodeObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlStructuredActivityNodeObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlStructuredActivityNodeObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlStructuredActivityNodeObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlStructuredActivityNodeObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlStructuredActivityNodeObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStructuredActivityNodeObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlStructuredActivityNodeObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStructuredActivityNodeObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlStructuredActivityNodeObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStructuredActivityNodeObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlStructuredActivityNodeObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStructuredActivityNodeObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlStructuredActivityNodeObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStructuredActivityNodeObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlStructuredActivityNodeObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlStructuredActivityNodeObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+
+void QUmlStructuredActivityNodeObject::addContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlStructuredActivityNodeObject::removeContainedEdge(QObject *containedEdge)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeContainedEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(containedEdge));
+}
+
+void QUmlStructuredActivityNodeObject::addContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlStructuredActivityNodeObject::removeContainedNode(QObject *containedNode)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeContainedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(containedNode));
+}
+
+void QUmlStructuredActivityNodeObject::addSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlStructuredActivityNodeObject::removeSubgroup(QObject *subgroup)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeSubgroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(subgroup));
+}
+
+void QUmlStructuredActivityNodeObject::setSuperGroup(QObject *superGroup)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setSuperGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(superGroup));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
+
+void QUmlStructuredActivityNodeObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlStructuredActivityNodeObject::addEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlStructuredActivityNodeObject::removeEdge(QObject *edge)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeEdge(qmodelingobjectproperty_cast<QUmlActivityEdge *>(edge));
+}
+
+void QUmlStructuredActivityNodeObject::setMustIsolate(bool mustIsolate)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->setMustIsolate(mustIsolate);
+}
+
+void QUmlStructuredActivityNodeObject::addNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlStructuredActivityNodeObject::removeNode(QObject *node)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(node));
+}
+
+void QUmlStructuredActivityNodeObject::addStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlStructuredActivityNodeObject::removeStructuredNodeInput(QObject *structuredNodeInput)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeStructuredNodeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(structuredNodeInput));
+}
+
+void QUmlStructuredActivityNodeObject::addStructuredNodeOutput(QObject *structuredNodeOutput)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addStructuredNodeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(structuredNodeOutput));
+}
+
+void QUmlStructuredActivityNodeObject::removeStructuredNodeOutput(QObject *structuredNodeOutput)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeStructuredNodeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(structuredNodeOutput));
+}
+
+void QUmlStructuredActivityNodeObject::addVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->addVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+void QUmlStructuredActivityNodeObject::removeVariable(QObject *variable)
+{
+ qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(this)->removeVariable(qmodelingobjectproperty_cast<QUmlVariable *>(variable));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlstructuredactivitynodeobject_p.h b/src/uml/qobjects/qumlstructuredactivitynodeobject_p.h
new file mode 100644
index 00000000..35fdcb2a
--- /dev/null
+++ b/src/uml/qobjects/qumlstructuredactivitynodeobject_p.h
@@ -0,0 +1,306 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSTRUCTUREDACTIVITYNODEOBJECT_H
+#define QUMLSTRUCTUREDACTIVITYNODEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlStructuredActivityNode;
+class Q_UML_EXPORT QUmlStructuredActivityNodeObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ActivityGroup]
+ Q_PROPERTY(QSet<QObject *> containedEdge READ containedEdge)
+ Q_PROPERTY(QSet<QObject *> containedNode READ containedNode)
+ Q_PROPERTY(QSet<QObject *> subgroup READ subgroup)
+ Q_PROPERTY(QObject * superGroup READ superGroup)
+
+ // Properties [StructuredActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> edge READ edge)
+ Q_PROPERTY(bool mustIsolate READ mustIsolate)
+ Q_PROPERTY(QSet<QObject *> node READ node)
+ Q_PROPERTY(QSet<QObject *> structuredNodeInput READ structuredNodeInput)
+ Q_PROPERTY(QSet<QObject *> structuredNodeOutput READ structuredNodeOutput)
+ Q_PROPERTY(QSet<QObject *> variable READ variable)
+
+public:
+ Q_INVOKABLE explicit QUmlStructuredActivityNodeObject(QUmlStructuredActivityNode *qModelingObject);
+ virtual ~QUmlStructuredActivityNodeObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ActivityGroup]
+ Q_INVOKABLE const QSet<QObject *> containedEdge() const;
+ Q_INVOKABLE const QSet<QObject *> containedNode() const;
+ Q_INVOKABLE const QSet<QObject *> subgroup() const;
+ Q_INVOKABLE QObject *superGroup() const;
+
+ // Owned attributes [StructuredActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> edge() const;
+ Q_INVOKABLE bool mustIsolate() const;
+ Q_INVOKABLE const QSet<QObject *> node() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeInput() const;
+ Q_INVOKABLE const QSet<QObject *> structuredNodeOutput() const;
+ Q_INVOKABLE const QSet<QObject *> variable() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ActivityGroup]
+ void Q_DECL_HIDDEN addContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN removeContainedEdge(QObject *containedEdge);
+ void Q_DECL_HIDDEN addContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN removeContainedNode(QObject *containedNode);
+ void Q_DECL_HIDDEN addSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN removeSubgroup(QObject *subgroup);
+ void Q_DECL_HIDDEN setSuperGroup(QObject *superGroup = 0);
+
+ // Slots for owned attributes [StructuredActivityNode]
+ void setActivity(QObject *activity = 0);
+ void addEdge(QObject *edge);
+ void removeEdge(QObject *edge);
+ void setMustIsolate(bool mustIsolate);
+ void addNode(QObject *node);
+ void removeNode(QObject *node);
+ void addStructuredNodeInput(QObject *structuredNodeInput);
+ void removeStructuredNodeInput(QObject *structuredNodeInput);
+ void addStructuredNodeOutput(QObject *structuredNodeOutput);
+ void removeStructuredNodeOutput(QObject *structuredNodeOutput);
+ void addVariable(QObject *variable);
+ void removeVariable(QObject *variable);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSTRUCTUREDACTIVITYNODEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlsubstitutionobject.cpp b/src/uml/qobjects/qumlsubstitutionobject.cpp
new file mode 100644
index 00000000..257a4a78
--- /dev/null
+++ b/src/uml/qobjects/qumlsubstitutionobject.cpp
@@ -0,0 +1,415 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlsubstitutionobject_p.h"
+
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOpaqueExpression>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlSubstitutionObject::QUmlSubstitutionObject(QUmlSubstitution *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlSubstitutionObject::~QUmlSubstitutionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlSubstitutionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSubstitutionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlSubstitutionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlSubstitutionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlSubstitutionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlSubstitutionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlSubstitutionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->name();
+}
+
+QObject *QUmlSubstitutionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlSubstitutionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlSubstitutionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlSubstitutionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlSubstitutionObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlSubstitutionObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSubstitutionObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlSubstitutionObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlSubstitutionObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Abstraction]
+
+QObject *QUmlSubstitutionObject::mapping() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->mapping()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Substitution]
+
+QObject *QUmlSubstitutionObject::contract() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->contract()->asQObject();
+}
+
+QObject *QUmlSubstitutionObject::substitutingClassifier() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->substitutingClassifier()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlSubstitutionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSubstitutionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlSubstitutionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlSubstitutionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlSubstitutionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlSubstitutionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlSubstitutionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlSubstitutionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlSubstitutionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSubstitutionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlSubstitutionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSubstitutionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlSubstitutionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlSubstitutionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlSubstitutionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlSubstitutionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSubstitutionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlSubstitutionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setName(name);
+}
+
+void QUmlSubstitutionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlSubstitutionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlSubstitutionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlSubstitutionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlSubstitutionObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlSubstitutionObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlSubstitutionObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlSubstitutionObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlSubstitutionObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlSubstitutionObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlSubstitutionObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlSubstitutionObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlSubstitutionObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlSubstitutionObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+
+void QUmlSubstitutionObject::setMapping(QObject *mapping)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setMapping(qmodelingobjectproperty_cast<QUmlOpaqueExpression *>(mapping));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Substitution]
+
+void QUmlSubstitutionObject::setContract(QObject *contract)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setContract(qmodelingobjectproperty_cast<QUmlClassifier *>(contract));
+}
+
+void QUmlSubstitutionObject::setSubstitutingClassifier(QObject *substitutingClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlSubstitution *>(this)->setSubstitutingClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(substitutingClassifier));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlsubstitutionobject_p.h b/src/uml/qobjects/qumlsubstitutionobject_p.h
new file mode 100644
index 00000000..402ae606
--- /dev/null
+++ b/src/uml/qobjects/qumlsubstitutionobject_p.h
@@ -0,0 +1,206 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLSUBSTITUTIONOBJECT_H
+#define QUMLSUBSTITUTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlSubstitution;
+class Q_UML_EXPORT QUmlSubstitutionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+ // Properties [Abstraction]
+ Q_PROPERTY(QObject * mapping READ mapping)
+
+ // Properties [Substitution]
+ Q_PROPERTY(QObject * contract READ contract)
+ Q_PROPERTY(QObject * substitutingClassifier READ substitutingClassifier)
+
+public:
+ Q_INVOKABLE explicit QUmlSubstitutionObject(QUmlSubstitution *qModelingObject);
+ virtual ~QUmlSubstitutionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Owned attributes [Abstraction]
+ Q_INVOKABLE QObject *mapping() const;
+
+ // Owned attributes [Substitution]
+ Q_INVOKABLE QObject *contract() const;
+ Q_INVOKABLE QObject *substitutingClassifier() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+
+ // Slots for owned attributes [Abstraction]
+ void setMapping(QObject *mapping = 0);
+
+ // Slots for owned attributes [Substitution]
+ void setContract(QObject *contract = 0);
+ void setSubstitutingClassifier(QObject *substitutingClassifier = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLSUBSTITUTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumltemplatebindingobject.cpp b/src/uml/qobjects/qumltemplatebindingobject.cpp
new file mode 100644
index 00000000..e75e5ab9
--- /dev/null
+++ b/src/uml/qobjects/qumltemplatebindingobject.cpp
@@ -0,0 +1,235 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltemplatebindingobject_p.h"
+
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlTemplateableElement>
+#include <QtUml/QUmlTemplateParameterSubstitution>
+#include <QtUml/QUmlTemplateSignature>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTemplateBindingObject::QUmlTemplateBindingObject(QUmlTemplateBinding *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTemplateBindingObject::~QUmlTemplateBindingObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTemplateBindingObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTemplateBindingObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTemplateBindingObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlTemplateBindingObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlTemplateBindingObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTemplateBindingObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateBinding]
+
+QObject *QUmlTemplateBindingObject::boundElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->boundElement()->asQObject();
+}
+
+const QSet<QObject *> QUmlTemplateBindingObject::parameterSubstitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateParameterSubstitution *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->parameterSubstitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTemplateBindingObject::signature() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->signature()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTemplateBindingObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTemplateBindingObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTemplateBindingObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateBindingObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateBindingObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateBindingObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateBindingObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlTemplateBindingObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlTemplateBindingObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlTemplateBindingObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlTemplateBindingObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlTemplateBindingObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlTemplateBindingObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateBinding]
+
+void QUmlTemplateBindingObject::setBoundElement(QObject *boundElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->setBoundElement(qmodelingobjectproperty_cast<QUmlTemplateableElement *>(boundElement));
+}
+
+void QUmlTemplateBindingObject::addParameterSubstitution(QObject *parameterSubstitution)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->addParameterSubstitution(qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(parameterSubstitution));
+}
+
+void QUmlTemplateBindingObject::removeParameterSubstitution(QObject *parameterSubstitution)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->removeParameterSubstitution(qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(parameterSubstitution));
+}
+
+void QUmlTemplateBindingObject::setSignature(QObject *signature)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateBinding *>(this)->setSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(signature));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltemplatebindingobject_p.h b/src/uml/qobjects/qumltemplatebindingobject_p.h
new file mode 100644
index 00000000..73eb44ef
--- /dev/null
+++ b/src/uml/qobjects/qumltemplatebindingobject_p.h
@@ -0,0 +1,132 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTEMPLATEBINDINGOBJECT_H
+#define QUMLTEMPLATEBINDINGOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTemplateBinding;
+class Q_UML_EXPORT QUmlTemplateBindingObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [TemplateBinding]
+ Q_PROPERTY(QObject * boundElement READ boundElement)
+ Q_PROPERTY(QSet<QObject *> parameterSubstitution READ parameterSubstitution)
+ Q_PROPERTY(QObject * signature READ signature)
+
+public:
+ Q_INVOKABLE explicit QUmlTemplateBindingObject(QUmlTemplateBinding *qModelingObject);
+ virtual ~QUmlTemplateBindingObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [TemplateBinding]
+ Q_INVOKABLE QObject *boundElement() const;
+ Q_INVOKABLE const QSet<QObject *> parameterSubstitution() const;
+ Q_INVOKABLE QObject *signature() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [TemplateBinding]
+ void setBoundElement(QObject *boundElement = 0);
+ void addParameterSubstitution(QObject *parameterSubstitution);
+ void removeParameterSubstitution(QObject *parameterSubstitution);
+ void setSignature(QObject *signature = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTEMPLATEBINDINGOBJECT_H
+
diff --git a/src/uml/qobjects/qumltemplateparameterobject.cpp b/src/uml/qobjects/qumltemplateparameterobject.cpp
new file mode 100644
index 00000000..62a96912
--- /dev/null
+++ b/src/uml/qobjects/qumltemplateparameterobject.cpp
@@ -0,0 +1,184 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltemplateparameterobject_p.h"
+
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlTemplateSignature>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTemplateParameterObject::QUmlTemplateParameterObject(QUmlTemplateParameter *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTemplateParameterObject::~QUmlTemplateParameterObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTemplateParameterObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTemplateParameterObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTemplateParameterObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateParameter]
+
+QObject *QUmlTemplateParameterObject::default_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->default_()->asQObject();
+}
+
+QObject *QUmlTemplateParameterObject::ownedDefault() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->ownedDefault()->asQObject();
+}
+
+QObject *QUmlTemplateParameterObject::ownedParameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->ownedParameteredElement()->asQObject();
+}
+
+QObject *QUmlTemplateParameterObject::parameteredElement() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->parameteredElement()->asQObject();
+}
+
+QObject *QUmlTemplateParameterObject::signature() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->signature()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTemplateParameterObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTemplateParameterObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTemplateParameterObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateParameterObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateParameterObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateParameterObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateParameterObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
+
+void QUmlTemplateParameterObject::setDefault(QObject *default_)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->setDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(default_));
+}
+
+void QUmlTemplateParameterObject::setOwnedDefault(QObject *ownedDefault)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->setOwnedDefault(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedDefault));
+}
+
+void QUmlTemplateParameterObject::setOwnedParameteredElement(QObject *ownedParameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->setOwnedParameteredElement(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedParameteredElement));
+}
+
+void QUmlTemplateParameterObject::setParameteredElement(QObject *parameteredElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->setParameteredElement(qmodelingobjectproperty_cast<QUmlParameterableElement *>(parameteredElement));
+}
+
+void QUmlTemplateParameterObject::setSignature(QObject *signature)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameter *>(this)->setSignature(qmodelingobjectproperty_cast<QUmlTemplateSignature *>(signature));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltemplateparameterobject_p.h b/src/uml/qobjects/qumltemplateparameterobject_p.h
new file mode 100644
index 00000000..81e2450f
--- /dev/null
+++ b/src/uml/qobjects/qumltemplateparameterobject_p.h
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTEMPLATEPARAMETEROBJECT_H
+#define QUMLTEMPLATEPARAMETEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTemplateParameter;
+class Q_UML_EXPORT QUmlTemplateParameterObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateParameter]
+ Q_PROPERTY(QObject * default_ READ default_)
+ Q_PROPERTY(QObject * ownedDefault READ ownedDefault)
+ Q_PROPERTY(QObject * ownedParameteredElement READ ownedParameteredElement)
+ Q_PROPERTY(QObject * parameteredElement READ parameteredElement)
+ Q_PROPERTY(QObject * signature READ signature)
+
+public:
+ Q_INVOKABLE explicit QUmlTemplateParameterObject(QUmlTemplateParameter *qModelingObject);
+ virtual ~QUmlTemplateParameterObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateParameter]
+ Q_INVOKABLE QObject *default_() const;
+ Q_INVOKABLE QObject *ownedDefault() const;
+ Q_INVOKABLE QObject *ownedParameteredElement() const;
+ Q_INVOKABLE QObject *parameteredElement() const;
+ Q_INVOKABLE QObject *signature() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateParameter]
+ void setDefault(QObject *default_ = 0);
+ void setOwnedDefault(QObject *ownedDefault = 0);
+ void setOwnedParameteredElement(QObject *ownedParameteredElement = 0);
+ void setParameteredElement(QObject *parameteredElement = 0);
+ void setSignature(QObject *signature = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTEMPLATEPARAMETEROBJECT_H
+
diff --git a/src/uml/qobjects/qumltemplateparametersubstitutionobject.cpp b/src/uml/qobjects/qumltemplateparametersubstitutionobject.cpp
new file mode 100644
index 00000000..14637617
--- /dev/null
+++ b/src/uml/qobjects/qumltemplateparametersubstitutionobject.cpp
@@ -0,0 +1,175 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltemplateparametersubstitutionobject_p.h"
+
+#include <QtUml/QUmlTemplateParameterSubstitution>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTemplateParameterSubstitutionObject::QUmlTemplateParameterSubstitutionObject(QUmlTemplateParameterSubstitution *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTemplateParameterSubstitutionObject::~QUmlTemplateParameterSubstitutionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTemplateParameterSubstitutionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTemplateParameterSubstitutionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTemplateParameterSubstitutionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateParameterSubstitution]
+
+QObject *QUmlTemplateParameterSubstitutionObject::actual() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->actual()->asQObject();
+}
+
+QObject *QUmlTemplateParameterSubstitutionObject::formal() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->formal()->asQObject();
+}
+
+QObject *QUmlTemplateParameterSubstitutionObject::ownedActual() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->ownedActual()->asQObject();
+}
+
+QObject *QUmlTemplateParameterSubstitutionObject::templateBinding() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->templateBinding()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTemplateParameterSubstitutionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTemplateParameterSubstitutionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTemplateParameterSubstitutionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateParameterSubstitutionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateParameterSubstitutionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateParameterSubstitutionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateParameterSubstitutionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateParameterSubstitution]
+
+void QUmlTemplateParameterSubstitutionObject::setActual(QObject *actual)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->setActual(qmodelingobjectproperty_cast<QUmlParameterableElement *>(actual));
+}
+
+void QUmlTemplateParameterSubstitutionObject::setFormal(QObject *formal)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->setFormal(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(formal));
+}
+
+void QUmlTemplateParameterSubstitutionObject::setOwnedActual(QObject *ownedActual)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->setOwnedActual(qmodelingobjectproperty_cast<QUmlParameterableElement *>(ownedActual));
+}
+
+void QUmlTemplateParameterSubstitutionObject::setTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateParameterSubstitution *>(this)->setTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltemplateparametersubstitutionobject_p.h b/src/uml/qobjects/qumltemplateparametersubstitutionobject_p.h
new file mode 100644
index 00000000..4f9c4e31
--- /dev/null
+++ b/src/uml/qobjects/qumltemplateparametersubstitutionobject_p.h
@@ -0,0 +1,110 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTEMPLATEPARAMETERSUBSTITUTIONOBJECT_H
+#define QUMLTEMPLATEPARAMETERSUBSTITUTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTemplateParameterSubstitution;
+class Q_UML_EXPORT QUmlTemplateParameterSubstitutionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateParameterSubstitution]
+ Q_PROPERTY(QObject * actual READ actual)
+ Q_PROPERTY(QObject * formal READ formal)
+ Q_PROPERTY(QObject * ownedActual READ ownedActual)
+ Q_PROPERTY(QObject * templateBinding READ templateBinding)
+
+public:
+ Q_INVOKABLE explicit QUmlTemplateParameterSubstitutionObject(QUmlTemplateParameterSubstitution *qModelingObject);
+ virtual ~QUmlTemplateParameterSubstitutionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateParameterSubstitution]
+ Q_INVOKABLE QObject *actual() const;
+ Q_INVOKABLE QObject *formal() const;
+ Q_INVOKABLE QObject *ownedActual() const;
+ Q_INVOKABLE QObject *templateBinding() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateParameterSubstitution]
+ void setActual(QObject *actual = 0);
+ void setFormal(QObject *formal = 0);
+ void setOwnedActual(QObject *ownedActual = 0);
+ void setTemplateBinding(QObject *templateBinding = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTEMPLATEPARAMETERSUBSTITUTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumltemplatesignatureobject.cpp b/src/uml/qobjects/qumltemplatesignatureobject.cpp
new file mode 100644
index 00000000..3947ec1b
--- /dev/null
+++ b/src/uml/qobjects/qumltemplatesignatureobject.cpp
@@ -0,0 +1,180 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltemplatesignatureobject_p.h"
+
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlTemplateableElement>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTemplateSignatureObject::QUmlTemplateSignatureObject(QUmlTemplateSignature *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTemplateSignatureObject::~QUmlTemplateSignatureObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTemplateSignatureObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTemplateSignatureObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTemplateSignatureObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [TemplateSignature]
+
+const QList<QObject *> QUmlTemplateSignatureObject::ownedParameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlTemplateParameter *element, qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->ownedParameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+const QList<QObject *> QUmlTemplateSignatureObject::parameter() const
+{
+ QList<QObject *> list;
+ foreach (QUmlTemplateParameter *element, qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->parameter())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlTemplateSignatureObject::template_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->template_()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTemplateSignatureObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTemplateSignatureObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->mustBeOwned();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTemplateSignatureObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateSignatureObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTemplateSignatureObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateSignatureObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTemplateSignatureObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateSignature]
+
+void QUmlTemplateSignatureObject::addOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->addOwnedParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(ownedParameter));
+}
+
+void QUmlTemplateSignatureObject::removeOwnedParameter(QObject *ownedParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->removeOwnedParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(ownedParameter));
+}
+
+void QUmlTemplateSignatureObject::addParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->addParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(parameter));
+}
+
+void QUmlTemplateSignatureObject::removeParameter(QObject *parameter)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->removeParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(parameter));
+}
+
+void QUmlTemplateSignatureObject::setTemplate(QObject *template_)
+{
+ qmodelingobjectproperty_cast<QUmlTemplateSignature *>(this)->setTemplate(qmodelingobjectproperty_cast<QUmlTemplateableElement *>(template_));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltemplatesignatureobject_p.h b/src/uml/qobjects/qumltemplatesignatureobject_p.h
new file mode 100644
index 00000000..0b96c992
--- /dev/null
+++ b/src/uml/qobjects/qumltemplatesignatureobject_p.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTEMPLATESIGNATUREOBJECT_H
+#define QUMLTEMPLATESIGNATUREOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTemplateSignature;
+class Q_UML_EXPORT QUmlTemplateSignatureObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [TemplateSignature]
+ Q_PROPERTY(QList<QObject *> ownedParameter READ ownedParameter)
+ Q_PROPERTY(QList<QObject *> parameter READ parameter)
+ Q_PROPERTY(QObject * template_ READ template_)
+
+public:
+ Q_INVOKABLE explicit QUmlTemplateSignatureObject(QUmlTemplateSignature *qModelingObject);
+ virtual ~QUmlTemplateSignatureObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [TemplateSignature]
+ Q_INVOKABLE const QList<QObject *> ownedParameter() const;
+ Q_INVOKABLE const QList<QObject *> parameter() const;
+ Q_INVOKABLE QObject *template_() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [TemplateSignature]
+ void addOwnedParameter(QObject *ownedParameter);
+ void removeOwnedParameter(QObject *ownedParameter);
+ void addParameter(QObject *parameter);
+ void removeParameter(QObject *parameter);
+ void setTemplate(QObject *template_ = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTEMPLATESIGNATUREOBJECT_H
+
diff --git a/src/uml/qobjects/qumltestidentityactionobject.cpp b/src/uml/qobjects/qumltestidentityactionobject.cpp
new file mode 100644
index 00000000..16637836
--- /dev/null
+++ b/src/uml/qobjects/qumltestidentityactionobject.cpp
@@ -0,0 +1,592 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltestidentityactionobject_p.h"
+
+#include <QtUml/QUmlTestIdentityAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTestIdentityActionObject::QUmlTestIdentityActionObject(QUmlTestIdentityAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTestIdentityActionObject::~QUmlTestIdentityActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTestIdentityActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTestIdentityActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTestIdentityActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTestIdentityActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->name();
+}
+
+QObject *QUmlTestIdentityActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTestIdentityActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTestIdentityActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlTestIdentityActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlTestIdentityActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlTestIdentityActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTestIdentityActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlTestIdentityActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlTestIdentityActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlTestIdentityActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlTestIdentityActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTestIdentityActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlTestIdentityActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [TestIdentityAction]
+
+QObject *QUmlTestIdentityActionObject::first() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->first()->asQObject();
+}
+
+QObject *QUmlTestIdentityActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->result()->asQObject();
+}
+
+QObject *QUmlTestIdentityActionObject::second() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->second()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTestIdentityActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTestIdentityActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTestIdentityActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTestIdentityActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTestIdentityActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTestIdentityActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlTestIdentityActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlTestIdentityActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTestIdentityActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTestIdentityActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTestIdentityActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTestIdentityActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTestIdentityActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTestIdentityActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTestIdentityActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTestIdentityActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setName(name);
+}
+
+void QUmlTestIdentityActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTestIdentityActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTestIdentityActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlTestIdentityActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlTestIdentityActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlTestIdentityActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlTestIdentityActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlTestIdentityActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlTestIdentityActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlTestIdentityActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlTestIdentityActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlTestIdentityActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlTestIdentityActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlTestIdentityActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlTestIdentityActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlTestIdentityActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlTestIdentityActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlTestIdentityActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlTestIdentityActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlTestIdentityActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlTestIdentityActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlTestIdentityActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlTestIdentityActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlTestIdentityActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlTestIdentityActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlTestIdentityActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlTestIdentityActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlTestIdentityActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlTestIdentityActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlTestIdentityActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlTestIdentityActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlTestIdentityActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlTestIdentityActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlTestIdentityActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlTestIdentityActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TestIdentityAction]
+
+void QUmlTestIdentityActionObject::setFirst(QObject *first)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setFirst(qmodelingobjectproperty_cast<QUmlInputPin *>(first));
+}
+
+void QUmlTestIdentityActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlTestIdentityActionObject::setSecond(QObject *second)
+{
+ qmodelingobjectproperty_cast<QUmlTestIdentityAction *>(this)->setSecond(qmodelingobjectproperty_cast<QUmlInputPin *>(second));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltestidentityactionobject_p.h b/src/uml/qobjects/qumltestidentityactionobject_p.h
new file mode 100644
index 00000000..1a4fde06
--- /dev/null
+++ b/src/uml/qobjects/qumltestidentityactionobject_p.h
@@ -0,0 +1,235 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTESTIDENTITYACTIONOBJECT_H
+#define QUMLTESTIDENTITYACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTestIdentityAction;
+class Q_UML_EXPORT QUmlTestIdentityActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [TestIdentityAction]
+ Q_PROPERTY(QObject * first READ first)
+ Q_PROPERTY(QObject * result READ result)
+ Q_PROPERTY(QObject * second READ second)
+
+public:
+ Q_INVOKABLE explicit QUmlTestIdentityActionObject(QUmlTestIdentityAction *qModelingObject);
+ virtual ~QUmlTestIdentityActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [TestIdentityAction]
+ Q_INVOKABLE QObject *first() const;
+ Q_INVOKABLE QObject *result() const;
+ Q_INVOKABLE QObject *second() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [TestIdentityAction]
+ void setFirst(QObject *first = 0);
+ void setResult(QObject *result = 0);
+ void setSecond(QObject *second = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTESTIDENTITYACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumltimeconstraintobject.cpp b/src/uml/qobjects/qumltimeconstraintobject.cpp
new file mode 100644
index 00000000..f40336c1
--- /dev/null
+++ b/src/uml/qobjects/qumltimeconstraintobject.cpp
@@ -0,0 +1,330 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltimeconstraintobject_p.h"
+
+#include <QtUml/QUmlTimeConstraint>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterval>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTimeInterval>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTimeConstraintObject::QUmlTimeConstraintObject(QUmlTimeConstraint *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTimeConstraintObject::~QUmlTimeConstraintObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTimeConstraintObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTimeConstraintObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTimeConstraintObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlTimeConstraintObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlTimeConstraintObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTimeConstraintObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTimeConstraintObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->name();
+}
+
+QObject *QUmlTimeConstraintObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTimeConstraintObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTimeConstraintObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlTimeConstraintObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Constraint]
+
+const QList<QObject *> QUmlTimeConstraintObject::constrainedElement() const
+{
+ QList<QObject *> list;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->constrainedElement())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlTimeConstraintObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->context()->asQObject();
+}
+// OWNED ATTRIBUTES [TimeConstraint]
+
+bool QUmlTimeConstraintObject::firstEvent() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->firstEvent();
+}
+
+QObject *QUmlTimeConstraintObject::specification() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->specification()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTimeConstraintObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeConstraintObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlTimeConstraintObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlTimeConstraintObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTimeConstraintObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTimeConstraintObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeConstraintObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTimeConstraintObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTimeConstraintObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeConstraintObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeConstraintObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeConstraintObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeConstraintObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlTimeConstraintObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlTimeConstraintObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTimeConstraintObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeConstraintObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeConstraintObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setName(name);
+}
+
+void QUmlTimeConstraintObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTimeConstraintObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTimeConstraintObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlTimeConstraintObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Constraint]
+
+void QUmlTimeConstraintObject::addConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->addConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlTimeConstraintObject::removeConstrainedElement(QObject *constrainedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->removeConstrainedElement(qmodelingobjectproperty_cast<QUmlElement *>(constrainedElement));
+}
+
+void QUmlTimeConstraintObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setContext(qmodelingobjectproperty_cast<QUmlNamespace *>(context));
+}
+// SLOTS FOR OWNED ATTRIBUTES [TimeConstraint]
+
+void QUmlTimeConstraintObject::setFirstEvent(bool firstEvent)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setFirstEvent(firstEvent);
+}
+
+void QUmlTimeConstraintObject::setSpecification(QObject *specification)
+{
+ qmodelingobjectproperty_cast<QUmlTimeConstraint *>(this)->setSpecification(qmodelingobjectproperty_cast<QUmlTimeInterval *>(specification));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltimeconstraintobject_p.h b/src/uml/qobjects/qumltimeconstraintobject_p.h
new file mode 100644
index 00000000..27af361a
--- /dev/null
+++ b/src/uml/qobjects/qumltimeconstraintobject_p.h
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTIMECONSTRAINTOBJECT_H
+#define QUMLTIMECONSTRAINTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTimeConstraint;
+class Q_UML_EXPORT QUmlTimeConstraintObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Constraint]
+ Q_PROPERTY(QList<QObject *> constrainedElement READ constrainedElement)
+ Q_PROPERTY(QObject * context READ context)
+
+ // Properties [IntervalConstraint]
+
+ // Properties [TimeConstraint]
+ Q_PROPERTY(bool firstEvent READ firstEvent)
+ Q_PROPERTY(QObject * specification READ specification)
+
+public:
+ Q_INVOKABLE explicit QUmlTimeConstraintObject(QUmlTimeConstraint *qModelingObject);
+ virtual ~QUmlTimeConstraintObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Constraint]
+ Q_INVOKABLE const QList<QObject *> constrainedElement() const;
+ Q_INVOKABLE QObject *context() const;
+
+ // Owned attributes [IntervalConstraint]
+
+ // Owned attributes [TimeConstraint]
+ Q_INVOKABLE bool firstEvent() const;
+ Q_INVOKABLE QObject *specification() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Constraint]
+ void addConstrainedElement(QObject *constrainedElement);
+ void removeConstrainedElement(QObject *constrainedElement);
+ void setContext(QObject *context = 0);
+
+ // Slots for owned attributes [IntervalConstraint]
+
+ // Slots for owned attributes [TimeConstraint]
+ void setFirstEvent(bool firstEvent);
+ void setSpecification(QObject *specification = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTIMECONSTRAINTOBJECT_H
+
diff --git a/src/uml/qobjects/qumltimeeventobject.cpp b/src/uml/qobjects/qumltimeeventobject.cpp
new file mode 100644
index 00000000..c6176105
--- /dev/null
+++ b/src/uml/qobjects/qumltimeeventobject.cpp
@@ -0,0 +1,298 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltimeeventobject_p.h"
+
+#include <QtUml/QUmlTimeEvent>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTimeExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTimeEventObject::QUmlTimeEventObject(QUmlTimeEvent *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTimeEventObject::~QUmlTimeEventObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTimeEventObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTimeEventObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTimeEventObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlTimeEventObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlTimeEventObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTimeEventObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTimeEventObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->name();
+}
+
+QObject *QUmlTimeEventObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTimeEventObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTimeEventObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlTimeEventObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TimeEvent]
+
+bool QUmlTimeEventObject::isRelative() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->isRelative();
+}
+
+QObject *QUmlTimeEventObject::when() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->when()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTimeEventObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeEventObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlTimeEventObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlTimeEventObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTimeEventObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTimeEventObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeEventObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTimeEventObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTimeEventObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeEventObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeEventObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeEventObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeEventObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlTimeEventObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlTimeEventObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTimeEventObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeEventObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeEventObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setName(name);
+}
+
+void QUmlTimeEventObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTimeEventObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTimeEventObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlTimeEventObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TimeEvent]
+
+void QUmlTimeEventObject::setRelative(bool isRelative)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setRelative(isRelative);
+}
+
+void QUmlTimeEventObject::setWhen(QObject *when)
+{
+ qmodelingobjectproperty_cast<QUmlTimeEvent *>(this)->setWhen(qmodelingobjectproperty_cast<QUmlTimeExpression *>(when));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltimeeventobject_p.h b/src/uml/qobjects/qumltimeeventobject_p.h
new file mode 100644
index 00000000..6c38d4e0
--- /dev/null
+++ b/src/uml/qobjects/qumltimeeventobject_p.h
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTIMEEVENTOBJECT_H
+#define QUMLTIMEEVENTOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTimeEvent;
+class Q_UML_EXPORT QUmlTimeEventObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TimeEvent]
+ Q_PROPERTY(bool isRelative READ isRelative)
+ Q_PROPERTY(QObject * when READ when)
+
+public:
+ Q_INVOKABLE explicit QUmlTimeEventObject(QUmlTimeEvent *qModelingObject);
+ virtual ~QUmlTimeEventObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TimeEvent]
+ Q_INVOKABLE bool isRelative() const;
+ Q_INVOKABLE QObject *when() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TimeEvent]
+ void setRelative(bool isRelative);
+ void setWhen(QObject *when = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTIMEEVENTOBJECT_H
+
diff --git a/src/uml/qobjects/qumltimeexpressionobject.cpp b/src/uml/qobjects/qumltimeexpressionobject.cpp
new file mode 100644
index 00000000..7da43345
--- /dev/null
+++ b/src/uml/qobjects/qumltimeexpressionobject.cpp
@@ -0,0 +1,359 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltimeexpressionobject_p.h"
+
+#include <QtUml/QUmlTimeExpression>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlObservation>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTimeExpressionObject::QUmlTimeExpressionObject(QUmlTimeExpression *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTimeExpressionObject::~QUmlTimeExpressionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTimeExpressionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTimeExpressionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTimeExpressionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTimeExpressionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTimeExpressionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->name();
+}
+
+QObject *QUmlTimeExpressionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTimeExpressionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTimeExpressionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlTimeExpressionObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlTimeExpressionObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlTimeExpressionObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlTimeExpressionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TimeExpression]
+
+QObject *QUmlTimeExpressionObject::expr() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->expr()->asQObject();
+}
+
+const QSet<QObject *> QUmlTimeExpressionObject::observation() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlObservation *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->observation())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTimeExpressionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeExpressionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTimeExpressionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTimeExpressionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeExpressionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTimeExpressionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlTimeExpressionObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlTimeExpressionObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->booleanValue();
+}
+
+int QUmlTimeExpressionObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->integerValue();
+}
+
+bool QUmlTimeExpressionObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlTimeExpressionObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->isComputable();
+}
+
+bool QUmlTimeExpressionObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->isNull();
+}
+
+double QUmlTimeExpressionObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->realValue();
+}
+
+QString QUmlTimeExpressionObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->stringValue();
+}
+
+int QUmlTimeExpressionObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTimeExpressionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeExpressionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeExpressionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeExpressionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeExpressionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTimeExpressionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeExpressionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeExpressionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setName(name);
+}
+
+void QUmlTimeExpressionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTimeExpressionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTimeExpressionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlTimeExpressionObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlTimeExpressionObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlTimeExpressionObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlTimeExpressionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TimeExpression]
+
+void QUmlTimeExpressionObject::setExpr(QObject *expr)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->setExpr(qmodelingobjectproperty_cast<QUmlValueSpecification *>(expr));
+}
+
+void QUmlTimeExpressionObject::addObservation(QObject *observation)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->addObservation(qmodelingobjectproperty_cast<QUmlObservation *>(observation));
+}
+
+void QUmlTimeExpressionObject::removeObservation(QObject *observation)
+{
+ qmodelingobjectproperty_cast<QUmlTimeExpression *>(this)->removeObservation(qmodelingobjectproperty_cast<QUmlObservation *>(observation));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltimeexpressionobject_p.h b/src/uml/qobjects/qumltimeexpressionobject_p.h
new file mode 100644
index 00000000..c86bea07
--- /dev/null
+++ b/src/uml/qobjects/qumltimeexpressionobject_p.h
@@ -0,0 +1,178 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTIMEEXPRESSIONOBJECT_H
+#define QUMLTIMEEXPRESSIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTimeExpression;
+class Q_UML_EXPORT QUmlTimeExpressionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TimeExpression]
+ Q_PROPERTY(QObject * expr READ expr)
+ Q_PROPERTY(QSet<QObject *> observation READ observation)
+
+public:
+ Q_INVOKABLE explicit QUmlTimeExpressionObject(QUmlTimeExpression *qModelingObject);
+ virtual ~QUmlTimeExpressionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TimeExpression]
+ Q_INVOKABLE QObject *expr() const;
+ Q_INVOKABLE const QSet<QObject *> observation() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TimeExpression]
+ void setExpr(QObject *expr = 0);
+ void addObservation(QObject *observation);
+ void removeObservation(QObject *observation);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTIMEEXPRESSIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumltimeintervalobject.cpp b/src/uml/qobjects/qumltimeintervalobject.cpp
new file mode 100644
index 00000000..3029fd72
--- /dev/null
+++ b/src/uml/qobjects/qumltimeintervalobject.cpp
@@ -0,0 +1,351 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltimeintervalobject_p.h"
+
+#include <QtUml/QUmlTimeInterval>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTimeExpression>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTimeIntervalObject::QUmlTimeIntervalObject(QUmlTimeInterval *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTimeIntervalObject::~QUmlTimeIntervalObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTimeIntervalObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTimeIntervalObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTimeIntervalObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTimeIntervalObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTimeIntervalObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->name();
+}
+
+QObject *QUmlTimeIntervalObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTimeIntervalObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTimeIntervalObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlTimeIntervalObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlTimeIntervalObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlTimeIntervalObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlTimeIntervalObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TimeInterval]
+
+QObject *QUmlTimeIntervalObject::max() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->max()->asQObject();
+}
+
+QObject *QUmlTimeIntervalObject::min() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->min()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTimeIntervalObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeIntervalObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTimeIntervalObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTimeIntervalObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeIntervalObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTimeIntervalObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlTimeIntervalObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [ValueSpecification]
+
+bool QUmlTimeIntervalObject::booleanValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->booleanValue();
+}
+
+int QUmlTimeIntervalObject::integerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->integerValue();
+}
+
+bool QUmlTimeIntervalObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlTimeIntervalObject::isComputable() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->isComputable();
+}
+
+bool QUmlTimeIntervalObject::isNull() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->isNull();
+}
+
+double QUmlTimeIntervalObject::realValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->realValue();
+}
+
+QString QUmlTimeIntervalObject::stringValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->stringValue();
+}
+
+int QUmlTimeIntervalObject::unlimitedValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->unlimitedValue();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTimeIntervalObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeIntervalObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeIntervalObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeIntervalObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeIntervalObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTimeIntervalObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeIntervalObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeIntervalObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setName(name);
+}
+
+void QUmlTimeIntervalObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTimeIntervalObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTimeIntervalObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlTimeIntervalObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlTimeIntervalObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlTimeIntervalObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlTimeIntervalObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TimeInterval]
+
+void QUmlTimeIntervalObject::setMax(QObject *max)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setMax(qmodelingobjectproperty_cast<QUmlTimeExpression *>(max));
+}
+
+void QUmlTimeIntervalObject::setMin(QObject *min)
+{
+ qmodelingobjectproperty_cast<QUmlTimeInterval *>(this)->setMin(qmodelingobjectproperty_cast<QUmlTimeExpression *>(min));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltimeintervalobject_p.h b/src/uml/qobjects/qumltimeintervalobject_p.h
new file mode 100644
index 00000000..030b800d
--- /dev/null
+++ b/src/uml/qobjects/qumltimeintervalobject_p.h
@@ -0,0 +1,183 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTIMEINTERVALOBJECT_H
+#define QUMLTIMEINTERVALOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTimeInterval;
+class Q_UML_EXPORT QUmlTimeIntervalObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Interval]
+
+ // Properties [TimeInterval]
+ Q_PROPERTY(QObject * max READ max)
+ Q_PROPERTY(QObject * min READ min)
+
+public:
+ Q_INVOKABLE explicit QUmlTimeIntervalObject(QUmlTimeInterval *qModelingObject);
+ virtual ~QUmlTimeIntervalObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Interval]
+
+ // Owned attributes [TimeInterval]
+ Q_INVOKABLE QObject *max() const;
+ Q_INVOKABLE QObject *min() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [ValueSpecification]
+ Q_INVOKABLE bool booleanValue() const;
+ Q_INVOKABLE int integerValue() const;
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isComputable() const;
+ Q_INVOKABLE bool isNull() const;
+ Q_INVOKABLE double realValue() const;
+ Q_INVOKABLE QString stringValue() const;
+ Q_INVOKABLE int unlimitedValue() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Interval]
+
+ // Slots for owned attributes [TimeInterval]
+ void setMax(QObject *max = 0);
+ void setMin(QObject *min = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTIMEINTERVALOBJECT_H
+
diff --git a/src/uml/qobjects/qumltimeobservationobject.cpp b/src/uml/qobjects/qumltimeobservationobject.cpp
new file mode 100644
index 00000000..e6b20af3
--- /dev/null
+++ b/src/uml/qobjects/qumltimeobservationobject.cpp
@@ -0,0 +1,297 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltimeobservationobject_p.h"
+
+#include <QtUml/QUmlTimeObservation>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTimeObservationObject::QUmlTimeObservationObject(QUmlTimeObservation *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTimeObservationObject::~QUmlTimeObservationObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTimeObservationObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTimeObservationObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTimeObservationObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlTimeObservationObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlTimeObservationObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTimeObservationObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTimeObservationObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->name();
+}
+
+QObject *QUmlTimeObservationObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTimeObservationObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTimeObservationObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlTimeObservationObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TimeObservation]
+
+QObject *QUmlTimeObservationObject::event() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->event()->asQObject();
+}
+
+bool QUmlTimeObservationObject::firstEvent() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->firstEvent();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTimeObservationObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeObservationObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlTimeObservationObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlTimeObservationObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTimeObservationObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTimeObservationObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTimeObservationObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTimeObservationObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTimeObservationObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeObservationObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTimeObservationObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeObservationObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTimeObservationObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlTimeObservationObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlTimeObservationObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTimeObservationObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeObservationObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTimeObservationObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setName(name);
+}
+
+void QUmlTimeObservationObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTimeObservationObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTimeObservationObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlTimeObservationObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TimeObservation]
+
+void QUmlTimeObservationObject::setEvent(QObject *event)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setEvent(qmodelingobjectproperty_cast<QUmlNamedElement *>(event));
+}
+
+void QUmlTimeObservationObject::setFirstEvent(bool firstEvent)
+{
+ qmodelingobjectproperty_cast<QUmlTimeObservation *>(this)->setFirstEvent(firstEvent);
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltimeobservationobject_p.h b/src/uml/qobjects/qumltimeobservationobject_p.h
new file mode 100644
index 00000000..0d8e977b
--- /dev/null
+++ b/src/uml/qobjects/qumltimeobservationobject_p.h
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTIMEOBSERVATIONOBJECT_H
+#define QUMLTIMEOBSERVATIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTimeObservation;
+class Q_UML_EXPORT QUmlTimeObservationObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TimeObservation]
+ Q_PROPERTY(QObject * event READ event)
+ Q_PROPERTY(bool firstEvent READ firstEvent)
+
+public:
+ Q_INVOKABLE explicit QUmlTimeObservationObject(QUmlTimeObservation *qModelingObject);
+ virtual ~QUmlTimeObservationObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TimeObservation]
+ Q_INVOKABLE QObject *event() const;
+ Q_INVOKABLE bool firstEvent() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TimeObservation]
+ void setEvent(QObject *event = 0);
+ void setFirstEvent(bool firstEvent);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTIMEOBSERVATIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumltransitionobject.cpp b/src/uml/qobjects/qumltransitionobject.cpp
new file mode 100644
index 00000000..9dd81e2f
--- /dev/null
+++ b/src/uml/qobjects/qumltransitionobject.cpp
@@ -0,0 +1,541 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltransitionobject_p.h"
+
+#include <QtUml/QUmlTransition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRegion>
+#include <QtUml/QUmlStateMachine>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTrigger>
+#include <QtUml/QUmlVertex>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTransitionObject::QUmlTransitionObject(QUmlTransition *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTransitionObject::~QUmlTransitionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTransitionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTransitionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTransitionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTransitionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTransitionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->name();
+}
+
+QObject *QUmlTransitionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTransitionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTransitionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlTransitionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlTransitionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlTransitionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlTransitionObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTransitionObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTransitionObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTransitionObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTransitionObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTransitionObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Transition]
+
+QObject *QUmlTransitionObject::container() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->container()->asQObject();
+}
+
+QObject *QUmlTransitionObject::effect() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->effect()->asQObject();
+}
+
+QObject *QUmlTransitionObject::guard() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->guard()->asQObject();
+}
+
+QtUml::TransitionKind QUmlTransitionObject::kind() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->kind();
+}
+
+QObject *QUmlTransitionObject::redefinedTransition() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->redefinedTransition()->asQObject();
+}
+
+QObject *QUmlTransitionObject::redefinitionContext() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->redefinitionContext()->asQObject();
+}
+
+QObject *QUmlTransitionObject::source() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->source()->asQObject();
+}
+
+QObject *QUmlTransitionObject::target() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->target()->asQObject();
+}
+
+const QSet<QObject *> QUmlTransitionObject::trigger() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTrigger *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->trigger())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTransitionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTransitionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTransitionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTransitionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTransitionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTransitionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlTransitionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlTransitionObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlTransitionObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlTransitionObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlTransition *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTransitionObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [Transition]
+
+QObject *QUmlTransitionObject::containingStateMachine() const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->containingStateMachine()->asQObject();
+}
+
+bool QUmlTransitionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlTransition *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTransitionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTransitionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTransitionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTransitionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTransitionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTransitionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTransitionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTransitionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setName(name);
+}
+
+void QUmlTransitionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTransitionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTransitionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlTransitionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlTransitionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlTransitionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlTransitionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlTransitionObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlTransitionObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlTransitionObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlTransitionObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlTransitionObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlTransitionObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlTransitionObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlTransitionObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlTransitionObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlTransitionObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlTransitionObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlTransitionObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Transition]
+
+void QUmlTransitionObject::setContainer(QObject *container)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setContainer(qmodelingobjectproperty_cast<QUmlRegion *>(container));
+}
+
+void QUmlTransitionObject::setEffect(QObject *effect)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setEffect(qmodelingobjectproperty_cast<QUmlBehavior *>(effect));
+}
+
+void QUmlTransitionObject::setGuard(QObject *guard)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setGuard(qmodelingobjectproperty_cast<QUmlConstraint *>(guard));
+}
+
+void QUmlTransitionObject::setKind(QtUml::TransitionKind kind)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setKind(kind);
+}
+
+void QUmlTransitionObject::setRedefinedTransition(QObject *redefinedTransition)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setRedefinedTransition(qmodelingobjectproperty_cast<QUmlTransition *>(redefinedTransition));
+}
+
+void QUmlTransitionObject::setRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlTransitionObject::setSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setSource(qmodelingobjectproperty_cast<QUmlVertex *>(source));
+}
+
+void QUmlTransitionObject::setTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->setTarget(qmodelingobjectproperty_cast<QUmlVertex *>(target));
+}
+
+void QUmlTransitionObject::addTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->addTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+void QUmlTransitionObject::removeTrigger(QObject *trigger)
+{
+ qmodelingobjectproperty_cast<QUmlTransition *>(this)->removeTrigger(qmodelingobjectproperty_cast<QUmlTrigger *>(trigger));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltransitionobject_p.h b/src/uml/qobjects/qumltransitionobject_p.h
new file mode 100644
index 00000000..110e542d
--- /dev/null
+++ b/src/uml/qobjects/qumltransitionobject_p.h
@@ -0,0 +1,215 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTRANSITIONOBJECT_H
+#define QUMLTRANSITIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTransition;
+class Q_UML_EXPORT QUmlTransitionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [Transition]
+ Q_PROPERTY(QObject * container READ container)
+ Q_PROPERTY(QObject * effect READ effect)
+ Q_PROPERTY(QObject * guard READ guard)
+ Q_PROPERTY(QtUml::TransitionKind kind READ kind)
+ Q_PROPERTY(QObject * redefinedTransition READ redefinedTransition)
+ Q_PROPERTY(QObject * redefinitionContext READ redefinitionContext)
+ Q_PROPERTY(QObject * source READ source)
+ Q_PROPERTY(QObject * target READ target)
+ Q_PROPERTY(QSet<QObject *> trigger READ trigger)
+
+public:
+ Q_INVOKABLE explicit QUmlTransitionObject(QUmlTransition *qModelingObject);
+ virtual ~QUmlTransitionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [Transition]
+ Q_INVOKABLE QObject *container() const;
+ Q_INVOKABLE QObject *effect() const;
+ Q_INVOKABLE QObject *guard() const;
+ Q_INVOKABLE QtUml::TransitionKind kind() const;
+ Q_INVOKABLE QObject *redefinedTransition() const;
+ Q_INVOKABLE QObject *redefinitionContext() const;
+ Q_INVOKABLE QObject *source() const;
+ Q_INVOKABLE QObject *target() const;
+ Q_INVOKABLE const QSet<QObject *> trigger() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [Transition]
+ Q_INVOKABLE QObject *containingStateMachine() const;
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [Transition]
+ void setContainer(QObject *container = 0);
+ void setEffect(QObject *effect = 0);
+ void setGuard(QObject *guard = 0);
+ void setKind(QtUml::TransitionKind kind);
+ void setRedefinedTransition(QObject *redefinedTransition = 0);
+ void Q_DECL_HIDDEN setRedefinitionContext(QObject *redefinitionContext = 0);
+ void setSource(QObject *source = 0);
+ void setTarget(QObject *target = 0);
+ void addTrigger(QObject *trigger);
+ void removeTrigger(QObject *trigger);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTRANSITIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumltriggerobject.cpp b/src/uml/qobjects/qumltriggerobject.cpp
new file mode 100644
index 00000000..f0249f01
--- /dev/null
+++ b/src/uml/qobjects/qumltriggerobject.cpp
@@ -0,0 +1,267 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumltriggerobject_p.h"
+
+#include <QtUml/QUmlTrigger>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlEvent>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPort>
+#include <QtUml/QUmlStringExpression>
+
+QT_BEGIN_NAMESPACE
+
+QUmlTriggerObject::QUmlTriggerObject(QUmlTrigger *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlTriggerObject::~QUmlTriggerObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlTriggerObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlTriggerObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlTriggerObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlTriggerObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlTriggerObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->name();
+}
+
+QObject *QUmlTriggerObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlTriggerObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlTriggerObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlTriggerObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Trigger]
+
+QObject *QUmlTriggerObject::event() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->event()->asQObject();
+}
+
+const QSet<QObject *> QUmlTriggerObject::port() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPort *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->port())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlTriggerObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTriggerObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlTriggerObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlTriggerObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlTrigger *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlTriggerObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlTriggerObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlTrigger *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlTriggerObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTriggerObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlTriggerObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTriggerObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlTriggerObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlTriggerObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTriggerObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlTriggerObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setName(name);
+}
+
+void QUmlTriggerObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlTriggerObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlTriggerObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlTriggerObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Trigger]
+
+void QUmlTriggerObject::setEvent(QObject *event)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->setEvent(qmodelingobjectproperty_cast<QUmlEvent *>(event));
+}
+
+void QUmlTriggerObject::addPort(QObject *port)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->addPort(qmodelingobjectproperty_cast<QUmlPort *>(port));
+}
+
+void QUmlTriggerObject::removePort(QObject *port)
+{
+ qmodelingobjectproperty_cast<QUmlTrigger *>(this)->removePort(qmodelingobjectproperty_cast<QUmlPort *>(port));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumltriggerobject_p.h b/src/uml/qobjects/qumltriggerobject_p.h
new file mode 100644
index 00000000..073b360c
--- /dev/null
+++ b/src/uml/qobjects/qumltriggerobject_p.h
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLTRIGGEROBJECT_H
+#define QUMLTRIGGEROBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlTrigger;
+class Q_UML_EXPORT QUmlTriggerObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Trigger]
+ Q_PROPERTY(QObject * event READ event)
+ Q_PROPERTY(QSet<QObject *> port READ port)
+
+public:
+ Q_INVOKABLE explicit QUmlTriggerObject(QUmlTrigger *qModelingObject);
+ virtual ~QUmlTriggerObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Trigger]
+ Q_INVOKABLE QObject *event() const;
+ Q_INVOKABLE const QSet<QObject *> port() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Trigger]
+ void setEvent(QObject *event = 0);
+ void addPort(QObject *port);
+ void removePort(QObject *port);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLTRIGGEROBJECT_H
+
diff --git a/src/uml/qobjects/qumlunmarshallactionobject.cpp b/src/uml/qobjects/qumlunmarshallactionobject.cpp
new file mode 100644
index 00000000..87aec49e
--- /dev/null
+++ b/src/uml/qobjects/qumlunmarshallactionobject.cpp
@@ -0,0 +1,600 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlunmarshallactionobject_p.h"
+
+#include <QtUml/QUmlUnmarshallAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+
+QT_BEGIN_NAMESPACE
+
+QUmlUnmarshallActionObject::QUmlUnmarshallActionObject(QUmlUnmarshallAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlUnmarshallActionObject::~QUmlUnmarshallActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlUnmarshallActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUnmarshallActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlUnmarshallActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlUnmarshallActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->name();
+}
+
+QObject *QUmlUnmarshallActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlUnmarshallActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlUnmarshallActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlUnmarshallActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlUnmarshallActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlUnmarshallActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUnmarshallActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlUnmarshallActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlUnmarshallActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlUnmarshallActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlUnmarshallActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlUnmarshallActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [UnmarshallAction]
+
+QObject *QUmlUnmarshallActionObject::object() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->object()->asQObject();
+}
+
+const QSet<QObject *> QUmlUnmarshallActionObject::result() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->result())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUnmarshallActionObject::unmarshallType() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->unmarshallType()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlUnmarshallActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUnmarshallActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlUnmarshallActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlUnmarshallActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUnmarshallActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlUnmarshallActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlUnmarshallActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlUnmarshallActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlUnmarshallActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlUnmarshallActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlUnmarshallActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlUnmarshallActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlUnmarshallActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlUnmarshallActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlUnmarshallActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlUnmarshallActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setName(name);
+}
+
+void QUmlUnmarshallActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlUnmarshallActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlUnmarshallActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlUnmarshallActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlUnmarshallActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlUnmarshallActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlUnmarshallActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlUnmarshallActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlUnmarshallActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlUnmarshallActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlUnmarshallActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlUnmarshallActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlUnmarshallActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlUnmarshallActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlUnmarshallActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlUnmarshallActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlUnmarshallActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlUnmarshallActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlUnmarshallActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlUnmarshallActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlUnmarshallActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlUnmarshallActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlUnmarshallActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlUnmarshallActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlUnmarshallActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlUnmarshallActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlUnmarshallActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlUnmarshallActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlUnmarshallActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlUnmarshallActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlUnmarshallActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlUnmarshallActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlUnmarshallActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlUnmarshallActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlUnmarshallActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [UnmarshallAction]
+
+void QUmlUnmarshallActionObject::setObject(QObject *object)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setObject(qmodelingobjectproperty_cast<QUmlInputPin *>(object));
+}
+
+void QUmlUnmarshallActionObject::addResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->addResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlUnmarshallActionObject::removeResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->removeResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlUnmarshallActionObject::setUnmarshallType(QObject *unmarshallType)
+{
+ qmodelingobjectproperty_cast<QUmlUnmarshallAction *>(this)->setUnmarshallType(qmodelingobjectproperty_cast<QUmlClassifier *>(unmarshallType));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlunmarshallactionobject_p.h b/src/uml/qobjects/qumlunmarshallactionobject_p.h
new file mode 100644
index 00000000..bacd7527
--- /dev/null
+++ b/src/uml/qobjects/qumlunmarshallactionobject_p.h
@@ -0,0 +1,236 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLUNMARSHALLACTIONOBJECT_H
+#define QUMLUNMARSHALLACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlUnmarshallAction;
+class Q_UML_EXPORT QUmlUnmarshallActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [UnmarshallAction]
+ Q_PROPERTY(QObject * object READ object)
+ Q_PROPERTY(QSet<QObject *> result READ result)
+ Q_PROPERTY(QObject * unmarshallType READ unmarshallType)
+
+public:
+ Q_INVOKABLE explicit QUmlUnmarshallActionObject(QUmlUnmarshallAction *qModelingObject);
+ virtual ~QUmlUnmarshallActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [UnmarshallAction]
+ Q_INVOKABLE QObject *object() const;
+ Q_INVOKABLE const QSet<QObject *> result() const;
+ Q_INVOKABLE QObject *unmarshallType() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [UnmarshallAction]
+ void setObject(QObject *object = 0);
+ void addResult(QObject *result);
+ void removeResult(QObject *result);
+ void setUnmarshallType(QObject *unmarshallType = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLUNMARSHALLACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlusageobject.cpp b/src/uml/qobjects/qumlusageobject.cpp
new file mode 100644
index 00000000..547acca2
--- /dev/null
+++ b/src/uml/qobjects/qumlusageobject.cpp
@@ -0,0 +1,375 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlusageobject_p.h"
+
+#include <QtUml/QUmlUsage>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlTemplateParameter>
+
+QT_BEGIN_NAMESPACE
+
+QUmlUsageObject::QUmlUsageObject(QUmlUsage *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlUsageObject::~QUmlUsageObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlUsageObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUsageObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUsageObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlUsageObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->owningTemplateParameter()->asQObject();
+}
+
+QObject *QUmlUsageObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlUsageObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlUsageObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->name();
+}
+
+QObject *QUmlUsageObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlUsageObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlUsageObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlUsageObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Relationship]
+
+const QSet<QObject *> QUmlUsageObject::relatedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->relatedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [DirectedRelationship]
+
+const QSet<QObject *> QUmlUsageObject::source() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->source())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUsageObject::target() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->target())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Dependency]
+
+const QSet<QObject *> QUmlUsageObject::client() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->client())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUsageObject::supplier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->supplier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlUsageObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUsageObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlUsageObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlUsageObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlUsageObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlUsageObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlUsage *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUsageObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlUsageObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlUsage *>(this)->separator();
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlUsageObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlUsageObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlUsageObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlUsageObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlUsageObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlUsageObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+
+void QUmlUsageObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlUsageObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlUsageObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlUsageObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setName(name);
+}
+
+void QUmlUsageObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlUsageObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlUsageObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlUsageObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+
+void QUmlUsageObject::addRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+void QUmlUsageObject::removeRelatedElement(QObject *relatedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeRelatedElement(qmodelingobjectproperty_cast<QUmlElement *>(relatedElement));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+
+void QUmlUsageObject::addSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlUsageObject::removeSource(QObject *source)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeSource(qmodelingobjectproperty_cast<QUmlElement *>(source));
+}
+
+void QUmlUsageObject::addTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+void QUmlUsageObject::removeTarget(QObject *target)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeTarget(qmodelingobjectproperty_cast<QUmlElement *>(target));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Dependency]
+
+void QUmlUsageObject::addClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlUsageObject::removeClient(QObject *client)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeClient(qmodelingobjectproperty_cast<QUmlNamedElement *>(client));
+}
+
+void QUmlUsageObject::addSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->addSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+void QUmlUsageObject::removeSupplier(QObject *supplier)
+{
+ qmodelingobjectproperty_cast<QUmlUsage *>(this)->removeSupplier(qmodelingobjectproperty_cast<QUmlNamedElement *>(supplier));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlusageobject_p.h b/src/uml/qobjects/qumlusageobject_p.h
new file mode 100644
index 00000000..2499e9ce
--- /dev/null
+++ b/src/uml/qobjects/qumlusageobject_p.h
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLUSAGEOBJECT_H
+#define QUMLUSAGEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlUsage;
+class Q_UML_EXPORT QUmlUsageObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Relationship]
+ Q_PROPERTY(QSet<QObject *> relatedElement READ relatedElement)
+
+ // Properties [DirectedRelationship]
+ Q_PROPERTY(QSet<QObject *> source READ source)
+ Q_PROPERTY(QSet<QObject *> target READ target)
+
+ // Properties [Dependency]
+ Q_PROPERTY(QSet<QObject *> client READ client)
+ Q_PROPERTY(QSet<QObject *> supplier READ supplier)
+
+public:
+ Q_INVOKABLE explicit QUmlUsageObject(QUmlUsage *qModelingObject);
+ virtual ~QUmlUsageObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Relationship]
+ Q_INVOKABLE const QSet<QObject *> relatedElement() const;
+
+ // Owned attributes [DirectedRelationship]
+ Q_INVOKABLE const QSet<QObject *> source() const;
+ Q_INVOKABLE const QSet<QObject *> target() const;
+
+ // Owned attributes [Dependency]
+ Q_INVOKABLE const QSet<QObject *> client() const;
+ Q_INVOKABLE const QSet<QObject *> supplier() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Relationship]
+ void Q_DECL_HIDDEN addRelatedElement(QObject *relatedElement);
+ void Q_DECL_HIDDEN removeRelatedElement(QObject *relatedElement);
+
+ // Slots for owned attributes [DirectedRelationship]
+ void Q_DECL_HIDDEN addSource(QObject *source);
+ void Q_DECL_HIDDEN removeSource(QObject *source);
+ void Q_DECL_HIDDEN addTarget(QObject *target);
+ void Q_DECL_HIDDEN removeTarget(QObject *target);
+
+ // Slots for owned attributes [Dependency]
+ void addClient(QObject *client);
+ void removeClient(QObject *client);
+ void addSupplier(QObject *supplier);
+ void removeSupplier(QObject *supplier);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLUSAGEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlusecaseobject.cpp b/src/uml/qobjects/qumlusecaseobject.cpp
new file mode 100644
index 00000000..b94b68e9
--- /dev/null
+++ b/src/uml/qobjects/qumlusecaseobject.cpp
@@ -0,0 +1,991 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlusecaseobject_p.h"
+
+#include <QtUml/QUmlUseCase>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlClassifierTemplateParameter>
+#include <QtUml/QUmlCollaborationUse>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlElementImport>
+#include <QtUml/QUmlExtend>
+#include <QtUml/QUmlExtensionPoint>
+#include <QtUml/QUmlFeature>
+#include <QtUml/QUmlGeneralization>
+#include <QtUml/QUmlGeneralizationSet>
+#include <QtUml/QUmlInclude>
+#include <QtUml/QUmlInterfaceRealization>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlPackageImport>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlProperty>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlRedefinableTemplateSignature>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlSubstitution>
+#include <QtUml/QUmlTemplateBinding>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlType>
+
+QT_BEGIN_NAMESPACE
+
+QUmlUseCaseObject::QUmlUseCaseObject(QUmlUseCase *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlUseCaseObject::~QUmlUseCaseObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlUseCaseObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUseCaseObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlUseCaseObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlUseCaseObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->name();
+}
+
+QObject *QUmlUseCaseObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlUseCaseObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlUseCaseObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->qualifiedName();
+}
+// OWNED ATTRIBUTES [Namespace]
+
+const QSet<QObject *> QUmlUseCaseObject::elementImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElementImport *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->elementImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::importedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->importedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::member() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->member())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::ownedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::ownedRule() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedRule())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::packageImport() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackageImport *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->packageImport())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlUseCaseObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [PackageableElement]
+
+QtUml::VisibilityKind QUmlUseCaseObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [Type]
+
+QObject *QUmlUseCaseObject::package() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->package()->asQObject();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlUseCaseObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlUseCaseObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TemplateableElement]
+
+const QSet<QObject *> QUmlUseCaseObject::templateBinding() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlTemplateBinding *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->templateBinding())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Classifier]
+
+const QSet<QObject *> QUmlUseCaseObject::attribute() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlProperty *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->attribute())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::collaborationUse() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlCollaborationUse *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->collaborationUse())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::feature() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->feature())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::general() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->general())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::generalization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralization *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->generalization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::inheritedMember() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->inheritedMember())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUseCaseObject::isAbstract() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isAbstract();
+}
+
+bool QUmlUseCaseObject::isFinalSpecialization() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isFinalSpecialization();
+}
+
+QObject *QUmlUseCaseObject::ownedTemplateSignature() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedTemplateSignature()->asQObject();
+}
+
+const QSet<QObject *> QUmlUseCaseObject::ownedUseCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedUseCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::powertypeExtent() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlGeneralizationSet *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->powertypeExtent())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::redefinedClassifier() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->redefinedClassifier())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUseCaseObject::representation() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->representation()->asQObject();
+}
+
+const QSet<QObject *> QUmlUseCaseObject::substitution() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlSubstitution *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->substitution())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlUseCaseObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->templateParameter()->asQObject();
+}
+
+const QSet<QObject *> QUmlUseCaseObject::useCase() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->useCase())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [BehavioredClassifier]
+
+QObject *QUmlUseCaseObject::classifierBehavior() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->classifierBehavior()->asQObject();
+}
+
+const QSet<QObject *> QUmlUseCaseObject::interfaceRealization() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterfaceRealization *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->interfaceRealization())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::ownedBehavior() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlBehavior *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->ownedBehavior())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [UseCase]
+
+const QSet<QObject *> QUmlUseCaseObject::extend() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtend *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->extend())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::extensionPoint() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExtensionPoint *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->extensionPoint())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::include() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInclude *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->include())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlUseCaseObject::subject() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->subject())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlUseCaseObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUseCaseObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlUseCaseObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlUseCaseObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUseCaseObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlUseCaseObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->separator();
+}
+
+// OPERATIONS [Namespace]
+
+QSet<QObject *> QUmlUseCaseObject::excludeCollisions(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->excludeCollisions(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QString> QUmlUseCaseObject::getNamesOfMember(QObject *element) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->getNamesOfMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(element));
+}
+
+QSet<QObject *> QUmlUseCaseObject::importMembers(QSet<QObject *> imps) const
+{
+ QSet<QUmlPackageableElement *> impsConverted;
+ foreach (QObject *object, imps)
+ impsConverted.insert(qmodelingobjectproperty_cast<QUmlPackageableElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlPackageableElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->importMembers(impsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUseCaseObject::membersAreDistinguishable() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->membersAreDistinguishable();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlUseCaseObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlUseCaseObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Type]
+// OPERATIONS [RedefinableElement]
+
+bool QUmlUseCaseObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlUseCaseObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// OPERATIONS [TemplateableElement]
+
+QSet<QObject *> QUmlUseCaseObject::parameterableElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlParameterableElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->parameterableElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [Classifier]
+
+QSet<QObject *> QUmlUseCaseObject::allFeatures() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlFeature *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->allFeatures())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlUseCaseObject::allParents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->allParents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUseCaseObject::conformsTo(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->conformsTo(qmodelingobjectproperty_cast<QUmlClassifier *>(other));
+}
+
+bool QUmlUseCaseObject::hasVisibilityOf(QObject *n) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->hasVisibilityOf(qmodelingobjectproperty_cast<QUmlNamedElement *>(n));
+}
+
+QSet<QObject *> QUmlUseCaseObject::inherit(QSet<QObject *> inhs) const
+{
+ QSet<QUmlNamedElement *> inhsConverted;
+ foreach (QObject *object, inhs)
+ inhsConverted.insert(qmodelingobjectproperty_cast<QUmlNamedElement *>(object));
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->inherit(inhsConverted))
+ set.insert(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlUseCaseObject::inheritableMembers(QObject *c) const
+{
+ QSet<QObject *> set;
+ foreach (QUmlNamedElement *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->inheritableMembers(qmodelingobjectproperty_cast<QUmlClassifier *>(c)))
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlUseCaseObject::isTemplate() const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->isTemplate();
+}
+
+bool QUmlUseCaseObject::maySpecializeType(QObject *c) const
+{
+ return qmodelingobjectproperty_cast<QUmlUseCase *>(this)->maySpecializeType(qmodelingobjectproperty_cast<QUmlClassifier *>(c));
+}
+
+QSet<QObject *> QUmlUseCaseObject::parents() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->parents())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OPERATIONS [UseCase]
+
+QSet<QObject *> QUmlUseCaseObject::allIncludedUseCases() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlUseCase *element, qmodelingobjectproperty_cast<QUmlUseCase *>(this)->allIncludedUseCases())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlUseCaseObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlUseCaseObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlUseCaseObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlUseCaseObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlUseCaseObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlUseCaseObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlUseCaseObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlUseCaseObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setName(name);
+}
+
+void QUmlUseCaseObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlUseCaseObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlUseCaseObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setQualifiedName(qualifiedName);
+}
+ // SLOTS FOR OWNED ATTRIBUTES [Namespace]
+
+void QUmlUseCaseObject::addElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlUseCaseObject::removeElementImport(QObject *elementImport)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeElementImport(qmodelingobjectproperty_cast<QUmlElementImport *>(elementImport));
+}
+
+void QUmlUseCaseObject::addImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlUseCaseObject::removeImportedMember(QObject *importedMember)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeImportedMember(qmodelingobjectproperty_cast<QUmlPackageableElement *>(importedMember));
+}
+
+void QUmlUseCaseObject::addMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlUseCaseObject::removeMember(QObject *member)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(member));
+}
+
+void QUmlUseCaseObject::addOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlUseCaseObject::removeOwnedMember(QObject *ownedMember)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeOwnedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(ownedMember));
+}
+
+void QUmlUseCaseObject::addOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlUseCaseObject::removeOwnedRule(QObject *ownedRule)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeOwnedRule(qmodelingobjectproperty_cast<QUmlConstraint *>(ownedRule));
+}
+
+void QUmlUseCaseObject::addPackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addPackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+void QUmlUseCaseObject::removePackageImport(QObject *packageImport)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removePackageImport(qmodelingobjectproperty_cast<QUmlPackageImport *>(packageImport));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlUseCaseObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+
+void QUmlUseCaseObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Type]
+
+void QUmlUseCaseObject::setPackage(QObject *package)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setPackage(qmodelingobjectproperty_cast<QUmlPackage *>(package));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlUseCaseObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlUseCaseObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlUseCaseObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlUseCaseObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlUseCaseObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+
+void QUmlUseCaseObject::addTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+void QUmlUseCaseObject::removeTemplateBinding(QObject *templateBinding)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeTemplateBinding(qmodelingobjectproperty_cast<QUmlTemplateBinding *>(templateBinding));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+
+void QUmlUseCaseObject::addAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlUseCaseObject::removeAttribute(QObject *attribute)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeAttribute(qmodelingobjectproperty_cast<QUmlProperty *>(attribute));
+}
+
+void QUmlUseCaseObject::addCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlUseCaseObject::removeCollaborationUse(QObject *collaborationUse)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeCollaborationUse(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(collaborationUse));
+}
+
+void QUmlUseCaseObject::addFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlUseCaseObject::removeFeature(QObject *feature)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeFeature(qmodelingobjectproperty_cast<QUmlFeature *>(feature));
+}
+
+void QUmlUseCaseObject::addGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlUseCaseObject::removeGeneral(QObject *general)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeGeneral(qmodelingobjectproperty_cast<QUmlClassifier *>(general));
+}
+
+void QUmlUseCaseObject::addGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlUseCaseObject::removeGeneralization(QObject *generalization)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeGeneralization(qmodelingobjectproperty_cast<QUmlGeneralization *>(generalization));
+}
+
+void QUmlUseCaseObject::addInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlUseCaseObject::removeInheritedMember(QObject *inheritedMember)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeInheritedMember(qmodelingobjectproperty_cast<QUmlNamedElement *>(inheritedMember));
+}
+
+void QUmlUseCaseObject::setAbstract(bool isAbstract)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setAbstract(isAbstract);
+}
+
+void QUmlUseCaseObject::setFinalSpecialization(bool isFinalSpecialization)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setFinalSpecialization(isFinalSpecialization);
+}
+
+void QUmlUseCaseObject::setOwnedTemplateSignature(QObject *ownedTemplateSignature)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setOwnedTemplateSignature(qmodelingobjectproperty_cast<QUmlRedefinableTemplateSignature *>(ownedTemplateSignature));
+}
+
+void QUmlUseCaseObject::addOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlUseCaseObject::removeOwnedUseCase(QObject *ownedUseCase)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeOwnedUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(ownedUseCase));
+}
+
+void QUmlUseCaseObject::addPowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addPowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlUseCaseObject::removePowertypeExtent(QObject *powertypeExtent)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removePowertypeExtent(qmodelingobjectproperty_cast<QUmlGeneralizationSet *>(powertypeExtent));
+}
+
+void QUmlUseCaseObject::addRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlUseCaseObject::removeRedefinedClassifier(QObject *redefinedClassifier)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeRedefinedClassifier(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinedClassifier));
+}
+
+void QUmlUseCaseObject::setRepresentation(QObject *representation)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setRepresentation(qmodelingobjectproperty_cast<QUmlCollaborationUse *>(representation));
+}
+
+void QUmlUseCaseObject::addSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlUseCaseObject::removeSubstitution(QObject *substitution)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeSubstitution(qmodelingobjectproperty_cast<QUmlSubstitution *>(substitution));
+}
+
+void QUmlUseCaseObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlClassifierTemplateParameter *>(templateParameter));
+}
+
+void QUmlUseCaseObject::addUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+void QUmlUseCaseObject::removeUseCase(QObject *useCase)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeUseCase(qmodelingobjectproperty_cast<QUmlUseCase *>(useCase));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
+
+void QUmlUseCaseObject::setClassifierBehavior(QObject *classifierBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->setClassifierBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(classifierBehavior));
+}
+
+void QUmlUseCaseObject::addInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlUseCaseObject::removeInterfaceRealization(QObject *interfaceRealization)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeInterfaceRealization(qmodelingobjectproperty_cast<QUmlInterfaceRealization *>(interfaceRealization));
+}
+
+void QUmlUseCaseObject::addOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+void QUmlUseCaseObject::removeOwnedBehavior(QObject *ownedBehavior)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeOwnedBehavior(qmodelingobjectproperty_cast<QUmlBehavior *>(ownedBehavior));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [UseCase]
+
+void QUmlUseCaseObject::addExtend(QObject *extend)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addExtend(qmodelingobjectproperty_cast<QUmlExtend *>(extend));
+}
+
+void QUmlUseCaseObject::removeExtend(QObject *extend)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeExtend(qmodelingobjectproperty_cast<QUmlExtend *>(extend));
+}
+
+void QUmlUseCaseObject::addExtensionPoint(QObject *extensionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addExtensionPoint(qmodelingobjectproperty_cast<QUmlExtensionPoint *>(extensionPoint));
+}
+
+void QUmlUseCaseObject::removeExtensionPoint(QObject *extensionPoint)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeExtensionPoint(qmodelingobjectproperty_cast<QUmlExtensionPoint *>(extensionPoint));
+}
+
+void QUmlUseCaseObject::addInclude(QObject *include)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addInclude(qmodelingobjectproperty_cast<QUmlInclude *>(include));
+}
+
+void QUmlUseCaseObject::removeInclude(QObject *include)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeInclude(qmodelingobjectproperty_cast<QUmlInclude *>(include));
+}
+
+void QUmlUseCaseObject::addSubject(QObject *subject)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->addSubject(qmodelingobjectproperty_cast<QUmlClassifier *>(subject));
+}
+
+void QUmlUseCaseObject::removeSubject(QObject *subject)
+{
+ qmodelingobjectproperty_cast<QUmlUseCase *>(this)->removeSubject(qmodelingobjectproperty_cast<QUmlClassifier *>(subject));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlusecaseobject_p.h b/src/uml/qobjects/qumlusecaseobject_p.h
new file mode 100644
index 00000000..03985480
--- /dev/null
+++ b/src/uml/qobjects/qumlusecaseobject_p.h
@@ -0,0 +1,343 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLUSECASEOBJECT_H
+#define QUMLUSECASEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlUseCase;
+class Q_UML_EXPORT QUmlUseCaseObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+
+ // Properties [Namespace]
+ Q_PROPERTY(QSet<QObject *> elementImport READ elementImport)
+ Q_PROPERTY(QSet<QObject *> importedMember READ importedMember)
+ Q_PROPERTY(QSet<QObject *> member READ member)
+ Q_PROPERTY(QSet<QObject *> ownedMember READ ownedMember)
+ Q_PROPERTY(QSet<QObject *> ownedRule READ ownedRule)
+ Q_PROPERTY(QSet<QObject *> packageImport READ packageImport)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [PackageableElement]
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [Type]
+ Q_PROPERTY(QObject * package READ package)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [TemplateableElement]
+ Q_PROPERTY(QSet<QObject *> templateBinding READ templateBinding)
+
+ // Properties [Classifier]
+ Q_PROPERTY(QSet<QObject *> attribute READ attribute)
+ Q_PROPERTY(QSet<QObject *> collaborationUse READ collaborationUse)
+ Q_PROPERTY(QSet<QObject *> feature READ feature)
+ Q_PROPERTY(QSet<QObject *> general READ general)
+ Q_PROPERTY(QSet<QObject *> generalization READ generalization)
+ Q_PROPERTY(QSet<QObject *> inheritedMember READ inheritedMember)
+ Q_PROPERTY(bool isAbstract READ isAbstract)
+ Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
+ Q_PROPERTY(QObject * ownedTemplateSignature READ ownedTemplateSignature)
+ Q_PROPERTY(QSet<QObject *> ownedUseCase READ ownedUseCase)
+ Q_PROPERTY(QSet<QObject *> powertypeExtent READ powertypeExtent)
+ Q_PROPERTY(QSet<QObject *> redefinedClassifier READ redefinedClassifier)
+ Q_PROPERTY(QObject * representation READ representation)
+ Q_PROPERTY(QSet<QObject *> substitution READ substitution)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+ Q_PROPERTY(QSet<QObject *> useCase READ useCase)
+
+ // Properties [BehavioredClassifier]
+ Q_PROPERTY(QObject * classifierBehavior READ classifierBehavior)
+ Q_PROPERTY(QSet<QObject *> interfaceRealization READ interfaceRealization)
+ Q_PROPERTY(QSet<QObject *> ownedBehavior READ ownedBehavior)
+
+ // Properties [UseCase]
+ Q_PROPERTY(QSet<QObject *> extend READ extend)
+ Q_PROPERTY(QSet<QObject *> extensionPoint READ extensionPoint)
+ Q_PROPERTY(QSet<QObject *> include READ include)
+ Q_PROPERTY(QSet<QObject *> subject READ subject)
+
+public:
+ Q_INVOKABLE explicit QUmlUseCaseObject(QUmlUseCase *qModelingObject);
+ virtual ~QUmlUseCaseObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+
+ // Owned attributes [Namespace]
+ Q_INVOKABLE const QSet<QObject *> elementImport() const;
+ Q_INVOKABLE const QSet<QObject *> importedMember() const;
+ Q_INVOKABLE const QSet<QObject *> member() const;
+ Q_INVOKABLE const QSet<QObject *> ownedMember() const;
+ Q_INVOKABLE const QSet<QObject *> ownedRule() const;
+ Q_INVOKABLE const QSet<QObject *> packageImport() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [PackageableElement]
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [Type]
+ Q_INVOKABLE QObject *package() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [TemplateableElement]
+ Q_INVOKABLE const QSet<QObject *> templateBinding() const;
+
+ // Owned attributes [Classifier]
+ Q_INVOKABLE const QSet<QObject *> attribute() const;
+ Q_INVOKABLE const QSet<QObject *> collaborationUse() const;
+ Q_INVOKABLE const QSet<QObject *> feature() const;
+ Q_INVOKABLE const QSet<QObject *> general() const;
+ Q_INVOKABLE const QSet<QObject *> generalization() const;
+ Q_INVOKABLE const QSet<QObject *> inheritedMember() const;
+ Q_INVOKABLE bool isAbstract() const;
+ Q_INVOKABLE bool isFinalSpecialization() const;
+ Q_INVOKABLE QObject *ownedTemplateSignature() const;
+ Q_INVOKABLE const QSet<QObject *> ownedUseCase() const;
+ Q_INVOKABLE const QSet<QObject *> powertypeExtent() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedClassifier() const;
+ Q_INVOKABLE QObject *representation() const;
+ Q_INVOKABLE const QSet<QObject *> substitution() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+ Q_INVOKABLE const QSet<QObject *> useCase() const;
+
+ // Owned attributes [BehavioredClassifier]
+ Q_INVOKABLE QObject *classifierBehavior() const;
+ Q_INVOKABLE const QSet<QObject *> interfaceRealization() const;
+ Q_INVOKABLE const QSet<QObject *> ownedBehavior() const;
+
+ // Owned attributes [UseCase]
+ Q_INVOKABLE const QSet<QObject *> extend() const;
+ Q_INVOKABLE const QSet<QObject *> extensionPoint() const;
+ Q_INVOKABLE const QSet<QObject *> include() const;
+ Q_INVOKABLE const QSet<QObject *> subject() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [Namespace]
+ Q_INVOKABLE QSet<QObject *> excludeCollisions(QSet<QObject *> imps) const;
+ Q_INVOKABLE QSet<QString> getNamesOfMember(QObject *element) const;
+ Q_INVOKABLE QSet<QObject *> importMembers(QSet<QObject *> imps) const;
+ Q_INVOKABLE bool membersAreDistinguishable() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Type]
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+ // Operations [TemplateableElement]
+ Q_INVOKABLE QSet<QObject *> parameterableElements() const;
+
+ // Operations [Classifier]
+ Q_INVOKABLE QSet<QObject *> allFeatures() const;
+ Q_INVOKABLE QSet<QObject *> allParents() const;
+ Q_INVOKABLE bool conformsTo(QObject *other) const;
+ Q_INVOKABLE bool hasVisibilityOf(QObject *n) const;
+ Q_INVOKABLE QSet<QObject *> inherit(QSet<QObject *> inhs) const;
+ Q_INVOKABLE QSet<QObject *> inheritableMembers(QObject *c) const;
+ Q_INVOKABLE bool isTemplate() const;
+ Q_INVOKABLE bool maySpecializeType(QObject *c) const;
+ Q_INVOKABLE QSet<QObject *> parents() const;
+
+ // Operations [UseCase]
+ Q_INVOKABLE QSet<QObject *> allIncludedUseCases() const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+
+ // Slots for owned attributes [Namespace]
+ void addElementImport(QObject *elementImport);
+ void removeElementImport(QObject *elementImport);
+ void Q_DECL_HIDDEN addImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN removeImportedMember(QObject *importedMember);
+ void Q_DECL_HIDDEN addMember(QObject *member);
+ void Q_DECL_HIDDEN removeMember(QObject *member);
+ void Q_DECL_HIDDEN addOwnedMember(QObject *ownedMember);
+ void Q_DECL_HIDDEN removeOwnedMember(QObject *ownedMember);
+ void addOwnedRule(QObject *ownedRule);
+ void removeOwnedRule(QObject *ownedRule);
+ void addPackageImport(QObject *packageImport);
+ void removePackageImport(QObject *packageImport);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [PackageableElement]
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [Type]
+ void setPackage(QObject *package = 0);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [TemplateableElement]
+ void addTemplateBinding(QObject *templateBinding);
+ void removeTemplateBinding(QObject *templateBinding);
+
+ // Slots for owned attributes [Classifier]
+ void Q_DECL_HIDDEN addAttribute(QObject *attribute);
+ void Q_DECL_HIDDEN removeAttribute(QObject *attribute);
+ void addCollaborationUse(QObject *collaborationUse);
+ void removeCollaborationUse(QObject *collaborationUse);
+ void Q_DECL_HIDDEN addFeature(QObject *feature);
+ void Q_DECL_HIDDEN removeFeature(QObject *feature);
+ void addGeneral(QObject *general);
+ void removeGeneral(QObject *general);
+ void addGeneralization(QObject *generalization);
+ void removeGeneralization(QObject *generalization);
+ void Q_DECL_HIDDEN addInheritedMember(QObject *inheritedMember);
+ void Q_DECL_HIDDEN removeInheritedMember(QObject *inheritedMember);
+ void setAbstract(bool isAbstract);
+ void setFinalSpecialization(bool isFinalSpecialization);
+ void setOwnedTemplateSignature(QObject *ownedTemplateSignature = 0);
+ void addOwnedUseCase(QObject *ownedUseCase);
+ void removeOwnedUseCase(QObject *ownedUseCase);
+ void addPowertypeExtent(QObject *powertypeExtent);
+ void removePowertypeExtent(QObject *powertypeExtent);
+ void addRedefinedClassifier(QObject *redefinedClassifier);
+ void removeRedefinedClassifier(QObject *redefinedClassifier);
+ void setRepresentation(QObject *representation = 0);
+ void addSubstitution(QObject *substitution);
+ void removeSubstitution(QObject *substitution);
+ void setTemplateParameter(QObject *templateParameter = 0);
+ void addUseCase(QObject *useCase);
+ void removeUseCase(QObject *useCase);
+
+ // Slots for owned attributes [BehavioredClassifier]
+ void setClassifierBehavior(QObject *classifierBehavior = 0);
+ void addInterfaceRealization(QObject *interfaceRealization);
+ void removeInterfaceRealization(QObject *interfaceRealization);
+ void addOwnedBehavior(QObject *ownedBehavior);
+ void removeOwnedBehavior(QObject *ownedBehavior);
+
+ // Slots for owned attributes [UseCase]
+ void addExtend(QObject *extend);
+ void removeExtend(QObject *extend);
+ void addExtensionPoint(QObject *extensionPoint);
+ void removeExtensionPoint(QObject *extensionPoint);
+ void addInclude(QObject *include);
+ void removeInclude(QObject *include);
+ void addSubject(QObject *subject);
+ void removeSubject(QObject *subject);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLUSECASEOBJECT_H
+
diff --git a/src/uml/qobjects/qumlvaluepinobject.cpp b/src/uml/qobjects/qumlvaluepinobject.cpp
new file mode 100644
index 00000000..6dbc21c0
--- /dev/null
+++ b/src/uml/qobjects/qumlvaluepinobject.cpp
@@ -0,0 +1,646 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlvaluepinobject_p.h"
+
+#include <QtUml/QUmlValuePin>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlState>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlValuePinObject::QUmlValuePinObject(QUmlValuePin *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlValuePinObject::~QUmlValuePinObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlValuePinObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValuePinObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlValuePinObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlValuePinObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isOrdered();
+}
+
+bool QUmlValuePinObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isUnique();
+}
+
+int QUmlValuePinObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->lower();
+}
+
+QObject *QUmlValuePinObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlValuePinObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->upper();
+}
+
+QObject *QUmlValuePinObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlValuePinObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlValuePinObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->name();
+}
+
+QObject *QUmlValuePinObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlValuePinObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlValuePinObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlValuePinObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlValuePinObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlValuePinObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValuePinObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlValuePinObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlValuePinObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValuePinObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValuePinObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlValuePinObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlValuePinObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValuePinObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValuePinObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlValuePinObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ObjectNode]
+
+const QSet<QObject *> QUmlValuePinObject::inState() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlState *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->inState())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlValuePinObject::isControlType() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isControlType();
+}
+
+QtUml::ObjectNodeOrderingKind QUmlValuePinObject::ordering() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->ordering();
+}
+
+QObject *QUmlValuePinObject::selection() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->selection()->asQObject();
+}
+
+QObject *QUmlValuePinObject::upperBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->upperBound()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Pin]
+
+bool QUmlValuePinObject::isControl() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isControl();
+}
+
+// OWNED ATTRIBUTES [ValuePin]
+
+QObject *QUmlValuePinObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->value()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlValuePinObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlValuePinObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlValuePinObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlValuePinObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->includesCardinality(C);
+}
+
+bool QUmlValuePinObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlValuePinObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlValuePinObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isMultivalued();
+}
+
+int QUmlValuePinObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->lowerBound();
+}
+
+//int QUmlValuePinObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->upperBound();
+//}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlValuePinObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlValuePinObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlValuePin *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlValuePinObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlValuePinObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlValuePinObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlValuePinObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlValuePin *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlValuePinObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlValuePinObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlValuePinObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlValuePinObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlValuePinObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlValuePinObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlValuePinObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setUnique(isUnique);
+}
+
+void QUmlValuePinObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setLower(lower);
+}
+
+void QUmlValuePinObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlValuePinObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setUpper(upper);
+}
+
+void QUmlValuePinObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlValuePinObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlValuePinObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlValuePinObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setName(name);
+}
+
+void QUmlValuePinObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlValuePinObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlValuePinObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlValuePinObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlValuePinObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlValuePinObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlValuePinObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlValuePinObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlValuePinObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlValuePinObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlValuePinObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlValuePinObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlValuePinObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlValuePinObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlValuePinObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlValuePinObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlValuePinObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlValuePinObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlValuePinObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlValuePinObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlValuePinObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlValuePinObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlValuePinObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlValuePinObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
+
+void QUmlValuePinObject::addInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->addInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlValuePinObject::removeInState(QObject *inState)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->removeInState(qmodelingobjectproperty_cast<QUmlState *>(inState));
+}
+
+void QUmlValuePinObject::setControlType(bool isControlType)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setControlType(isControlType);
+}
+
+void QUmlValuePinObject::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setOrdering(ordering);
+}
+
+void QUmlValuePinObject::setSelection(QObject *selection)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setSelection(qmodelingobjectproperty_cast<QUmlBehavior *>(selection));
+}
+
+void QUmlValuePinObject::setUpperBound(QObject *upperBound)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setUpperBound(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperBound));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Pin]
+
+void QUmlValuePinObject::setControl(bool isControl)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setControl(isControl);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ValuePin]
+
+void QUmlValuePinObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlValuePin *>(this)->setValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(value));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlvaluepinobject_p.h b/src/uml/qobjects/qumlvaluepinobject_p.h
new file mode 100644
index 00000000..11e60ca8
--- /dev/null
+++ b/src/uml/qobjects/qumlvaluepinobject_p.h
@@ -0,0 +1,264 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLVALUEPINOBJECT_H
+#define QUMLVALUEPINOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlValuePin;
+class Q_UML_EXPORT QUmlValuePinObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ObjectNode]
+ Q_PROPERTY(QSet<QObject *> inState READ inState)
+ Q_PROPERTY(bool isControlType READ isControlType)
+ Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
+ Q_PROPERTY(QObject * selection READ selection)
+ Q_PROPERTY(QObject * upperBound READ upperBound)
+
+ // Properties [Pin]
+ Q_PROPERTY(bool isControl READ isControl)
+
+ // Properties [ValuePin]
+ Q_PROPERTY(QObject * value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlValuePinObject(QUmlValuePin *qModelingObject);
+ virtual ~QUmlValuePinObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ObjectNode]
+ Q_INVOKABLE const QSet<QObject *> inState() const;
+ Q_INVOKABLE bool isControlType() const;
+ Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
+ Q_INVOKABLE QObject *selection() const;
+ Q_INVOKABLE QObject *upperBound() const;
+
+ // Owned attributes [Pin]
+ Q_INVOKABLE bool isControl() const;
+
+ // Owned attributes [ValuePin]
+ Q_INVOKABLE QObject *value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ObjectNode]
+ void addInState(QObject *inState);
+ void removeInState(QObject *inState);
+ void setControlType(bool isControlType);
+ void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ void setSelection(QObject *selection = 0);
+ void setUpperBound(QObject *upperBound = 0);
+
+ // Slots for owned attributes [Pin]
+ void setControl(bool isControl);
+
+ // Slots for owned attributes [ValuePin]
+ void setValue(QObject *value = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLVALUEPINOBJECT_H
+
diff --git a/src/uml/qobjects/qumlvaluespecificationactionobject.cpp b/src/uml/qobjects/qumlvaluespecificationactionobject.cpp
new file mode 100644
index 00000000..7689cf0d
--- /dev/null
+++ b/src/uml/qobjects/qumlvaluespecificationactionobject.cpp
@@ -0,0 +1,583 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlvaluespecificationactionobject_p.h"
+
+#include <QtUml/QUmlValueSpecificationAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlActivityEdge>
+#include <QtUml/QUmlActivityGroup>
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlActivityPartition>
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConstraint>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlExceptionHandler>
+#include <QtUml/QUmlInputPin>
+#include <QtUml/QUmlInterruptibleActivityRegion>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlOutputPin>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlValueSpecificationActionObject::QUmlValueSpecificationActionObject(QUmlValueSpecificationAction *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlValueSpecificationActionObject::~QUmlValueSpecificationActionObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlValueSpecificationActionObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlValueSpecificationActionObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->name();
+}
+
+QObject *QUmlValueSpecificationActionObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlValueSpecificationActionObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlValueSpecificationActionObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlValueSpecificationActionObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [RedefinableElement]
+
+bool QUmlValueSpecificationActionObject::isLeaf() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->isLeaf();
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::redefinedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlRedefinableElement *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->redefinedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::redefinitionContext() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlClassifier *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->redefinitionContext())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ActivityNode]
+
+QObject *QUmlValueSpecificationActionObject::activity() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->activity()->asQObject();
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::inGroup() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityGroup *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->inGroup())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::inInterruptibleRegion() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlInterruptibleActivityRegion *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->inInterruptibleRegion())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::inPartition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityPartition *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->inPartition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlValueSpecificationActionObject::inStructuredNode() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->inStructuredNode()->asQObject();
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::incoming() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->incoming())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::outgoing() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityEdge *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->outgoing())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::redefinedNode() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlActivityNode *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->redefinedNode())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [ExecutableNode]
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::handler() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlExceptionHandler *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->handler())
+ set.insert(element->asQObject());
+ return set;
+}
+
+// OWNED ATTRIBUTES [Action]
+
+QObject *QUmlValueSpecificationActionObject::context() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->context()->asQObject();
+}
+
+const QList<QObject *> QUmlValueSpecificationActionObject::input() const
+{
+ QList<QObject *> list;
+ foreach (QUmlInputPin *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->input())
+ list.append(element->asQObject());
+ return list;
+}
+
+bool QUmlValueSpecificationActionObject::isLocallyReentrant() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->isLocallyReentrant();
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::localPostcondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->localPostcondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlValueSpecificationActionObject::localPrecondition() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlConstraint *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->localPrecondition())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QList<QObject *> QUmlValueSpecificationActionObject::output() const
+{
+ QList<QObject *> list;
+ foreach (QUmlOutputPin *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->output())
+ list.append(element->asQObject());
+ return list;
+}
+
+// OWNED ATTRIBUTES [ValueSpecificationAction]
+
+QObject *QUmlValueSpecificationActionObject::result() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->result()->asQObject();
+}
+
+QObject *QUmlValueSpecificationActionObject::value() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->value()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlValueSpecificationActionObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlValueSpecificationActionObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlValueSpecificationActionObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlValueSpecificationActionObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlValueSpecificationActionObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlValueSpecificationActionObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->separator();
+}
+
+// OPERATIONS [RedefinableElement]
+
+bool QUmlValueSpecificationActionObject::isConsistentWith(QObject *redefinee) const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->isConsistentWith(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinee));
+}
+
+bool QUmlValueSpecificationActionObject::isRedefinitionContextValid(QObject *redefined) const
+{
+ return qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->isRedefinitionContextValid(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefined));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlValueSpecificationActionObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlValueSpecificationActionObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlValueSpecificationActionObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlValueSpecificationActionObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlValueSpecificationActionObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlValueSpecificationActionObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlValueSpecificationActionObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlValueSpecificationActionObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setName(name);
+}
+
+void QUmlValueSpecificationActionObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlValueSpecificationActionObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlValueSpecificationActionObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlValueSpecificationActionObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+
+void QUmlValueSpecificationActionObject::setLeaf(bool isLeaf)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setLeaf(isLeaf);
+}
+
+void QUmlValueSpecificationActionObject::addRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlValueSpecificationActionObject::removeRedefinedElement(QObject *redefinedElement)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeRedefinedElement(qmodelingobjectproperty_cast<QUmlRedefinableElement *>(redefinedElement));
+}
+
+void QUmlValueSpecificationActionObject::addRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+void QUmlValueSpecificationActionObject::removeRedefinitionContext(QObject *redefinitionContext)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeRedefinitionContext(qmodelingobjectproperty_cast<QUmlClassifier *>(redefinitionContext));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+
+void QUmlValueSpecificationActionObject::setActivity(QObject *activity)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setActivity(qmodelingobjectproperty_cast<QUmlActivity *>(activity));
+}
+
+void QUmlValueSpecificationActionObject::addInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlValueSpecificationActionObject::removeInGroup(QObject *inGroup)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeInGroup(qmodelingobjectproperty_cast<QUmlActivityGroup *>(inGroup));
+}
+
+void QUmlValueSpecificationActionObject::addInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlValueSpecificationActionObject::removeInInterruptibleRegion(QObject *inInterruptibleRegion)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeInInterruptibleRegion(qmodelingobjectproperty_cast<QUmlInterruptibleActivityRegion *>(inInterruptibleRegion));
+}
+
+void QUmlValueSpecificationActionObject::addInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlValueSpecificationActionObject::removeInPartition(QObject *inPartition)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeInPartition(qmodelingobjectproperty_cast<QUmlActivityPartition *>(inPartition));
+}
+
+void QUmlValueSpecificationActionObject::setInStructuredNode(QObject *inStructuredNode)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setInStructuredNode(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(inStructuredNode));
+}
+
+void QUmlValueSpecificationActionObject::addIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlValueSpecificationActionObject::removeIncoming(QObject *incoming)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeIncoming(qmodelingobjectproperty_cast<QUmlActivityEdge *>(incoming));
+}
+
+void QUmlValueSpecificationActionObject::addOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlValueSpecificationActionObject::removeOutgoing(QObject *outgoing)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeOutgoing(qmodelingobjectproperty_cast<QUmlActivityEdge *>(outgoing));
+}
+
+void QUmlValueSpecificationActionObject::addRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+void QUmlValueSpecificationActionObject::removeRedefinedNode(QObject *redefinedNode)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeRedefinedNode(qmodelingobjectproperty_cast<QUmlActivityNode *>(redefinedNode));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+
+void QUmlValueSpecificationActionObject::addHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+void QUmlValueSpecificationActionObject::removeHandler(QObject *handler)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeHandler(qmodelingobjectproperty_cast<QUmlExceptionHandler *>(handler));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Action]
+
+void QUmlValueSpecificationActionObject::setContext(QObject *context)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setContext(qmodelingobjectproperty_cast<QUmlClassifier *>(context));
+}
+
+void QUmlValueSpecificationActionObject::addInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlValueSpecificationActionObject::removeInput(QObject *input)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeInput(qmodelingobjectproperty_cast<QUmlInputPin *>(input));
+}
+
+void QUmlValueSpecificationActionObject::setLocallyReentrant(bool isLocallyReentrant)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setLocallyReentrant(isLocallyReentrant);
+}
+
+void QUmlValueSpecificationActionObject::addLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlValueSpecificationActionObject::removeLocalPostcondition(QObject *localPostcondition)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeLocalPostcondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPostcondition));
+}
+
+void QUmlValueSpecificationActionObject::addLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlValueSpecificationActionObject::removeLocalPrecondition(QObject *localPrecondition)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeLocalPrecondition(qmodelingobjectproperty_cast<QUmlConstraint *>(localPrecondition));
+}
+
+void QUmlValueSpecificationActionObject::addOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->addOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+void QUmlValueSpecificationActionObject::removeOutput(QObject *output)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->removeOutput(qmodelingobjectproperty_cast<QUmlOutputPin *>(output));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ValueSpecificationAction]
+
+void QUmlValueSpecificationActionObject::setResult(QObject *result)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setResult(qmodelingobjectproperty_cast<QUmlOutputPin *>(result));
+}
+
+void QUmlValueSpecificationActionObject::setValue(QObject *value)
+{
+ qmodelingobjectproperty_cast<QUmlValueSpecificationAction *>(this)->setValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(value));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlvaluespecificationactionobject_p.h b/src/uml/qobjects/qumlvaluespecificationactionobject_p.h
new file mode 100644
index 00000000..cf9f64a7
--- /dev/null
+++ b/src/uml/qobjects/qumlvaluespecificationactionobject_p.h
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLVALUESPECIFICATIONACTIONOBJECT_H
+#define QUMLVALUESPECIFICATIONACTIONOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlValueSpecificationAction;
+class Q_UML_EXPORT QUmlValueSpecificationActionObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [RedefinableElement]
+ Q_PROPERTY(bool isLeaf READ isLeaf)
+ Q_PROPERTY(QSet<QObject *> redefinedElement READ redefinedElement)
+ Q_PROPERTY(QSet<QObject *> redefinitionContext READ redefinitionContext)
+
+ // Properties [ActivityNode]
+ Q_PROPERTY(QObject * activity READ activity)
+ Q_PROPERTY(QSet<QObject *> inGroup READ inGroup)
+ Q_PROPERTY(QSet<QObject *> inInterruptibleRegion READ inInterruptibleRegion)
+ Q_PROPERTY(QSet<QObject *> inPartition READ inPartition)
+ Q_PROPERTY(QObject * inStructuredNode READ inStructuredNode)
+ Q_PROPERTY(QSet<QObject *> incoming READ incoming)
+ Q_PROPERTY(QSet<QObject *> outgoing READ outgoing)
+ Q_PROPERTY(QSet<QObject *> redefinedNode READ redefinedNode)
+
+ // Properties [ExecutableNode]
+ Q_PROPERTY(QSet<QObject *> handler READ handler)
+
+ // Properties [Action]
+ Q_PROPERTY(QObject * context READ context)
+ Q_PROPERTY(QList<QObject *> input READ input)
+ Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
+ Q_PROPERTY(QSet<QObject *> localPostcondition READ localPostcondition)
+ Q_PROPERTY(QSet<QObject *> localPrecondition READ localPrecondition)
+ Q_PROPERTY(QList<QObject *> output READ output)
+
+ // Properties [ValueSpecificationAction]
+ Q_PROPERTY(QObject * result READ result)
+ Q_PROPERTY(QObject * value READ value)
+
+public:
+ Q_INVOKABLE explicit QUmlValueSpecificationActionObject(QUmlValueSpecificationAction *qModelingObject);
+ virtual ~QUmlValueSpecificationActionObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [RedefinableElement]
+ Q_INVOKABLE bool isLeaf() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedElement() const;
+ Q_INVOKABLE const QSet<QObject *> redefinitionContext() const;
+
+ // Owned attributes [ActivityNode]
+ Q_INVOKABLE QObject *activity() const;
+ Q_INVOKABLE const QSet<QObject *> inGroup() const;
+ Q_INVOKABLE const QSet<QObject *> inInterruptibleRegion() const;
+ Q_INVOKABLE const QSet<QObject *> inPartition() const;
+ Q_INVOKABLE QObject *inStructuredNode() const;
+ Q_INVOKABLE const QSet<QObject *> incoming() const;
+ Q_INVOKABLE const QSet<QObject *> outgoing() const;
+ Q_INVOKABLE const QSet<QObject *> redefinedNode() const;
+
+ // Owned attributes [ExecutableNode]
+ Q_INVOKABLE const QSet<QObject *> handler() const;
+
+ // Owned attributes [Action]
+ Q_INVOKABLE QObject *context() const;
+ Q_INVOKABLE const QList<QObject *> input() const;
+ Q_INVOKABLE bool isLocallyReentrant() const;
+ Q_INVOKABLE const QSet<QObject *> localPostcondition() const;
+ Q_INVOKABLE const QSet<QObject *> localPrecondition() const;
+ Q_INVOKABLE const QList<QObject *> output() const;
+
+ // Owned attributes [ValueSpecificationAction]
+ Q_INVOKABLE QObject *result() const;
+ Q_INVOKABLE QObject *value() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [RedefinableElement]
+ Q_INVOKABLE bool isConsistentWith(QObject *redefinee) const;
+ Q_INVOKABLE bool isRedefinitionContextValid(QObject *redefined) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [RedefinableElement]
+ void setLeaf(bool isLeaf);
+ void Q_DECL_HIDDEN addRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN removeRedefinedElement(QObject *redefinedElement);
+ void Q_DECL_HIDDEN addRedefinitionContext(QObject *redefinitionContext);
+ void Q_DECL_HIDDEN removeRedefinitionContext(QObject *redefinitionContext);
+
+ // Slots for owned attributes [ActivityNode]
+ void setActivity(QObject *activity = 0);
+ void Q_DECL_HIDDEN addInGroup(QObject *inGroup);
+ void Q_DECL_HIDDEN removeInGroup(QObject *inGroup);
+ void addInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QObject *inInterruptibleRegion);
+ void addInPartition(QObject *inPartition);
+ void removeInPartition(QObject *inPartition);
+ void setInStructuredNode(QObject *inStructuredNode = 0);
+ void addIncoming(QObject *incoming);
+ void removeIncoming(QObject *incoming);
+ void addOutgoing(QObject *outgoing);
+ void removeOutgoing(QObject *outgoing);
+ void addRedefinedNode(QObject *redefinedNode);
+ void removeRedefinedNode(QObject *redefinedNode);
+
+ // Slots for owned attributes [ExecutableNode]
+ void addHandler(QObject *handler);
+ void removeHandler(QObject *handler);
+
+ // Slots for owned attributes [Action]
+ void Q_DECL_HIDDEN setContext(QObject *context = 0);
+ void Q_DECL_HIDDEN addInput(QObject *input);
+ void Q_DECL_HIDDEN removeInput(QObject *input);
+ void setLocallyReentrant(bool isLocallyReentrant);
+ void addLocalPostcondition(QObject *localPostcondition);
+ void removeLocalPostcondition(QObject *localPostcondition);
+ void addLocalPrecondition(QObject *localPrecondition);
+ void removeLocalPrecondition(QObject *localPrecondition);
+ void Q_DECL_HIDDEN addOutput(QObject *output);
+ void Q_DECL_HIDDEN removeOutput(QObject *output);
+
+ // Slots for owned attributes [ValueSpecificationAction]
+ void setResult(QObject *result = 0);
+ void setValue(QObject *value = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLVALUESPECIFICATIONACTIONOBJECT_H
+
diff --git a/src/uml/qobjects/qumlvariableobject.cpp b/src/uml/qobjects/qumlvariableobject.cpp
new file mode 100644
index 00000000..7ae3bd8e
--- /dev/null
+++ b/src/uml/qobjects/qumlvariableobject.cpp
@@ -0,0 +1,445 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "qumlvariableobject_p.h"
+
+#include <QtUml/QUmlVariable>
+#include <QtUml/QUmlAction>
+#include <QtUml/QUmlActivity>
+#include <QtUml/QUmlComment>
+#include <QtUml/QUmlConnectableElementTemplateParameter>
+#include <QtUml/QUmlConnectorEnd>
+#include <QtUml/QUmlDependency>
+#include <QtUml/QUmlElement>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlNamedElement>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackage>
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlStringExpression>
+#include <QtUml/QUmlStructuredActivityNode>
+#include <QtUml/QUmlTemplateParameter>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlValueSpecification>
+
+QT_BEGIN_NAMESPACE
+
+QUmlVariableObject::QUmlVariableObject(QUmlVariable *qModelingObject)
+{
+ setProperty("modelingObject", QVariant::fromValue(qModelingObject));
+}
+
+QUmlVariableObject::~QUmlVariableObject()
+{
+ if (!property("deletingFromModelingObject").isValid()) {
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->deletingFromQObject = true;
+ delete qmodelingobjectproperty_cast<QUmlComment *>(this);
+ }
+}
+
+// OWNED ATTRIBUTES [Element]
+
+const QSet<QObject *> QUmlVariableObject::ownedComment() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlComment *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->ownedComment())
+ set.insert(element->asQObject());
+ return set;
+}
+
+const QSet<QObject *> QUmlVariableObject::ownedElement() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->ownedElement())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QObject *QUmlVariableObject::owner() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->owner()->asQObject();
+}
+
+// OWNED ATTRIBUTES [MultiplicityElement]
+
+bool QUmlVariableObject::isOrdered() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isOrdered();
+}
+
+bool QUmlVariableObject::isUnique() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isUnique();
+}
+
+int QUmlVariableObject::lower() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->lower();
+}
+
+QObject *QUmlVariableObject::lowerValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->lowerValue()->asQObject();
+}
+
+int QUmlVariableObject::upper() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->upper();
+}
+
+QObject *QUmlVariableObject::upperValue() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->upperValue()->asQObject();
+}
+
+// OWNED ATTRIBUTES [NamedElement]
+
+const QSet<QObject *> QUmlVariableObject::clientDependency() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlDependency *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->clientDependency())
+ set.insert(element->asQObject());
+ return set;
+}
+
+QString QUmlVariableObject::name() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->name();
+}
+
+QObject *QUmlVariableObject::nameExpression() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->nameExpression()->asQObject();
+}
+
+QObject *QUmlVariableObject::namespace_() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->namespace_()->asQObject();
+}
+
+QString QUmlVariableObject::qualifiedName() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->qualifiedName();
+}
+
+QtUml::VisibilityKind QUmlVariableObject::visibility() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->visibility();
+}
+
+// OWNED ATTRIBUTES [TypedElement]
+
+QObject *QUmlVariableObject::type() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->type()->asQObject();
+}
+
+// OWNED ATTRIBUTES [ParameterableElement]
+
+QObject *QUmlVariableObject::owningTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->owningTemplateParameter()->asQObject();
+}
+// OWNED ATTRIBUTES [ConnectableElement]
+
+const QList<QObject *> QUmlVariableObject::end() const
+{
+ QList<QObject *> list;
+ foreach (QUmlConnectorEnd *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->end())
+ list.append(element->asQObject());
+ return list;
+}
+
+QObject *QUmlVariableObject::templateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->templateParameter()->asQObject();
+}
+
+// OWNED ATTRIBUTES [Variable]
+
+QObject *QUmlVariableObject::activityScope() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->activityScope()->asQObject();
+}
+
+QObject *QUmlVariableObject::scope() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->scope()->asQObject();
+}
+
+// OPERATIONS [Element]
+
+QSet<QObject *> QUmlVariableObject::allOwnedElements() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlElement *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->allOwnedElements())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlVariableObject::mustBeOwned() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->mustBeOwned();
+}
+
+// OPERATIONS [MultiplicityElement]
+
+bool QUmlVariableObject::compatibleWith(QObject *other) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->compatibleWith(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(other));
+}
+
+bool QUmlVariableObject::includesCardinality(int C) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->includesCardinality(C);
+}
+
+bool QUmlVariableObject::includesMultiplicity(QObject *M) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->includesMultiplicity(qmodelingobjectproperty_cast<QUmlMultiplicityElement *>(M));
+}
+
+bool QUmlVariableObject::is(int lowerbound, int upperbound) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->is(lowerbound, upperbound);
+}
+
+bool QUmlVariableObject::isMultivalued() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isMultivalued();
+}
+
+int QUmlVariableObject::lowerBound() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->lowerBound();
+}
+
+//int QUmlVariableObject::upperBound() const
+//{
+// return qmodelingobjectproperty_cast<QUmlVariable *>(this)->upperBound();
+//}
+
+// OPERATIONS [NamedElement]
+
+QList<QObject *> QUmlVariableObject::allNamespaces() const
+{
+ QList<QObject *> set;
+ foreach (QUmlNamespace *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->allNamespaces())
+ set.append(element->asQObject());
+ return set;
+}
+
+QSet<QObject *> QUmlVariableObject::allOwningPackages() const
+{
+ QSet<QObject *> set;
+ foreach (QUmlPackage *element, qmodelingobjectproperty_cast<QUmlVariable *>(this)->allOwningPackages())
+ set.insert(element->asQObject());
+ return set;
+}
+
+bool QUmlVariableObject::isDistinguishableFrom(QObject *n, QObject *ns) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isDistinguishableFrom(qmodelingobjectproperty_cast<QUmlNamedElement *>(n), qmodelingobjectproperty_cast<QUmlNamespace *>(ns));
+}
+
+QString QUmlVariableObject::separator() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->separator();
+}
+
+// OPERATIONS [ParameterableElement]
+
+bool QUmlVariableObject::isCompatibleWith(QObject *p) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isCompatibleWith(qmodelingobjectproperty_cast<QUmlParameterableElement *>(p));
+}
+
+bool QUmlVariableObject::isTemplateParameter() const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isTemplateParameter();
+}
+
+// OPERATIONS [Variable]
+
+bool QUmlVariableObject::isAccessibleBy(QObject *a) const
+{
+ return qmodelingobjectproperty_cast<QUmlVariable *>(this)->isAccessibleBy(qmodelingobjectproperty_cast<QUmlAction *>(a));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Element]
+
+void QUmlVariableObject::addOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->addOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlVariableObject::removeOwnedComment(QObject *ownedComment)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->removeOwnedComment(qmodelingobjectproperty_cast<QUmlComment *>(ownedComment));
+}
+
+void QUmlVariableObject::addOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->addOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlVariableObject::removeOwnedElement(QObject *ownedElement)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->removeOwnedElement(qmodelingobjectproperty_cast<QUmlElement *>(ownedElement));
+}
+
+void QUmlVariableObject::setOwner(QObject *owner)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setOwner(qmodelingobjectproperty_cast<QUmlElement *>(owner));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+
+void QUmlVariableObject::setOrdered(bool isOrdered)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setOrdered(isOrdered);
+}
+
+void QUmlVariableObject::setUnique(bool isUnique)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setUnique(isUnique);
+}
+
+void QUmlVariableObject::setLower(int lower)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setLower(lower);
+}
+
+void QUmlVariableObject::setLowerValue(QObject *lowerValue)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setLowerValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(lowerValue));
+}
+
+void QUmlVariableObject::setUpper(int upper)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setUpper(upper);
+}
+
+void QUmlVariableObject::setUpperValue(QObject *upperValue)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setUpperValue(qmodelingobjectproperty_cast<QUmlValueSpecification *>(upperValue));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+
+void QUmlVariableObject::addClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->addClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlVariableObject::removeClientDependency(QObject *clientDependency)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->removeClientDependency(qmodelingobjectproperty_cast<QUmlDependency *>(clientDependency));
+}
+
+void QUmlVariableObject::setName(QString name)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setName(name);
+}
+
+void QUmlVariableObject::setNameExpression(QObject *nameExpression)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setNameExpression(qmodelingobjectproperty_cast<QUmlStringExpression *>(nameExpression));
+}
+
+void QUmlVariableObject::setNamespace(QObject *namespace_)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setNamespace(qmodelingobjectproperty_cast<QUmlNamespace *>(namespace_));
+}
+
+void QUmlVariableObject::setQualifiedName(QString qualifiedName)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setQualifiedName(qualifiedName);
+}
+
+void QUmlVariableObject::setVisibility(QtUml::VisibilityKind visibility)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setVisibility(visibility);
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
+
+void QUmlVariableObject::setType(QObject *type)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setType(qmodelingobjectproperty_cast<QUmlType *>(type));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+
+void QUmlVariableObject::setOwningTemplateParameter(QObject *owningTemplateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setOwningTemplateParameter(qmodelingobjectproperty_cast<QUmlTemplateParameter *>(owningTemplateParameter));
+}
+// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
+
+void QUmlVariableObject::addEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->addEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlVariableObject::removeEnd(QObject *end)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->removeEnd(qmodelingobjectproperty_cast<QUmlConnectorEnd *>(end));
+}
+
+void QUmlVariableObject::setTemplateParameter(QObject *templateParameter)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setTemplateParameter(qmodelingobjectproperty_cast<QUmlConnectableElementTemplateParameter *>(templateParameter));
+}
+
+// SLOTS FOR OWNED ATTRIBUTES [Variable]
+
+void QUmlVariableObject::setActivityScope(QObject *activityScope)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setActivityScope(qmodelingobjectproperty_cast<QUmlActivity *>(activityScope));
+}
+
+void QUmlVariableObject::setScope(QObject *scope)
+{
+ qmodelingobjectproperty_cast<QUmlVariable *>(this)->setScope(qmodelingobjectproperty_cast<QUmlStructuredActivityNode *>(scope));
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/uml/qobjects/qumlvariableobject_p.h b/src/uml/qobjects/qumlvariableobject_p.h
new file mode 100644
index 00000000..ec4f7f4b
--- /dev/null
+++ b/src/uml/qobjects/qumlvariableobject_p.h
@@ -0,0 +1,208 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Sandro S. Andrade <sandroandrade@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtUml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#ifndef QUMLVARIABLEOBJECT_H
+#define QUMLVARIABLEOBJECT_H
+
+#include <QtUml/QtUmlGlobal>
+
+#include <QtCore/QObject>
+
+#include <QtUml/QtUmlNamespace>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(QtUml)
+
+class QUmlVariable;
+class Q_UML_EXPORT QUmlVariableObject : public QObject
+{
+ Q_OBJECT
+
+ // Properties [Element]
+ Q_PROPERTY(QSet<QObject *> ownedComment READ ownedComment)
+ Q_PROPERTY(QSet<QObject *> ownedElement READ ownedElement)
+ Q_PROPERTY(QObject * owner READ owner)
+
+ // Properties [MultiplicityElement]
+ Q_PROPERTY(bool isOrdered READ isOrdered)
+ Q_PROPERTY(bool isUnique READ isUnique)
+ Q_PROPERTY(int lower READ lower)
+ Q_PROPERTY(QObject * lowerValue READ lowerValue)
+ Q_PROPERTY(int upper READ upper)
+ Q_PROPERTY(QObject * upperValue READ upperValue)
+
+ // Properties [NamedElement]
+ Q_PROPERTY(QSet<QObject *> clientDependency READ clientDependency)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QObject * nameExpression READ nameExpression)
+ Q_PROPERTY(QObject * namespace_ READ namespace_)
+ Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+
+ // Properties [TypedElement]
+ Q_PROPERTY(QObject * type READ type)
+
+ // Properties [ParameterableElement]
+ Q_PROPERTY(QObject * owningTemplateParameter READ owningTemplateParameter)
+
+ // Properties [ConnectableElement]
+ Q_PROPERTY(QList<QObject *> end READ end)
+ Q_PROPERTY(QObject * templateParameter READ templateParameter)
+
+ // Properties [Variable]
+ Q_PROPERTY(QObject * activityScope READ activityScope)
+ Q_PROPERTY(QObject * scope READ scope)
+
+public:
+ Q_INVOKABLE explicit QUmlVariableObject(QUmlVariable *qModelingObject);
+ virtual ~QUmlVariableObject();
+
+ // Owned attributes [Element]
+ Q_INVOKABLE const QSet<QObject *> ownedComment() const;
+ Q_INVOKABLE const QSet<QObject *> ownedElement() const;
+ Q_INVOKABLE QObject *owner() const;
+
+ // Owned attributes [MultiplicityElement]
+ Q_INVOKABLE bool isOrdered() const;
+ Q_INVOKABLE bool isUnique() const;
+ Q_INVOKABLE int lower() const;
+ Q_INVOKABLE QObject *lowerValue() const;
+ Q_INVOKABLE int upper() const;
+ Q_INVOKABLE QObject *upperValue() const;
+
+ // Owned attributes [NamedElement]
+ Q_INVOKABLE const QSet<QObject *> clientDependency() const;
+ Q_INVOKABLE QString name() const;
+ Q_INVOKABLE QObject *nameExpression() const;
+ Q_INVOKABLE QObject *namespace_() const;
+ Q_INVOKABLE QString qualifiedName() const;
+ Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+
+ // Owned attributes [TypedElement]
+ Q_INVOKABLE QObject *type() const;
+
+ // Owned attributes [ParameterableElement]
+ Q_INVOKABLE QObject *owningTemplateParameter() const;
+
+ // Owned attributes [ConnectableElement]
+ Q_INVOKABLE const QList<QObject *> end() const;
+ Q_INVOKABLE QObject *templateParameter() const;
+
+ // Owned attributes [Variable]
+ Q_INVOKABLE QObject *activityScope() const;
+ Q_INVOKABLE QObject *scope() const;
+
+ // Operations [Element]
+ Q_INVOKABLE QSet<QObject *> allOwnedElements() const;
+ Q_INVOKABLE bool mustBeOwned() const;
+
+ // Operations [MultiplicityElement]
+ Q_INVOKABLE bool compatibleWith(QObject *other) const;
+ Q_INVOKABLE bool includesCardinality(int C) const;
+ Q_INVOKABLE bool includesMultiplicity(QObject *M) const;
+ Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
+ Q_INVOKABLE bool isMultivalued() const;
+ Q_INVOKABLE int lowerBound() const;
+// Q_INVOKABLE int upperBound() const;
+
+ // Operations [NamedElement]
+ Q_INVOKABLE QList<QObject *> allNamespaces() const;
+ Q_INVOKABLE QSet<QObject *> allOwningPackages() const;
+ Q_INVOKABLE bool isDistinguishableFrom(QObject *n, QObject *ns) const;
+ Q_INVOKABLE QString separator() const;
+
+ // Operations [ParameterableElement]
+ Q_INVOKABLE bool isCompatibleWith(QObject *p) const;
+ Q_INVOKABLE bool isTemplateParameter() const;
+
+ // Operations [Variable]
+ Q_INVOKABLE bool isAccessibleBy(QObject *a) const;
+
+public Q_SLOTS:
+
+ // Slots for owned attributes [Element]
+ void addOwnedComment(QObject *ownedComment);
+ void removeOwnedComment(QObject *ownedComment);
+ void Q_DECL_HIDDEN addOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN removeOwnedElement(QObject *ownedElement);
+ void Q_DECL_HIDDEN setOwner(QObject *owner = 0);
+
+ // Slots for owned attributes [MultiplicityElement]
+ void setOrdered(bool isOrdered);
+ void setUnique(bool isUnique);
+ void setLower(int lower);
+ void setLowerValue(QObject *lowerValue = 0);
+ void setUpper(int upper);
+ void setUpperValue(QObject *upperValue = 0);
+
+ // Slots for owned attributes [NamedElement]
+ void addClientDependency(QObject *clientDependency);
+ void removeClientDependency(QObject *clientDependency);
+ void setName(QString name);
+ void setNameExpression(QObject *nameExpression = 0);
+ void Q_DECL_HIDDEN setNamespace(QObject *namespace_ = 0);
+ void Q_DECL_HIDDEN setQualifiedName(QString qualifiedName);
+ void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Slots for owned attributes [TypedElement]
+ void setType(QObject *type = 0);
+
+ // Slots for owned attributes [ParameterableElement]
+ void setOwningTemplateParameter(QObject *owningTemplateParameter = 0);
+
+ // Slots for owned attributes [ConnectableElement]
+ void Q_DECL_HIDDEN addEnd(QObject *end);
+ void Q_DECL_HIDDEN removeEnd(QObject *end);
+ void setTemplateParameter(QObject *templateParameter = 0);
+
+ // Slots for owned attributes [Variable]
+ void setActivityScope(QObject *activityScope = 0);
+ void setScope(QObject *scope = 0);
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QUMLVARIABLEOBJECT_H
+
diff --git a/src/uml/qumlabstraction.cpp b/src/uml/qumlabstraction.cpp
index e32789fc..b8e1a5a8 100644
--- a/src/uml/qumlabstraction.cpp
+++ b/src/uml/qumlabstraction.cpp
@@ -40,346 +40,63 @@
****************************************************************************/
#include "qumlabstraction.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOpaqueExpression>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumlabstractionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOpaqueExpression>
/*!
- \class UmlAbstraction
+ \class QUmlAbstraction
\inmodule QtUml
\brief 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.
*/
-
-QUmlAbstraction::QUmlAbstraction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAbstraction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAbstraction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAbstraction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlAbstraction::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlAbstraction::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAbstraction::clientDependency() const
+QUmlAbstraction::QUmlAbstraction(bool createQObject) :
+ QUmlDependency(false),
+ _mapping(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlAbstractionObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlAbstraction::name() const
+QUmlAbstraction::~QUmlAbstraction()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAbstraction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAbstraction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAbstraction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlAbstraction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlAbstraction::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlAbstraction::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlAbstraction::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlAbstraction::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlAbstraction::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Abstraction]
+// OWNED ATTRIBUTES
/*!
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.
*/
-QUmlOpaqueExpression *QUmlAbstraction::mapping() const
-{
- return reinterpret_cast<QUmlOpaqueExpression *>(_mapping);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAbstraction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAbstraction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlAbstraction::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlAbstraction::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAbstraction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAbstraction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAbstraction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlOpaqueExpression *
+QUmlAbstraction::mapping() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAbstraction::separator() const
-{
- return UmlNamedElement::separator();
+ return _mapping;
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAbstraction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAbstraction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlAbstraction::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlAbstraction::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAbstraction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAbstraction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAbstraction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAbstraction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlAbstraction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlAbstraction::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlAbstraction::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
-
-void QUmlAbstraction::addSupplier(UmlNamedElement *supplier)
+void QUmlAbstraction::setMapping(QUmlOpaqueExpression *mapping)
{
- UmlDependency::addSupplier(supplier);
-}
+ // This is a read-write association end
-void QUmlAbstraction::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
+ if (_mapping != mapping) {
+ // Adjust subsetted properties
+ removeOwnedElement(_mapping);
-// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+ _mapping = mapping;
+ if (mapping->asQObject() && this->asQObject())
+ QObject::connect(mapping->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMapping()));
+ mapping->asQObject()->setParent(this->asQObject());
-void QUmlAbstraction::setMapping(QUmlOpaqueExpression *mapping)
-{
- UmlAbstraction::setMapping(mapping);
+ // Adjust subsetted properties
+ if (mapping) {
+ addOwnedElement(mapping);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlabstraction.h b/src/uml/qumlabstraction.h
index 043c47cc..1d400a0f 100644
--- a/src/uml/qumlabstraction.h
+++ b/src/uml/qumlabstraction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlabstraction_p.h"
+#include <QtUml/QUmlDependency>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,142 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOpaqueExpression;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlAbstraction : public QObject, public UmlAbstraction
+class Q_UML_EXPORT QUmlAbstraction : public QUmlDependency
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Abstraction]
- Q_PROPERTY(QUmlOpaqueExpression * mapping READ mapping)
-
public:
- Q_INVOKABLE explicit QUmlAbstraction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
+ explicit QUmlAbstraction(bool createQObject = true);
+ virtual ~QUmlAbstraction();
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Abstraction]
- Q_INVOKABLE QUmlOpaqueExpression *mapping() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
- // Slots for owned attributes [Abstraction]
+ // Owned attributes
+ QUmlOpaqueExpression *mapping() const;
void setMapping(QUmlOpaqueExpression *mapping);
+
+protected:
+ QUmlOpaqueExpression *_mapping;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAbstraction *)
-Q_DECLARE_METATYPE(QList<QUmlAbstraction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAbstraction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAbstraction) *)
QT_END_HEADER
diff --git a/src/uml/qumlacceptcallaction.cpp b/src/uml/qumlacceptcallaction.cpp
index 0afa6fbf..cb5124d8 100644
--- a/src/uml/qumlacceptcallaction.cpp
+++ b/src/uml/qumlacceptcallaction.cpp
@@ -40,566 +40,63 @@
****************************************************************************/
#include "qumlacceptcallaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlTrigger>
+#include "private/qumlacceptcallactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlAcceptCallAction
+ \class QUmlAcceptCallAction
\inmodule QtUml
\brief An accept call action 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 reply action 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.
*/
-
-QUmlAcceptCallAction::QUmlAcceptCallAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAcceptCallAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAcceptCallAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAcceptCallAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAcceptCallAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlAcceptCallAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAcceptCallAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAcceptCallAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAcceptCallAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlAcceptCallAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAcceptCallAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAcceptCallAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAcceptCallAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlAcceptCallAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlAcceptCallAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlAcceptCallAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlAcceptCallAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlAcceptCallAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlAcceptCallAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlAcceptCallAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlAcceptCallAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlAcceptCallAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlAcceptCallAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlAcceptCallAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlAcceptCallAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlAcceptCallAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlAcceptCallAction::localPrecondition() const
+QUmlAcceptCallAction::QUmlAcceptCallAction(bool createQObject) :
+ QUmlAcceptEventAction(false),
+ _returnInformation(0)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
+ if (createQObject)
+ _qObject = new QUmlAcceptCallActionObject(this);
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlAcceptCallAction::output() const
+QUmlAcceptCallAction::~QUmlAcceptCallAction()
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [AcceptEventAction]
-
-/*!
- Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event.
- */
-bool QUmlAcceptCallAction::isUnmarshall() const
-{
- return _isUnmarshall;
-}
-
-/*!
- Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved.
- */
-const QSet<QUmlOutputPin *> QUmlAcceptCallAction::result() const
-{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_result));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlTrigger *> QUmlAcceptCallAction::trigger() const
-{
- return *(reinterpret_cast<const QSet<QUmlTrigger *> *>(&_trigger));
-}
-
-// OWNED ATTRIBUTES [AcceptCallAction]
+// OWNED ATTRIBUTES
/*!
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.
*/
-QUmlOutputPin *QUmlAcceptCallAction::returnInformation() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_returnInformation);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAcceptCallAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAcceptCallAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAcceptCallAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAcceptCallAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAcceptCallAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAcceptCallAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlAcceptCallAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlAcceptCallAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAcceptCallAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAcceptCallAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAcceptCallAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAcceptCallAction::removeClientDependency(UmlDependency *clientDependency)
+QUmlOutputPin *
+QUmlAcceptCallAction::returnInformation() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlAcceptCallAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAcceptCallAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _returnInformation;
}
-void QUmlAcceptCallAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAcceptCallAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlAcceptCallAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlAcceptCallAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAcceptCallAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAcceptCallAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlAcceptCallAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlAcceptCallAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlAcceptCallAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlAcceptCallAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlAcceptCallAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlAcceptCallAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlAcceptCallAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlAcceptCallAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlAcceptCallAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlAcceptCallAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlAcceptCallAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlAcceptCallAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlAcceptCallAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlAcceptCallAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlAcceptCallAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [AcceptEventAction]
-
-void QUmlAcceptCallAction::setUnmarshall(bool isUnmarshall)
-{
- UmlAcceptEventAction::setUnmarshall(isUnmarshall);
-}
-
-void QUmlAcceptCallAction::addResult(UmlOutputPin *result)
-{
- UmlAcceptEventAction::addResult(result);
-}
-
-void QUmlAcceptCallAction::removeResult(UmlOutputPin *result)
-{
- UmlAcceptEventAction::removeResult(result);
-}
-
-void QUmlAcceptCallAction::addTrigger(UmlTrigger *trigger)
+void QUmlAcceptCallAction::setReturnInformation(QUmlOutputPin *returnInformation)
{
- UmlAcceptEventAction::addTrigger(trigger);
-}
+ // This is a read-write association end
-void QUmlAcceptCallAction::removeTrigger(UmlTrigger *trigger)
-{
- UmlAcceptEventAction::removeTrigger(trigger);
-}
+ if (_returnInformation != returnInformation) {
+ // Adjust subsetted properties
+ removeOutput(_returnInformation);
-// SLOTS FOR OWNED ATTRIBUTES [AcceptCallAction]
+ _returnInformation = returnInformation;
+ if (returnInformation->asQObject() && this->asQObject())
+ QObject::connect(returnInformation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReturnInformation()));
+ returnInformation->asQObject()->setParent(this->asQObject());
-void QUmlAcceptCallAction::setReturnInformation(QUmlOutputPin *returnInformation)
-{
- UmlAcceptCallAction::setReturnInformation(returnInformation);
+ // Adjust subsetted properties
+ if (returnInformation) {
+ addOutput(returnInformation);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlacceptcallaction.h b/src/uml/qumlacceptcallaction.h
index 82f3d083..468a721c 100644
--- a/src/uml/qumlacceptcallaction.h
+++ b/src/uml/qumlacceptcallaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlacceptcallaction_p.h"
+#include <QtUml/QUmlAcceptEventAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,200 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlTrigger;
-class Q_UML_EXPORT QUmlAcceptCallAction : public QObject, public UmlAcceptCallAction
+class Q_UML_EXPORT QUmlAcceptCallAction : public QUmlAcceptEventAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [AcceptEventAction]
- Q_PROPERTY(bool isUnmarshall READ isUnmarshall)
- Q_PROPERTY(QSet<QUmlOutputPin *> result READ result)
- Q_PROPERTY(QSet<QUmlTrigger *> trigger READ trigger)
-
- // Properties [AcceptCallAction]
- Q_PROPERTY(QUmlOutputPin * returnInformation READ returnInformation)
-
public:
- Q_INVOKABLE explicit QUmlAcceptCallAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlAcceptCallAction(bool createQObject = true);
+ virtual ~QUmlAcceptCallAction();
- // Owned attributes [AcceptEventAction]
- Q_INVOKABLE bool isUnmarshall() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> result() const;
- Q_INVOKABLE const QSet<QUmlTrigger *> trigger() const;
-
- // Owned attributes [AcceptCallAction]
- Q_INVOKABLE QUmlOutputPin *returnInformation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [AcceptEventAction]
- void setUnmarshall(bool isUnmarshall);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
- void addTrigger(UmlTrigger *trigger);
- void removeTrigger(UmlTrigger *trigger);
-
- // Slots for owned attributes [AcceptCallAction]
+ // Owned attributes
+ QUmlOutputPin *returnInformation() const;
void setReturnInformation(QUmlOutputPin *returnInformation);
+
+protected:
+ QUmlOutputPin *_returnInformation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAcceptCallAction *)
-Q_DECLARE_METATYPE(QList<QUmlAcceptCallAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAcceptCallAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAcceptCallAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlaccepteventaction.cpp b/src/uml/qumlaccepteventaction.cpp
index 1d5e4674..65c270ac 100644
--- a/src/uml/qumlaccepteventaction.cpp
+++ b/src/uml/qumlaccepteventaction.cpp
@@ -40,549 +40,132 @@
****************************************************************************/
#include "qumlaccepteventaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
+#include "private/qumlaccepteventactionobject_p.h"
+
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
#include <QtUml/QUmlTrigger>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlAcceptEventAction
+ \class QUmlAcceptEventAction
\inmodule QtUml
\brief A accept event action is an action that waits for the occurrence of an event meeting specified conditions.
*/
-
-QUmlAcceptEventAction::QUmlAcceptEventAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAcceptEventAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAcceptEventAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAcceptEventAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAcceptEventAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlAcceptEventAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAcceptEventAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAcceptEventAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAcceptEventAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlAcceptEventAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAcceptEventAction::isLeaf() const
+QUmlAcceptEventAction::QUmlAcceptEventAction(bool createQObject) :
+ _isUnmarshall(false)
{
- return _isLeaf;
+ if (createQObject)
+ _qObject = new QUmlAcceptEventActionObject(this);
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAcceptEventAction::redefinedElement() const
+QUmlAcceptEventAction::~QUmlAcceptEventAction()
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAcceptEventAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlAcceptEventAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlAcceptEventAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlAcceptEventAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlAcceptEventAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlAcceptEventAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlAcceptEventAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlAcceptEventAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlAcceptEventAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlAcceptEventAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlAcceptEventAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlAcceptEventAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlAcceptEventAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlAcceptEventAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlAcceptEventAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlAcceptEventAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [AcceptEventAction]
+// OWNED ATTRIBUTES
/*!
Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event.
*/
-bool QUmlAcceptEventAction::isUnmarshall() const
+bool
+QUmlAcceptEventAction::isUnmarshall() const
{
+ // This is a read-write property
+
return _isUnmarshall;
}
-/*!
- Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved.
- */
-const QSet<QUmlOutputPin *> QUmlAcceptEventAction::result() const
+void QUmlAcceptEventAction::setUnmarshall(bool isUnmarshall)
{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_result));
-}
+ // This is a read-write property
-/*!
- 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.
- */
-const QSet<QUmlTrigger *> QUmlAcceptEventAction::trigger() const
-{
- return *(reinterpret_cast<const QSet<QUmlTrigger *> *>(&_trigger));
+ if (_isUnmarshall != isUnmarshall) {
+ _isUnmarshall = isUnmarshall;
+ }
}
-// OPERATIONS [Element]
-
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved.
*/
-QSet<QUmlElement *> QUmlAcceptEventAction::allOwnedElements() const
+const QSet<QUmlOutputPin *>
+QUmlAcceptEventAction::result() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlAcceptEventAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _result;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAcceptEventAction::allNamespaces() const
+void QUmlAcceptEventAction::addResult(QUmlOutputPin *result)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAcceptEventAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (!_result.contains(result)) {
+ _result.insert(result);
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeResult(QObject *)));
+ result->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlAcceptEventAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ addOutput(result);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAcceptEventAction::separator() const
+void QUmlAcceptEventAction::removeResult(QUmlOutputPin *result)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
+ if (_result.contains(result)) {
+ _result.remove(result);
+ if (result->asQObject())
+ result->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlAcceptEventAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeOutput(result);
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlAcceptEventAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAcceptEventAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAcceptEventAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAcceptEventAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAcceptEventAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAcceptEventAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAcceptEventAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlAcceptEventAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAcceptEventAction::setLeaf(bool isLeaf)
+const QSet<QUmlTrigger *>
+QUmlAcceptEventAction::trigger() const
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlAcceptEventAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlAcceptEventAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAcceptEventAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAcceptEventAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlAcceptEventAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlAcceptEventAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
+ return _trigger;
}
-void QUmlAcceptEventAction::addIncoming(UmlActivityEdge *incoming)
+void QUmlAcceptEventAction::addTrigger(QUmlTrigger *trigger)
{
- UmlActivityNode::addIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlAcceptEventAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
+ if (!_trigger.contains(trigger)) {
+ _trigger.insert(trigger);
+ if (trigger->asQObject() && this->asQObject())
+ QObject::connect(trigger->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTrigger(QObject *)));
+ trigger->asQObject()->setParent(this->asQObject());
-void QUmlAcceptEventAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
+ // Adjust subsetted properties
+ addOwnedElement(trigger);
+ }
}
-void QUmlAcceptEventAction::removeOutgoing(UmlActivityEdge *outgoing)
+void QUmlAcceptEventAction::removeTrigger(QUmlTrigger *trigger)
{
- UmlActivityNode::removeOutgoing(outgoing);
-}
+ // This is a read-write association end
-void QUmlAcceptEventAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
+ if (_trigger.contains(trigger)) {
+ _trigger.remove(trigger);
+ if (trigger->asQObject())
+ trigger->asQObject()->setParent(0);
-void QUmlAcceptEventAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
+ // Adjust subsetted properties
+ removeOwnedElement(trigger);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlAcceptEventAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlAcceptEventAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlAcceptEventAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlAcceptEventAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlAcceptEventAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlAcceptEventAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlAcceptEventAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [AcceptEventAction]
-
-void QUmlAcceptEventAction::setUnmarshall(bool isUnmarshall)
-{
- UmlAcceptEventAction::setUnmarshall(isUnmarshall);
-}
-
-void QUmlAcceptEventAction::addResult(UmlOutputPin *result)
-{
- UmlAcceptEventAction::addResult(result);
-}
-
-void QUmlAcceptEventAction::removeResult(UmlOutputPin *result)
-{
- UmlAcceptEventAction::removeResult(result);
-}
-
-void QUmlAcceptEventAction::addTrigger(UmlTrigger *trigger)
-{
- UmlAcceptEventAction::addTrigger(trigger);
-}
-
-void QUmlAcceptEventAction::removeTrigger(UmlTrigger *trigger)
-{
- UmlAcceptEventAction::removeTrigger(trigger);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlaccepteventaction.h b/src/uml/qumlaccepteventaction.h
index 944cd665..19e5132c 100644
--- a/src/uml/qumlaccepteventaction.h
+++ b/src/uml/qumlaccepteventaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlaccepteventaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,191 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
class QUmlTrigger;
-class Q_UML_EXPORT QUmlAcceptEventAction : public QObject, public UmlAcceptEventAction
+class Q_UML_EXPORT QUmlAcceptEventAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [AcceptEventAction]
- Q_PROPERTY(bool isUnmarshall READ isUnmarshall)
- Q_PROPERTY(QSet<QUmlOutputPin *> result READ result)
- Q_PROPERTY(QSet<QUmlTrigger *> trigger READ trigger)
-
public:
- Q_INVOKABLE explicit QUmlAcceptEventAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [AcceptEventAction]
- Q_INVOKABLE bool isUnmarshall() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> result() const;
- Q_INVOKABLE const QSet<QUmlTrigger *> trigger() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+ explicit QUmlAcceptEventAction(bool createQObject = true);
+ virtual ~QUmlAcceptEventAction();
- // Slots for owned attributes [AcceptEventAction]
+ // Owned attributes
+ bool isUnmarshall() const;
void setUnmarshall(bool isUnmarshall);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
- void addTrigger(UmlTrigger *trigger);
- void removeTrigger(UmlTrigger *trigger);
+ const QSet<QUmlOutputPin *> result() const;
+ void addResult(QUmlOutputPin *result);
+ void removeResult(QUmlOutputPin *result);
+ const QSet<QUmlTrigger *> trigger() const;
+ void addTrigger(QUmlTrigger *trigger);
+ void removeTrigger(QUmlTrigger *trigger);
+
+protected:
+ bool _isUnmarshall;
+ QSet<QUmlOutputPin *> _result;
+ QSet<QUmlTrigger *> _trigger;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAcceptEventAction *)
-Q_DECLARE_METATYPE(QList<QUmlAcceptEventAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAcceptEventAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAcceptEventAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlaction.cpp b/src/uml/qumlaction.cpp
index 8ed258c5..0d053d80 100644
--- a/src/uml/qumlaction.cpp
+++ b/src/uml/qumlaction.cpp
@@ -40,495 +40,231 @@
****************************************************************************/
#include "qumlaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlAction
+ \class QUmlAction
\inmodule QtUml
\brief An action has pre- and post-conditions.An action represents a single step within an activity, that is, one that is not further decomposed within the activity.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.
*/
-
-QUmlAction::QUmlAction(QObject *parent) :
- QObject(parent)
+QUmlAction::QUmlAction() :
+ _isLocallyReentrant(false)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAction::ownedComment() const
+QUmlAction::~QUmlAction()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The classifier that owns the behavior of which this action is a part.
*/
-QUmlElement *QUmlAction::owner() const
+QUmlClassifier *
+QUmlAction::context() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-only derived association end
-// OWNED ATTRIBUTES [NamedElement]
+ qWarning("UmlAction::context(): to be implemented (this is a derived association end)");
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return 0;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlAction::name() const
+void QUmlAction::setContext(QUmlClassifier *context)
{
- return _name;
-}
+ // This is a read-only derived association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ qWarning("UmlAction::context(): to be implemented (this is a derived association end)");
+ Q_UNUSED(context);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.
+ The ordered set of input pins connected to the Action. These are among the total set of inputs.
*/
-QString QUmlAction::qualifiedName() const
+const QList<QUmlInputPin *>
+QUmlAction::input() const
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-only derived union association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlAction::visibility() const
-{
- return _visibility;
+ return _input;
}
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAction::isLeaf() const
+void QUmlAction::addInput(QUmlInputPin *input)
{
- return _isLeaf;
-}
+ // This is a read-only derived union association end
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
+ if (!_input.contains(input)) {
+ _input.append(input);
+ if (input->asQObject() && this->asQObject())
+ QObject::connect(input->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInput(QObject *)));
+ input->asQObject()->setParent(this->asQObject());
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ // Adjust subsetted properties
+ addOwnedElement(input);
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlAction::activity() const
+void QUmlAction::removeInput(QUmlInputPin *input)
{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
+ // This is a read-only derived union association end
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
+ if (_input.contains(input)) {
+ _input.removeAll(input);
+ if (input->asQObject())
+ input->asQObject()->setParent(0);
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
+ // Adjust subsetted properties
+ removeOwnedElement(input);
+ }
}
/*!
- Partitions containing the node.
+ If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
*/
-const QSet<QUmlActivityPartition *> QUmlAction::inPartition() const
+bool
+QUmlAction::isLocallyReentrant() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
+ // This is a read-write property
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
+ return _isLocallyReentrant;
}
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlAction::incoming() const
+void QUmlAction::setLocallyReentrant(bool isLocallyReentrant)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
+ // This is a read-write property
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (_isLocallyReentrant != isLocallyReentrant) {
+ _isLocallyReentrant = isLocallyReentrant;
+ }
}
/*!
- Inherited nodes replaced by this node in a specialization of the activity.
+ Constraint that must be satisfied when executed is completed.
*/
-const QSet<QUmlActivityNode *> QUmlAction::redefinedNode() const
+const QSet<QUmlConstraint *>
+QUmlAction::localPostcondition() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
+ return _localPostcondition;
}
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlAction::context() const
+void QUmlAction::addLocalPostcondition(QUmlConstraint *localPostcondition)
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
+ // This is a read-write association end
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
+ if (!_localPostcondition.contains(localPostcondition)) {
+ _localPostcondition.insert(localPostcondition);
+ if (localPostcondition->asQObject() && this->asQObject())
+ QObject::connect(localPostcondition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeLocalPostcondition(QObject *)));
+ localPostcondition->asQObject()->setParent(this->asQObject());
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
+ // Adjust subsetted properties
+ addOwnedElement(localPostcondition);
+ }
}
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlAction::localPostcondition() const
+void QUmlAction::removeLocalPostcondition(QUmlConstraint *localPostcondition)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
+ if (_localPostcondition.contains(localPostcondition)) {
+ _localPostcondition.remove(localPostcondition);
+ if (localPostcondition->asQObject())
+ localPostcondition->asQObject()->setParent(0);
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
+ // Adjust subsetted properties
+ removeOwnedElement(localPostcondition);
+ }
}
-// OPERATIONS [Element]
-
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ Constraint that must be satisfied when execution is started.
*/
-QSet<QUmlElement *> QUmlAction::allOwnedElements() const
+const QSet<QUmlConstraint *>
+QUmlAction::localPrecondition() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _localPrecondition;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAction::allNamespaces() const
+void QUmlAction::addLocalPrecondition(QUmlConstraint *localPrecondition)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (!_localPrecondition.contains(localPrecondition)) {
+ _localPrecondition.insert(localPrecondition);
+ if (localPrecondition->asQObject() && this->asQObject())
+ QObject::connect(localPrecondition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeLocalPrecondition(QObject *)));
+ localPrecondition->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ addOwnedElement(localPrecondition);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAction::separator() const
+void QUmlAction::removeLocalPrecondition(QUmlConstraint *localPrecondition)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
+ if (_localPrecondition.contains(localPrecondition)) {
+ _localPrecondition.remove(localPrecondition);
+ if (localPrecondition->asQObject())
+ localPrecondition->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeOwnedElement(localPrecondition);
+ }
}
/*!
- 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.
+ The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
*/
-bool QUmlAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlAction::addOutgoing(UmlActivityEdge *outgoing)
+const QList<QUmlOutputPin *>
+QUmlAction::output() const
{
- UmlActivityNode::addOutgoing(outgoing);
-}
+ // This is a read-only derived union association end
-void QUmlAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
+ return _output;
}
-void QUmlAction::addRedefinedNode(UmlActivityNode *redefinedNode)
+void QUmlAction::addOutput(QUmlOutputPin *output)
{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
+ // This is a read-only derived union association end
-void QUmlAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
+ if (!_output.contains(output)) {
+ _output.append(output);
+ if (output->asQObject() && this->asQObject())
+ QObject::connect(output->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOutput(QObject *)));
+ output->asQObject()->setParent(this->asQObject());
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
+ // Adjust subsetted properties
+ addOwnedElement(output);
+ }
}
-void QUmlAction::removeHandler(UmlExceptionHandler *handler)
+void QUmlAction::removeOutput(QUmlOutputPin *output)
{
- UmlExecutableNode::removeHandler(handler);
-}
+ // This is a read-only derived union association end
-// SLOTS FOR OWNED ATTRIBUTES [Action]
+ if (_output.contains(output)) {
+ _output.removeAll(output);
+ if (output->asQObject())
+ output->asQObject()->setParent(0);
-void QUmlAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
+ // Adjust subsetted properties
+ removeOwnedElement(output);
+ }
}
-void QUmlAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlaction.h b/src/uml/qumlaction.h
index 0b6995dd..0e8988b8 100644
--- a/src/uml/qumlaction.h
+++ b/src/uml/qumlaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlaction_p.h"
+#include <QtUml/QUmlExecutableNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,173 +52,47 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlClassifier;
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlAction : public QObject, public UmlAction
+class Q_UML_EXPORT QUmlAction : public QUmlExecutableNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
public:
- Q_DECL_HIDDEN explicit QUmlAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
+ virtual ~QUmlAction();
+
+ // Owned attributes
+ QUmlClassifier *context() const;
+ Q_DECL_HIDDEN void setContext(QUmlClassifier *context);
+ const QList<QUmlInputPin *> input() const;
+ Q_DECL_HIDDEN void addInput(QUmlInputPin *input);
+ Q_DECL_HIDDEN void removeInput(QUmlInputPin *input);
+ bool isLocallyReentrant() const;
void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+ const QSet<QUmlConstraint *> localPostcondition() const;
+ void addLocalPostcondition(QUmlConstraint *localPostcondition);
+ void removeLocalPostcondition(QUmlConstraint *localPostcondition);
+ const QSet<QUmlConstraint *> localPrecondition() const;
+ void addLocalPrecondition(QUmlConstraint *localPrecondition);
+ void removeLocalPrecondition(QUmlConstraint *localPrecondition);
+ const QList<QUmlOutputPin *> output() const;
+ Q_DECL_HIDDEN void addOutput(QUmlOutputPin *output);
+ Q_DECL_HIDDEN void removeOutput(QUmlOutputPin *output);
+
+protected:
+ explicit QUmlAction();
+
+ QList<QUmlInputPin *> _input;
+ bool _isLocallyReentrant;
+ QSet<QUmlConstraint *> _localPostcondition;
+ QSet<QUmlConstraint *> _localPrecondition;
+ QList<QUmlOutputPin *> _output;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAction *)
-Q_DECLARE_METATYPE(QList<QUmlAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlactionexecutionspecification.cpp b/src/uml/qumlactionexecutionspecification.cpp
index eaace4ad..481c4522 100644
--- a/src/uml/qumlactionexecutionspecification.cpp
+++ b/src/uml/qumlactionexecutionspecification.cpp
@@ -40,323 +40,53 @@
****************************************************************************/
#include "qumlactionexecutionspecification.h"
-#include <QtUml/QUmlAction>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOccurrenceSpecification>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
+#include "private/qumlactionexecutionspecificationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlAction>
/*!
- \class UmlActionExecutionSpecification
+ \class QUmlActionExecutionSpecification
\inmodule QtUml
\brief An action execution specification is a kind of execution specification representing the execution of an action.
*/
-
-QUmlActionExecutionSpecification::QUmlActionExecutionSpecification(QObject *parent) :
- QObject(parent)
+QUmlActionExecutionSpecification::QUmlActionExecutionSpecification(bool createQObject) :
+ _action(0)
{
+ if (createQObject)
+ _qObject = new QUmlActionExecutionSpecificationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActionExecutionSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActionExecutionSpecification::ownedElement() const
+QUmlActionExecutionSpecification::~QUmlActionExecutionSpecification()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActionExecutionSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActionExecutionSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlActionExecutionSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActionExecutionSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActionExecutionSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlActionExecutionSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActionExecutionSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlActionExecutionSpecification::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlActionExecutionSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlActionExecutionSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlActionExecutionSpecification::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [ExecutionSpecification]
-
-/*!
- References the OccurrenceSpecification that designates the finish of the Action or Behavior.
- */
-QUmlOccurrenceSpecification *QUmlActionExecutionSpecification::finish() const
-{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_finish);
-}
-
-/*!
- References the OccurrenceSpecification that designates the start of the Action or Behavior
- */
-QUmlOccurrenceSpecification *QUmlActionExecutionSpecification::start() const
-{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_start);
-}
-
-// OWNED ATTRIBUTES [ActionExecutionSpecification]
+// OWNED ATTRIBUTES
/*!
Action whose execution is occurring.
*/
-QUmlAction *QUmlActionExecutionSpecification::action() const
-{
- return reinterpret_cast<QUmlAction *>(_action);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActionExecutionSpecification::allOwnedElements() const
+QUmlAction *
+QUmlActionExecutionSpecification::action() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlActionExecutionSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _action;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActionExecutionSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActionExecutionSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActionExecutionSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActionExecutionSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActionExecutionSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlActionExecutionSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlActionExecutionSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlActionExecutionSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlActionExecutionSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlActionExecutionSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlActionExecutionSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlActionExecutionSpecification::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlActionExecutionSpecification::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlActionExecutionSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlActionExecutionSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlActionExecutionSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlActionExecutionSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutionSpecification]
-
-void QUmlActionExecutionSpecification::setFinish(QUmlOccurrenceSpecification *finish)
-{
- UmlExecutionSpecification::setFinish(finish);
-}
-
-void QUmlActionExecutionSpecification::setStart(QUmlOccurrenceSpecification *start)
-{
- UmlExecutionSpecification::setStart(start);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActionExecutionSpecification]
-
void QUmlActionExecutionSpecification::setAction(QUmlAction *action)
{
- UmlActionExecutionSpecification::setAction(action);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_action != action) {
+ _action = action;
+ if (action->asQObject() && this->asQObject())
+ QObject::connect(action->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAction()));
+ }
+}
diff --git a/src/uml/qumlactionexecutionspecification.h b/src/uml/qumlactionexecutionspecification.h
index 4d901fa9..025a7f28 100644
--- a/src/uml/qumlactionexecutionspecification.h
+++ b/src/uml/qumlactionexecutionspecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactionexecutionspecification_p.h"
+#include <QtUml/QUmlExecutionSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,122 +53,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlAction;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOccurrenceSpecification;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlActionExecutionSpecification : public QObject, public UmlActionExecutionSpecification
+class Q_UML_EXPORT QUmlActionExecutionSpecification : public QUmlExecutionSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [ExecutionSpecification]
- Q_PROPERTY(QUmlOccurrenceSpecification * finish READ finish)
- Q_PROPERTY(QUmlOccurrenceSpecification * start READ start)
-
- // Properties [ActionExecutionSpecification]
- Q_PROPERTY(QUmlAction * action READ action)
-
public:
- Q_INVOKABLE explicit QUmlActionExecutionSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [ExecutionSpecification]
- Q_INVOKABLE QUmlOccurrenceSpecification *finish() const;
- Q_INVOKABLE QUmlOccurrenceSpecification *start() const;
+ explicit QUmlActionExecutionSpecification(bool createQObject = true);
+ virtual ~QUmlActionExecutionSpecification();
- // Owned attributes [ActionExecutionSpecification]
- Q_INVOKABLE QUmlAction *action() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [ExecutionSpecification]
- void setFinish(QUmlOccurrenceSpecification *finish);
- void setStart(QUmlOccurrenceSpecification *start);
-
- // Slots for owned attributes [ActionExecutionSpecification]
+ // Owned attributes
+ QUmlAction *action() const;
void setAction(QUmlAction *action);
+
+protected:
+ QUmlAction *_action;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActionExecutionSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlActionExecutionSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActionExecutionSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActionExecutionSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlactioninputpin.cpp b/src/uml/qumlactioninputpin.cpp
index cd5017e1..f1e4079a 100644
--- a/src/uml/qumlactioninputpin.cpp
+++ b/src/uml/qumlactioninputpin.cpp
@@ -40,663 +40,63 @@
****************************************************************************/
#include "qumlactioninputpin.h"
-#include <QtUml/QUmlAction>
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlactioninputpinobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlAction>
/*!
- \class UmlActionInputPin
+ \class QUmlActionInputPin
\inmodule QtUml
\brief An action input pin is a kind of pin that executes an action to determine the values to input to another.
*/
-
-QUmlActionInputPin::QUmlActionInputPin(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActionInputPin::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActionInputPin::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActionInputPin::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlActionInputPin::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlActionInputPin::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlActionInputPin::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlActionInputPin::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlActionInputPin::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlActionInputPin::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActionInputPin::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlActionInputPin::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActionInputPin::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActionInputPin::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlActionInputPin::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActionInputPin::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActionInputPin::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlActionInputPin::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActionInputPin::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlActionInputPin::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlActionInputPin::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlActionInputPin::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlActionInputPin::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlActionInputPin::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlActionInputPin::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlActionInputPin::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlActionInputPin::redefinedNode() const
+QUmlActionInputPin::QUmlActionInputPin(bool createQObject) :
+ QUmlInputPin(false),
+ _fromAction(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ if (createQObject)
+ _qObject = new QUmlActionInputPinObject(this);
}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlActionInputPin::type() const
+QUmlActionInputPin::~QUmlActionInputPin()
{
- return reinterpret_cast<QUmlType *>(_type);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlActionInputPin::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlActionInputPin::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlActionInputPin::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlActionInputPin::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
-
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlActionInputPin::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OWNED ATTRIBUTES [Pin]
-
-/*!
- Tells whether the pins provide data to the actions, or just controls when it executes it.
- */
-bool QUmlActionInputPin::isControl() const
-{
- return _isControl;
-}
-
-// OWNED ATTRIBUTES [ActionInputPin]
+// OWNED ATTRIBUTES
/*!
The action used to provide values.
*/
-QUmlAction *QUmlActionInputPin::fromAction() const
-{
- return reinterpret_cast<QUmlAction *>(_fromAction);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActionInputPin::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActionInputPin::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlActionInputPin::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlActionInputPin::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlActionInputPin::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlActionInputPin::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlActionInputPin::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlActionInputPin::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-//int QUmlActionInputPin::upperBound() const
-//{
-// return UmlMultiplicityElement::upperBound();
-//}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActionInputPin::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActionInputPin::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActionInputPin::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActionInputPin::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlActionInputPin::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlActionInputPin::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActionInputPin::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlActionInputPin::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlActionInputPin::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlActionInputPin::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlActionInputPin::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlActionInputPin::setLowerValue(QUmlValueSpecification *lowerValue)
+QUmlAction *
+QUmlActionInputPin::fromAction() const
{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlActionInputPin::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlActionInputPin::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlActionInputPin::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlActionInputPin::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlActionInputPin::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlActionInputPin::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlActionInputPin::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlActionInputPin::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlActionInputPin::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlActionInputPin::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlActionInputPin::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlActionInputPin::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlActionInputPin::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlActionInputPin::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlActionInputPin::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlActionInputPin::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlActionInputPin::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
+ // This is a read-write association end
-void QUmlActionInputPin::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
+ return _fromAction;
}
-void QUmlActionInputPin::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlActionInputPin::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlActionInputPin::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlActionInputPin::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlActionInputPin::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlActionInputPin::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlActionInputPin::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlActionInputPin::setSelection(QUmlBehavior *selection)
+void QUmlActionInputPin::setFromAction(QUmlAction *fromAction)
{
- UmlObjectNode::setSelection(selection);
-}
+ // This is a read-write association end
-void QUmlActionInputPin::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
+ if (_fromAction != fromAction) {
+ // Adjust subsetted properties
+ removeOwnedElement(_fromAction);
-// SLOTS FOR OWNED ATTRIBUTES [Pin]
+ _fromAction = fromAction;
+ if (fromAction->asQObject() && this->asQObject())
+ QObject::connect(fromAction->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setFromAction()));
+ fromAction->asQObject()->setParent(this->asQObject());
-void QUmlActionInputPin::setControl(bool isControl)
-{
- UmlPin::setControl(isControl);
+ // Adjust subsetted properties
+ if (fromAction) {
+ addOwnedElement(fromAction);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ActionInputPin]
-
-void QUmlActionInputPin::setFromAction(QUmlAction *fromAction)
-{
- UmlActionInputPin::setFromAction(fromAction);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactioninputpin.h b/src/uml/qumlactioninputpin.h
index eae4c8e4..bc5a083f 100644
--- a/src/uml/qumlactioninputpin.h
+++ b/src/uml/qumlactioninputpin.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactioninputpin_p.h"
+#include <QtUml/QUmlInputPin>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,223 +53,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlAction;
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlActionInputPin : public QObject, public UmlActionInputPin
+class Q_UML_EXPORT QUmlActionInputPin : public QUmlInputPin
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [Pin]
- Q_PROPERTY(bool isControl READ isControl)
-
- // Properties [ActionInputPin]
- Q_PROPERTY(QUmlAction * fromAction READ fromAction)
-
public:
- Q_INVOKABLE explicit QUmlActionInputPin(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
+ explicit QUmlActionInputPin(bool createQObject = true);
+ virtual ~QUmlActionInputPin();
- // Owned attributes [Pin]
- Q_INVOKABLE bool isControl() const;
-
- // Owned attributes [ActionInputPin]
- Q_INVOKABLE QUmlAction *fromAction() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
-// Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
-
- // Slots for owned attributes [Pin]
- void setControl(bool isControl);
-
- // Slots for owned attributes [ActionInputPin]
+ // Owned attributes
+ QUmlAction *fromAction() const;
void setFromAction(QUmlAction *fromAction);
+
+protected:
+ QUmlAction *_fromAction;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActionInputPin *)
-Q_DECLARE_METATYPE(QList<QUmlActionInputPin *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActionInputPin *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActionInputPin) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivity.cpp b/src/uml/qumlactivity.cpp
index 4b296f91..a552c541 100644
--- a/src/uml/qumlactivity.cpp
+++ b/src/uml/qumlactivity.cpp
@@ -40,1316 +40,366 @@
****************************************************************************/
#include "qumlactivity.h"
+#include "private/qumlactivityobject_p.h"
+
#include <QtUml/QUmlActivityEdge>
#include <QtUml/QUmlActivityGroup>
#include <QtUml/QUmlActivityNode>
#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
#include <QtUml/QUmlVariable>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlActivity
+ \class QUmlActivity
\inmodule QtUml
\brief An activity is the specification of parameterized behavior as the coordinated sequencing of subordinate units whose individual elements are actions.
*/
-
-QUmlActivity::QUmlActivity(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivity::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActivity::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActivity::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivity::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivity::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActivity::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivity::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlActivity::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlActivity::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlActivity::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlActivity::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlActivity::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlActivity::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlActivity::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlActivity::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlActivity::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlActivity::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActivity::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlActivity::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActivity::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlActivity::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlActivity::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlActivity::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlActivity::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlActivity::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlActivity::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlActivity::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlActivity::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlActivity::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlActivity::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlActivity::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlActivity::representation() const
+QUmlActivity::QUmlActivity(bool createQObject) :
+ _isReadOnly(false),
+ _isSingleExecution(false)
{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
+ if (createQObject)
+ _qObject = new QUmlActivityObject(this);
}
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlActivity::substitution() const
+QUmlActivity::~QUmlActivity()
{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlActivity::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
+// OWNED ATTRIBUTES
/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlActivity::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlActivity::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
+ Edges expressing flow between nodes of the activity.
*/
-const QSet<QUmlProperty *> QUmlActivity::part() const
+const QSet<QUmlActivityEdge *>
+QUmlActivity::edge() const
{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlActivity::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
+ return _edge;
}
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlActivity::ownedPort() const
+void QUmlActivity::addEdge(QUmlActivityEdge *edge)
{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [BehavioredClassifier]
+ if (!_edge.contains(edge)) {
+ _edge.insert(edge);
+ if (edge->asQObject() && this->asQObject())
+ QObject::connect(edge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEdge(QObject *)));
+ edge->asQObject()->setParent(this->asQObject());
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlActivity::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
+ // Adjust subsetted properties
+ addOwnedElement(edge);
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlActivity::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
+ // Adjust opposite properties
+ if (edge) {
+ edge->setActivity(this);
+ }
+ }
}
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlActivity::ownedBehavior() const
+void QUmlActivity::removeEdge(QUmlActivityEdge *edge)
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Class]
+ if (_edge.contains(edge)) {
+ _edge.remove(edge);
+ if (edge->asQObject())
+ edge->asQObject()->setParent(0);
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlActivity::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedElement(edge);
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlActivity::isAbstract() const
-{
- return _isAbstract;
+ // Adjust opposite properties
+ if (edge) {
+ edge->setActivity(0);
+ }
+ }
}
/*!
- 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.
+ Top-level groups in the activity.
*/
-bool QUmlActivity::isActive() const
+const QSet<QUmlActivityGroup *>
+QUmlActivity::group() const
{
- return _isActive;
-}
+ // This is a read-write association end
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlActivity::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
+ return _group;
}
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlActivity::ownedAttribute() const
+void QUmlActivity::addGroup(QUmlActivityGroup *group)
{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
+ // This is a read-write association end
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlActivity::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
+ if (!_group.contains(group)) {
+ _group.insert(group);
+ if (group->asQObject() && this->asQObject())
+ QObject::connect(group->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeGroup(QObject *)));
+ group->asQObject()->setParent(this->asQObject());
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlActivity::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
+ // Adjust subsetted properties
+ addOwnedElement(group);
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlActivity::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
+ // Adjust opposite properties
+ if (group) {
+ group->setInActivity(this);
+ }
+ }
}
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlActivity::context() const
+void QUmlActivity::removeGroup(QUmlActivityGroup *group)
{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
+ // This is a read-write association end
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlActivity::isReentrant() const
-{
- return _isReentrant;
-}
+ if (_group.contains(group)) {
+ _group.remove(group);
+ if (group->asQObject())
+ group->asQObject()->setParent(0);
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlActivity::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
+ // Adjust subsetted properties
+ removeOwnedElement(group);
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlActivity::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
+ // Adjust opposite properties
+ if (group) {
+ group->setInActivity(0);
+ }
+ }
}
/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
+ 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).
*/
-const QSet<QUmlConstraint *> QUmlActivity::postcondition() const
+bool
+QUmlActivity::isReadOnly() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
+ // This is a read-write property
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlActivity::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
+ return _isReadOnly;
}
-/*!
- 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.
- */
-const QSet<QUmlBehavior *> QUmlActivity::redefinedBehavior() const
+void QUmlActivity::setReadOnly(bool isReadOnly)
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_redefinedBehavior));
-}
+ // This is a read-write property
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlActivity::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
+ if (_isReadOnly != isReadOnly) {
+ _isReadOnly = isReadOnly;
+ }
}
-// OWNED ATTRIBUTES [Activity]
-
/*!
- Edges expressing flow between nodes of the activity.
+ If true, all invocations of the activity are handled by the same execution.
*/
-const QSet<QUmlActivityEdge *> QUmlActivity::edge() const
+bool
+QUmlActivity::isSingleExecution() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
+ // This is a read-write property
-/*!
- Top-level groups in the activity.
- */
-const QSet<QUmlActivityGroup *> QUmlActivity::group() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_group));
+ return _isSingleExecution;
}
-/*!
- 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).
- */
-bool QUmlActivity::isReadOnly() const
+void QUmlActivity::setSingleExecution(bool isSingleExecution)
{
- return _isReadOnly;
-}
+ // This is a read-write property
-/*!
- If true, all invocations of the activity are handled by the same execution.
- */
-bool QUmlActivity::isSingleExecution() const
-{
- return _isSingleExecution;
+ if (_isSingleExecution != isSingleExecution) {
+ _isSingleExecution = isSingleExecution;
+ }
}
/*!
Nodes coordinated by the activity.
*/
-const QSet<QUmlActivityNode *> QUmlActivity::node() const
+const QSet<QUmlActivityNode *>
+QUmlActivity::node() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
-}
+ // This is a read-write association end
-/*!
- Top-level partitions in the activity.
- */
-const QSet<QUmlActivityPartition *> QUmlActivity::partition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_partition));
+ return _node;
}
-/*!
- Top-level structured nodes in the activity.
- */
-const QSet<QUmlStructuredActivityNode *> QUmlActivity::structuredNode() const
+void QUmlActivity::addNode(QUmlActivityNode *node)
{
- return *(reinterpret_cast<const QSet<QUmlStructuredActivityNode *> *>(&_structuredNode));
-}
+ // This is a read-write association end
-/*!
- Top-level variables in the activity.
- */
-const QSet<QUmlVariable *> QUmlActivity::variable() const
-{
- return *(reinterpret_cast<const QSet<QUmlVariable *> *>(&_variable));
-}
+ if (!_node.contains(node)) {
+ _node.insert(node);
+ if (node->asQObject() && this->asQObject())
+ QObject::connect(node->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNode(QObject *)));
+ node->asQObject()->setParent(this->asQObject());
-// OPERATIONS [Element]
+ // Adjust subsetted properties
+ addOwnedElement(node);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivity::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (node) {
+ node->setActivity(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlActivity::mustBeOwned() const
+void QUmlActivity::removeNode(QUmlActivityNode *node)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_node.contains(node)) {
+ _node.remove(node);
+ if (node->asQObject())
+ node->asQObject()->setParent(0);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActivity::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedElement(node);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivity::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActivity::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust opposite properties
+ if (node) {
+ node->setActivity(0);
+ }
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ Top-level partitions in the activity.
*/
-QString QUmlActivity::separator() const
+const QSet<QUmlActivityPartition *>
+QUmlActivity::partition() const
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
+ // This is a read-write association end
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlActivity::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _partition;
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlActivity::getNamesOfMember(QUmlNamedElement *element) const
+void QUmlActivity::addPartition(QUmlActivityPartition *partition)
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlActivity::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ if (!_partition.contains(partition)) {
+ _partition.insert(partition);
+ if (partition->asQObject() && this->asQObject())
+ QObject::connect(partition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePartition(QObject *)));
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlActivity::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
+ // Adjust subsetted properties
+ addGroup(partition);
+ }
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlActivity::isCompatibleWith(QUmlParameterableElement *p) const
+void QUmlActivity::removePartition(QUmlActivityPartition *partition)
{
- return UmlParameterableElement::isCompatibleWith(p);
-}
+ // This is a read-write association end
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlActivity::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (_partition.contains(partition)) {
+ _partition.remove(partition);
-/*!
- 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.
- */
-bool QUmlActivity::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeGroup(partition);
+ }
}
/*!
- 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.
+ Top-level structured nodes in the activity.
*/
-bool QUmlActivity::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+const QSet<QUmlStructuredActivityNode *>
+QUmlActivity::structuredNode() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlActivity::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
+ return _structuredNode;
}
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlActivity::allFeatures() const
+void QUmlActivity::addStructuredNode(QUmlStructuredActivityNode *structuredNode)
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlActivity::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ if (!_structuredNode.contains(structuredNode)) {
+ _structuredNode.insert(structuredNode);
+ if (structuredNode->asQObject() && this->asQObject())
+ QObject::connect(structuredNode->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeStructuredNode(QObject *)));
+ structuredNode->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlActivity::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ // Adjust subsetted properties
+ addGroup(structuredNode);
+ addNode(structuredNode);
-/*!
- 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.
- */
-bool QUmlActivity::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ // Adjust opposite properties
+ if (structuredNode) {
+ structuredNode->setActivity(this);
+ }
+ }
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlActivity::inheritableMembers(QUmlClassifier *c) const
+void QUmlActivity::removeStructuredNode(QUmlStructuredActivityNode *structuredNode)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlActivity::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ if (_structuredNode.contains(structuredNode)) {
+ _structuredNode.remove(structuredNode);
+ if (structuredNode->asQObject())
+ structuredNode->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlActivity::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
+ // Adjust subsetted properties
+ removeGroup(structuredNode);
+ removeNode(structuredNode);
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlActivity::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (structuredNode) {
+ structuredNode->setActivity(0);
+ }
+ }
}
-// OPERATIONS [Class]
-
/*!
- The inherit operation is overridden to exclude redefined properties.
+ Top-level variables in the activity.
*/
-QSet<QUmlNamedElement *> QUmlActivity::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActivity::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlActivity::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlActivity::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlActivity::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlActivity::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlActivity::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlActivity::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlActivity::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlActivity::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlActivity::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlActivity::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlActivity::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlActivity::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlActivity::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlActivity::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlActivity::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlActivity::addTemplateBinding(UmlTemplateBinding *templateBinding)
+const QSet<QUmlVariable *>
+QUmlActivity::variable() const
{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
+ // This is a read-write association end
-void QUmlActivity::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
+ return _variable;
}
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlActivity::addCollaborationUse(UmlCollaborationUse *collaborationUse)
+void QUmlActivity::addVariable(QUmlVariable *variable)
{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
+ // This is a read-write association end
-void QUmlActivity::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
+ if (!_variable.contains(variable)) {
+ _variable.insert(variable);
+ if (variable->asQObject() && this->asQObject())
+ QObject::connect(variable->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeVariable(QObject *)));
+ variable->asQObject()->setParent(this->asQObject());
-void QUmlActivity::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
+ // Adjust subsetted properties
+ addOwnedMember(variable);
-void QUmlActivity::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
+ // Adjust opposite properties
+ if (variable) {
+ variable->setActivityScope(this);
+ }
+ }
}
-void QUmlActivity::setFinalSpecialization(bool isFinalSpecialization)
+void QUmlActivity::removeVariable(QUmlVariable *variable)
{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
+ // This is a read-write association end
-void QUmlActivity::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
+ if (_variable.contains(variable)) {
+ _variable.remove(variable);
+ if (variable->asQObject())
+ variable->asQObject()->setParent(0);
-void QUmlActivity::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(variable);
-void QUmlActivity::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
+ // Adjust opposite properties
+ if (variable) {
+ variable->setActivityScope(0);
+ }
+ }
}
-void QUmlActivity::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlActivity::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlActivity::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlActivity::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlActivity::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlActivity::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlActivity::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlActivity::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlActivity::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlActivity::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlActivity::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlActivity::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlActivity::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlActivity::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlActivity::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlActivity::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlActivity::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlActivity::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlActivity::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlActivity::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlActivity::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlActivity::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlActivity::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlActivity::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlActivity::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlActivity::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlActivity::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlActivity::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlActivity::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlActivity::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlActivity::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlActivity::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlActivity::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlActivity::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlActivity::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlActivity::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlActivity::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlActivity::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlActivity::addRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::addRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlActivity::removeRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::removeRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlActivity::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Activity]
-
-void QUmlActivity::addEdge(UmlActivityEdge *edge)
-{
- UmlActivity::addEdge(edge);
-}
-
-void QUmlActivity::removeEdge(UmlActivityEdge *edge)
-{
- UmlActivity::removeEdge(edge);
-}
-
-void QUmlActivity::addGroup(UmlActivityGroup *group)
-{
- UmlActivity::addGroup(group);
-}
-
-void QUmlActivity::removeGroup(UmlActivityGroup *group)
-{
- UmlActivity::removeGroup(group);
-}
-
-void QUmlActivity::setReadOnly(bool isReadOnly)
-{
- UmlActivity::setReadOnly(isReadOnly);
-}
-
-void QUmlActivity::setSingleExecution(bool isSingleExecution)
-{
- UmlActivity::setSingleExecution(isSingleExecution);
-}
-
-void QUmlActivity::addNode(UmlActivityNode *node)
-{
- UmlActivity::addNode(node);
-}
-
-void QUmlActivity::removeNode(UmlActivityNode *node)
-{
- UmlActivity::removeNode(node);
-}
-
-void QUmlActivity::addPartition(UmlActivityPartition *partition)
-{
- UmlActivity::addPartition(partition);
-}
-
-void QUmlActivity::removePartition(UmlActivityPartition *partition)
-{
- UmlActivity::removePartition(partition);
-}
-
-void QUmlActivity::addStructuredNode(UmlStructuredActivityNode *structuredNode)
-{
- UmlActivity::addStructuredNode(structuredNode);
-}
-
-void QUmlActivity::removeStructuredNode(UmlStructuredActivityNode *structuredNode)
-{
- UmlActivity::removeStructuredNode(structuredNode);
-}
-
-void QUmlActivity::addVariable(UmlVariable *variable)
-{
- UmlActivity::addVariable(variable);
-}
-
-void QUmlActivity::removeVariable(UmlVariable *variable)
-{
- UmlActivity::removeVariable(variable);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactivity.h b/src/uml/qumlactivity.h
index 50e9eb0d..cabb663b 100644
--- a/src/uml/qumlactivity.h
+++ b/src/uml/qumlactivity.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivity_p.h"
+#include <QtUml/QUmlBehavior>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -58,409 +56,53 @@ class QUmlActivityEdge;
class QUmlActivityGroup;
class QUmlActivityNode;
class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlBehavioralFeature;
-class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
class QUmlStructuredActivityNode;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
class QUmlVariable;
-class Q_UML_EXPORT QUmlActivity : public QObject, public UmlActivity
+class Q_UML_EXPORT QUmlActivity : public QUmlBehavior
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QSet<QUmlBehavior *> redefinedBehavior READ redefinedBehavior)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
- // Properties [Activity]
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(QSet<QUmlActivityGroup *> group READ group)
- Q_PROPERTY(bool isReadOnly READ isReadOnly)
- Q_PROPERTY(bool isSingleExecution READ isSingleExecution)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
- Q_PROPERTY(QSet<QUmlActivityPartition *> partition READ partition)
- Q_PROPERTY(QSet<QUmlStructuredActivityNode *> structuredNode READ structuredNode)
- Q_PROPERTY(QSet<QUmlVariable *> variable READ variable)
-
public:
- Q_INVOKABLE explicit QUmlActivity(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> redefinedBehavior() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Owned attributes [Activity]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> group() const;
- Q_INVOKABLE bool isReadOnly() const;
- Q_INVOKABLE bool isSingleExecution() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> partition() const;
- Q_INVOKABLE const QSet<QUmlStructuredActivityNode *> structuredNode() const;
- Q_INVOKABLE const QSet<QUmlVariable *> variable() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Slots for owned attributes [Behavior]
- void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void addRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void removeRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void setSpecification(QUmlBehavioralFeature *specification);
-
- // Slots for owned attributes [Activity]
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- void addGroup(UmlActivityGroup *group);
- void removeGroup(UmlActivityGroup *group);
+ explicit QUmlActivity(bool createQObject = true);
+ virtual ~QUmlActivity();
+
+ // Owned attributes
+ const QSet<QUmlActivityEdge *> edge() const;
+ void addEdge(QUmlActivityEdge *edge);
+ void removeEdge(QUmlActivityEdge *edge);
+ const QSet<QUmlActivityGroup *> group() const;
+ void addGroup(QUmlActivityGroup *group);
+ void removeGroup(QUmlActivityGroup *group);
+ bool isReadOnly() const;
void setReadOnly(bool isReadOnly);
+ bool isSingleExecution() const;
void setSingleExecution(bool isSingleExecution);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- void addPartition(UmlActivityPartition *partition);
- void removePartition(UmlActivityPartition *partition);
- void addStructuredNode(UmlStructuredActivityNode *structuredNode);
- void removeStructuredNode(UmlStructuredActivityNode *structuredNode);
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
+ const QSet<QUmlActivityNode *> node() const;
+ void addNode(QUmlActivityNode *node);
+ void removeNode(QUmlActivityNode *node);
+ const QSet<QUmlActivityPartition *> partition() const;
+ void addPartition(QUmlActivityPartition *partition);
+ void removePartition(QUmlActivityPartition *partition);
+ const QSet<QUmlStructuredActivityNode *> structuredNode() const;
+ void addStructuredNode(QUmlStructuredActivityNode *structuredNode);
+ void removeStructuredNode(QUmlStructuredActivityNode *structuredNode);
+ const QSet<QUmlVariable *> variable() const;
+ void addVariable(QUmlVariable *variable);
+ void removeVariable(QUmlVariable *variable);
+
+protected:
+ QSet<QUmlActivityEdge *> _edge;
+ QSet<QUmlActivityGroup *> _group;
+ bool _isReadOnly;
+ bool _isSingleExecution;
+ QSet<QUmlActivityNode *> _node;
+ QSet<QUmlActivityPartition *> _partition;
+ QSet<QUmlStructuredActivityNode *> _structuredNode;
+ QSet<QUmlVariable *> _variable;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivity *)
-Q_DECLARE_METATYPE(QList<QUmlActivity *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivity *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivity) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivityedge.cpp b/src/uml/qumlactivityedge.cpp
index abecb407..b28fc27c 100644
--- a/src/uml/qumlactivityedge.cpp
+++ b/src/uml/qumlactivityedge.cpp
@@ -44,399 +44,342 @@
#include <QtUml/QUmlActivityGroup>
#include <QtUml/QUmlActivityNode>
#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlStructuredActivityNode>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlActivityEdge
+ \class QUmlActivityEdge
\inmodule QtUml
\brief Activity edges can be contained in interruptible regions.An activity edge is an abstract class for directed connections between two activity nodes.
*/
-
-QUmlActivityEdge::QUmlActivityEdge(QObject *parent) :
- QObject(parent)
+QUmlActivityEdge::QUmlActivityEdge() :
+ _activity(0),
+ _guard(0),
+ _inStructuredNode(0),
+ _interrupts(0),
+ _source(0),
+ _target(0),
+ _weight(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivityEdge::ownedComment() const
+QUmlActivityEdge::~QUmlActivityEdge()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ Activity containing the edge.
*/
-const QSet<QUmlElement *> QUmlActivityEdge::ownedElement() const
+QUmlActivity *
+QUmlActivityEdge::activity() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _activity;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActivityEdge::owner() const
+void QUmlActivityEdge::setActivity(QUmlActivity *activity)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (_activity != activity) {
+ // Adjust subsetted properties
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivityEdge::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ _activity = activity;
+ if (activity->asQObject() && this->asQObject())
+ QObject::connect(activity->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setActivity()));
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivityEdge::name() const
-{
- return _name;
+ // Adjust subsetted properties
+ setOwner(activity);
+ }
}
/*!
- The string expression used to define the name of this named element.
+ Specification evaluated at runtime to determine if the edge can be traversed.
*/
-QUmlStringExpression *QUmlActivityEdge::nameExpression() const
+QUmlValueSpecification *
+QUmlActivityEdge::guard() const
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-write association end
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivityEdge::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ return _guard;
}
-/*!
- 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.
- */
-QString QUmlActivityEdge::qualifiedName() const
+void QUmlActivityEdge::setGuard(QUmlValueSpecification *guard)
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActivityEdge::visibility() const
-{
- return _visibility;
-}
+ if (_guard != guard) {
+ // Adjust subsetted properties
+ removeOwnedElement(_guard);
-// OWNED ATTRIBUTES [RedefinableElement]
+ _guard = guard;
+ if (guard->asQObject() && this->asQObject())
+ QObject::connect(guard->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setGuard()));
+ guard->asQObject()->setParent(this->asQObject());
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActivityEdge::isLeaf() const
-{
- return _isLeaf;
+ // Adjust subsetted properties
+ if (guard) {
+ addOwnedElement(guard);
+ }
+ }
}
/*!
- The redefinable element that is being redefined by this element.
+ Groups containing the edge.
*/
-const QSet<QUmlRedefinableElement *> QUmlActivityEdge::redefinedElement() const
+const QSet<QUmlActivityGroup *>
+QUmlActivityEdge::inGroup() const
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ // This is a read-only derived union association end
+
+ return _inGroup;
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActivityEdge::redefinitionContext() const
+void QUmlActivityEdge::addInGroup(QUmlActivityGroup *inGroup)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [ActivityEdge]
+ if (!_inGroup.contains(inGroup)) {
+ _inGroup.insert(inGroup);
+ if (inGroup->asQObject() && this->asQObject())
+ QObject::connect(inGroup->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInGroup(QObject *)));
-/*!
- Activity containing the edge.
- */
-QUmlActivity *QUmlActivityEdge::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
+ // Adjust opposite properties
+ if (inGroup) {
+ inGroup->addContainedEdge(this);
+ }
+ }
}
-/*!
- Specification evaluated at runtime to determine if the edge can be traversed.
- */
-QUmlValueSpecification *QUmlActivityEdge::guard() const
+void QUmlActivityEdge::removeInGroup(QUmlActivityGroup *inGroup)
{
- return reinterpret_cast<QUmlValueSpecification *>(_guard);
-}
+ // This is a read-only derived union association end
-/*!
- Groups containing the edge.
- */
-const QSet<QUmlActivityGroup *> QUmlActivityEdge::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
+ if (_inGroup.contains(inGroup)) {
+ _inGroup.remove(inGroup);
+
+ // Adjust opposite properties
+ if (inGroup) {
+ inGroup->removeContainedEdge(this);
+ }
+ }
}
/*!
Partitions containing the edge.
*/
-const QSet<QUmlActivityPartition *> QUmlActivityEdge::inPartition() const
+const QSet<QUmlActivityPartition *>
+QUmlActivityEdge::inPartition() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
+ // This is a read-write association end
-/*!
- Structured activity node containing the edge.
- */
-QUmlStructuredActivityNode *QUmlActivityEdge::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
+ return _inPartition;
}
-/*!
- Region that the edge can interrupt.
- */
-QUmlInterruptibleActivityRegion *QUmlActivityEdge::interrupts() const
+void QUmlActivityEdge::addInPartition(QUmlActivityPartition *inPartition)
{
- return reinterpret_cast<QUmlInterruptibleActivityRegion *>(_interrupts);
-}
+ // This is a read-write association end
-/*!
- Inherited edges replaced by this edge in a specialization of the activity.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityEdge::redefinedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_redefinedEdge));
-}
+ if (!_inPartition.contains(inPartition)) {
+ _inPartition.insert(inPartition);
+ if (inPartition->asQObject() && this->asQObject())
+ QObject::connect(inPartition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInPartition(QObject *)));
-/*!
- Node from which tokens are taken when they traverse the edge.
- */
-QUmlActivityNode *QUmlActivityEdge::source() const
-{
- return reinterpret_cast<QUmlActivityNode *>(_source);
-}
+ // Adjust subsetted properties
+ addInGroup(inPartition);
-/*!
- Node to which tokens are put when they traverse the edge.
- */
-QUmlActivityNode *QUmlActivityEdge::target() const
-{
- return reinterpret_cast<QUmlActivityNode *>(_target);
+ // Adjust opposite properties
+ if (inPartition) {
+ inPartition->addEdge(this);
+ }
+ }
}
-/*!
- The minimum number of tokens that must traverse the edge at the same time.
- */
-QUmlValueSpecification *QUmlActivityEdge::weight() const
+void QUmlActivityEdge::removeInPartition(QUmlActivityPartition *inPartition)
{
- return reinterpret_cast<QUmlValueSpecification *>(_weight);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_inPartition.contains(inPartition)) {
+ _inPartition.remove(inPartition);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivityEdge::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeInGroup(inPartition);
-/*!
- 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.
- */
-bool QUmlActivityEdge::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ // Adjust opposite properties
+ if (inPartition) {
+ inPartition->removeEdge(this);
+ }
+ }
}
-// OPERATIONS [NamedElement]
-
/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
+ Structured activity node containing the edge.
*/
-QList<QUmlNamespace *> QUmlActivityEdge::allNamespaces() const
+QUmlStructuredActivityNode *
+QUmlActivityEdge::inStructuredNode() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivityEdge::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _inStructuredNode;
}
-/*!
- 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.
- */
-bool QUmlActivityEdge::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlActivityEdge::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActivityEdge::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_inStructuredNode != inStructuredNode) {
+ // Adjust subsetted properties
+ removeInGroup(_inStructuredNode);
-// OPERATIONS [RedefinableElement]
+ _inStructuredNode = inStructuredNode;
+ if (inStructuredNode->asQObject() && this->asQObject())
+ QObject::connect(inStructuredNode->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInStructuredNode()));
-/*!
- 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.
- */
-bool QUmlActivityEdge::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (inStructuredNode) {
+ addInGroup(inStructuredNode);
+ }
+ setOwner(inStructuredNode);
+ }
}
/*!
- 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.
+ Region that the edge can interrupt.
*/
-bool QUmlActivityEdge::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlInterruptibleActivityRegion *
+QUmlActivityEdge::interrupts() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActivityEdge::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _interrupts;
}
-void QUmlActivityEdge::removeOwnedComment(UmlComment *ownedComment)
+void QUmlActivityEdge::setInterrupts(QUmlInterruptibleActivityRegion *interrupts)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-void QUmlActivityEdge::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ if (_interrupts != interrupts) {
+ _interrupts = interrupts;
+ if (interrupts->asQObject() && this->asQObject())
+ QObject::connect(interrupts->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInterrupts()));
+ }
}
-void QUmlActivityEdge::removeClientDependency(UmlDependency *clientDependency)
+/*!
+ Inherited edges replaced by this edge in a specialization of the activity.
+ */
+const QSet<QUmlActivityEdge *>
+QUmlActivityEdge::redefinedEdge() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlActivityEdge::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _redefinedEdge;
}
-void QUmlActivityEdge::setNameExpression(QUmlStringExpression *nameExpression)
+void QUmlActivityEdge::addRedefinedEdge(QUmlActivityEdge *redefinedEdge)
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlActivityEdge::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
+ if (!_redefinedEdge.contains(redefinedEdge)) {
+ _redefinedEdge.insert(redefinedEdge);
+ if (redefinedEdge->asQObject() && this->asQObject())
+ QObject::connect(redefinedEdge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedEdge(QObject *)));
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+ // Adjust subsetted properties
+ addRedefinedElement(redefinedEdge);
+ }
+}
-void QUmlActivityEdge::setLeaf(bool isLeaf)
+void QUmlActivityEdge::removeRedefinedEdge(QUmlActivityEdge *redefinedEdge)
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ActivityEdge]
+ if (_redefinedEdge.contains(redefinedEdge)) {
+ _redefinedEdge.remove(redefinedEdge);
-void QUmlActivityEdge::setActivity(QUmlActivity *activity)
-{
- UmlActivityEdge::setActivity(activity);
+ // Adjust subsetted properties
+ removeRedefinedElement(redefinedEdge);
+ }
}
-void QUmlActivityEdge::setGuard(QUmlValueSpecification *guard)
+/*!
+ Node from which tokens are taken when they traverse the edge.
+ */
+QUmlActivityNode *
+QUmlActivityEdge::source() const
{
- UmlActivityEdge::setGuard(guard);
-}
+ // This is a read-write association end
-void QUmlActivityEdge::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityEdge::addInPartition(inPartition);
+ return _source;
}
-void QUmlActivityEdge::removeInPartition(UmlActivityPartition *inPartition)
+void QUmlActivityEdge::setSource(QUmlActivityNode *source)
{
- UmlActivityEdge::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlActivityEdge::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityEdge::setInStructuredNode(inStructuredNode);
+ if (_source != source) {
+ _source = source;
+ if (source->asQObject() && this->asQObject())
+ QObject::connect(source->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSource()));
+ }
}
-void QUmlActivityEdge::setInterrupts(QUmlInterruptibleActivityRegion *interrupts)
+/*!
+ Node to which tokens are put when they traverse the edge.
+ */
+QUmlActivityNode *
+QUmlActivityEdge::target() const
{
- UmlActivityEdge::setInterrupts(interrupts);
-}
+ // This is a read-write association end
-void QUmlActivityEdge::addRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- UmlActivityEdge::addRedefinedEdge(redefinedEdge);
+ return _target;
}
-void QUmlActivityEdge::removeRedefinedEdge(UmlActivityEdge *redefinedEdge)
+void QUmlActivityEdge::setTarget(QUmlActivityNode *target)
{
- UmlActivityEdge::removeRedefinedEdge(redefinedEdge);
-}
+ // This is a read-write association end
-void QUmlActivityEdge::setSource(QUmlActivityNode *source)
-{
- UmlActivityEdge::setSource(source);
+ if (_target != target) {
+ _target = target;
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTarget()));
+ }
}
-void QUmlActivityEdge::setTarget(QUmlActivityNode *target)
+/*!
+ The minimum number of tokens that must traverse the edge at the same time.
+ */
+QUmlValueSpecification *
+QUmlActivityEdge::weight() const
{
- UmlActivityEdge::setTarget(target);
+ // This is a read-write association end
+
+ return _weight;
}
void QUmlActivityEdge::setWeight(QUmlValueSpecification *weight)
{
- UmlActivityEdge::setWeight(weight);
-}
+ // This is a read-write association end
+
+ if (_weight != weight) {
+ // Adjust subsetted properties
+ removeOwnedElement(_weight);
-QT_END_NAMESPACE
+ _weight = weight;
+ if (weight->asQObject() && this->asQObject())
+ QObject::connect(weight->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setWeight()));
+ weight->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ if (weight) {
+ addOwnedElement(weight);
+ }
+ }
+}
diff --git a/src/uml/qumlactivityedge.h b/src/uml/qumlactivityedge.h
index a75ee8d2..12f16e7e 100644
--- a/src/uml/qumlactivityedge.h
+++ b/src/uml/qumlactivityedge.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivityedge_p.h"
+#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -58,135 +56,58 @@ class QUmlActivity;
class QUmlActivityGroup;
class QUmlActivityNode;
class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
class QUmlStructuredActivityNode;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlActivityEdge : public QObject, public UmlActivityEdge
+class Q_UML_EXPORT QUmlActivityEdge : public QUmlRedefinableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityEdge]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QUmlValueSpecification * guard READ guard)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QUmlInterruptibleActivityRegion * interrupts READ interrupts)
- Q_PROPERTY(QSet<QUmlActivityEdge *> redefinedEdge READ redefinedEdge)
- Q_PROPERTY(QUmlActivityNode * source READ source)
- Q_PROPERTY(QUmlActivityNode * target READ target)
- Q_PROPERTY(QUmlValueSpecification * weight READ weight)
-
public:
- Q_DECL_HIDDEN explicit QUmlActivityEdge(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityEdge]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE QUmlValueSpecification *guard() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE QUmlInterruptibleActivityRegion *interrupts() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> redefinedEdge() const;
- Q_INVOKABLE QUmlActivityNode *source() const;
- Q_INVOKABLE QUmlActivityNode *target() const;
- Q_INVOKABLE QUmlValueSpecification *weight() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityEdge]
+ virtual ~QUmlActivityEdge();
+
+ // Owned attributes
+ QUmlActivity *activity() const;
void setActivity(QUmlActivity *activity);
+ QUmlValueSpecification *guard() const;
void setGuard(QUmlValueSpecification *guard);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
+ const QSet<QUmlActivityGroup *> inGroup() const;
+ Q_DECL_HIDDEN void addInGroup(QUmlActivityGroup *inGroup);
+ Q_DECL_HIDDEN void removeInGroup(QUmlActivityGroup *inGroup);
+ const QSet<QUmlActivityPartition *> inPartition() const;
+ void addInPartition(QUmlActivityPartition *inPartition);
+ void removeInPartition(QUmlActivityPartition *inPartition);
+ QUmlStructuredActivityNode *inStructuredNode() const;
void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
+ QUmlInterruptibleActivityRegion *interrupts() const;
void setInterrupts(QUmlInterruptibleActivityRegion *interrupts);
- void addRedefinedEdge(UmlActivityEdge *redefinedEdge);
- void removeRedefinedEdge(UmlActivityEdge *redefinedEdge);
+ const QSet<QUmlActivityEdge *> redefinedEdge() const;
+ void addRedefinedEdge(QUmlActivityEdge *redefinedEdge);
+ void removeRedefinedEdge(QUmlActivityEdge *redefinedEdge);
+ QUmlActivityNode *source() const;
void setSource(QUmlActivityNode *source);
+ QUmlActivityNode *target() const;
void setTarget(QUmlActivityNode *target);
+ QUmlValueSpecification *weight() const;
void setWeight(QUmlValueSpecification *weight);
+
+protected:
+ explicit QUmlActivityEdge();
+
+ QUmlActivity *_activity;
+ QUmlValueSpecification *_guard;
+ QSet<QUmlActivityGroup *> _inGroup;
+ QSet<QUmlActivityPartition *> _inPartition;
+ QUmlStructuredActivityNode *_inStructuredNode;
+ QUmlInterruptibleActivityRegion *_interrupts;
+ QSet<QUmlActivityEdge *> _redefinedEdge;
+ QUmlActivityNode *_source;
+ QUmlActivityNode *_target;
+ QUmlValueSpecification *_weight;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivityEdge *)
-Q_DECLARE_METATYPE(QList<QUmlActivityEdge *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivityEdge *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivityEdge) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivityfinalnode.cpp b/src/uml/qumlactivityfinalnode.cpp
index c3362403..b6cd4400 100644
--- a/src/uml/qumlactivityfinalnode.cpp
+++ b/src/uml/qumlactivityfinalnode.cpp
@@ -40,392 +40,26 @@
****************************************************************************/
#include "qumlactivityfinalnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlactivityfinalnodeobject_p.h"
/*!
- \class UmlActivityFinalNode
+ \class QUmlActivityFinalNode
\inmodule QtUml
\brief An activity final node is a final node that stops all flows in an activity.
*/
-
-QUmlActivityFinalNode::QUmlActivityFinalNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivityFinalNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActivityFinalNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActivityFinalNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivityFinalNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivityFinalNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActivityFinalNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivityFinalNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlActivityFinalNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActivityFinalNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActivityFinalNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlActivityFinalNode::redefinedElement() const
+QUmlActivityFinalNode::QUmlActivityFinalNode(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (createQObject)
+ _qObject = new QUmlActivityFinalNodeObject(this);
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActivityFinalNode::redefinitionContext() const
+QUmlActivityFinalNode::~QUmlActivityFinalNode()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlActivityFinalNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlActivityFinalNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlActivityFinalNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlActivityFinalNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlActivityFinalNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityFinalNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityFinalNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlActivityFinalNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivityFinalNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActivityFinalNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActivityFinalNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivityFinalNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActivityFinalNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActivityFinalNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlActivityFinalNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlActivityFinalNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActivityFinalNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlActivityFinalNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlActivityFinalNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlActivityFinalNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlActivityFinalNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlActivityFinalNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlActivityFinalNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlActivityFinalNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlActivityFinalNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlActivityFinalNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlActivityFinalNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlActivityFinalNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlActivityFinalNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlActivityFinalNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlActivityFinalNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlActivityFinalNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlActivityFinalNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlActivityFinalNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlActivityFinalNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlActivityFinalNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactivityfinalnode.h b/src/uml/qumlactivityfinalnode.h
index 9c7a8865..e30bb50b 100644
--- a/src/uml/qumlactivityfinalnode.h
+++ b/src/uml/qumlactivityfinalnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivityfinalnode_p.h"
+#include <QtUml/QUmlFinalNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlActivityFinalNode : public QObject, public UmlActivityFinalNode
+class Q_UML_EXPORT QUmlActivityFinalNode : public QUmlFinalNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_INVOKABLE explicit QUmlActivityFinalNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlActivityFinalNode(bool createQObject = true);
+ virtual ~QUmlActivityFinalNode();
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivityFinalNode *)
-Q_DECLARE_METATYPE(QList<QUmlActivityFinalNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivityFinalNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivityFinalNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivitygroup.cpp b/src/uml/qumlactivitygroup.cpp
index 688e89d7..5c04439f 100644
--- a/src/uml/qumlactivitygroup.cpp
+++ b/src/uml/qumlactivitygroup.cpp
@@ -43,253 +43,199 @@
#include <QtUml/QUmlActivity>
#include <QtUml/QUmlActivityEdge>
#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlActivityGroup
+ \class QUmlActivityGroup
\inmodule QtUml
\brief ActivityGroup is an abstract class for defining sets of nodes and edges in an activity.
*/
-
-QUmlActivityGroup::QUmlActivityGroup(QObject *parent) :
- QObject(parent)
+QUmlActivityGroup::QUmlActivityGroup() :
+ _inActivity(0),
+ _superGroup(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivityGroup::ownedComment() const
+QUmlActivityGroup::~QUmlActivityGroup()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ Edges immediately contained in the group.
*/
-const QSet<QUmlElement *> QUmlActivityGroup::ownedElement() const
+const QSet<QUmlActivityEdge *>
+QUmlActivityGroup::containedEdge() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-only derived union association end
+
+ return _containedEdge;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActivityGroup::owner() const
+void QUmlActivityGroup::addContainedEdge(QUmlActivityEdge *containedEdge)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (!_containedEdge.contains(containedEdge)) {
+ _containedEdge.insert(containedEdge);
+ if (containedEdge->asQObject() && this->asQObject())
+ QObject::connect(containedEdge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeContainedEdge(QObject *)));
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivityGroup::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ // Adjust opposite properties
+ if (containedEdge) {
+ containedEdge->addInGroup(this);
+ }
+ }
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivityGroup::name() const
+void QUmlActivityGroup::removeContainedEdge(QUmlActivityEdge *containedEdge)
{
- return _name;
-}
+ // This is a read-only derived union association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActivityGroup::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (_containedEdge.contains(containedEdge)) {
+ _containedEdge.remove(containedEdge);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivityGroup::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // Adjust opposite properties
+ if (containedEdge) {
+ containedEdge->removeInGroup(this);
+ }
+ }
}
/*!
- 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.
+ Nodes immediately contained in the group.
*/
-QString QUmlActivityGroup::qualifiedName() const
+const QSet<QUmlActivityNode *>
+QUmlActivityGroup::containedNode() const
{
- return UmlNamedElement::qualifiedName();
+ // This is a read-only derived union association end
+
+ return _containedNode;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActivityGroup::visibility() const
+void QUmlActivityGroup::addContainedNode(QUmlActivityNode *containedNode)
{
- return _visibility;
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [ActivityGroup]
+ if (!_containedNode.contains(containedNode)) {
+ _containedNode.insert(containedNode);
+ if (containedNode->asQObject() && this->asQObject())
+ QObject::connect(containedNode->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeContainedNode(QObject *)));
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityGroup::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
+ // Adjust opposite properties
+ if (containedNode) {
+ containedNode->addInGroup(this);
+ }
+ }
}
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlActivityGroup::containedNode() const
+void QUmlActivityGroup::removeContainedNode(QUmlActivityNode *containedNode)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
+ // This is a read-only derived union association end
-/*!
- Activity containing the group.
- */
-QUmlActivity *QUmlActivityGroup::inActivity() const
-{
- return reinterpret_cast<QUmlActivity *>(_inActivity);
-}
+ if (_containedNode.contains(containedNode)) {
+ _containedNode.remove(containedNode);
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlActivityGroup::subgroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
+ // Adjust opposite properties
+ if (containedNode) {
+ containedNode->removeInGroup(this);
+ }
+ }
}
/*!
- Group immediately containing the group.
+ Activity containing the group.
*/
-QUmlActivityGroup *QUmlActivityGroup::superGroup() const
+QUmlActivity *
+QUmlActivityGroup::inActivity() const
{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivityGroup::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _inActivity;
}
-/*!
- 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.
- */
-bool QUmlActivityGroup::mustBeOwned() const
+void QUmlActivityGroup::setInActivity(QUmlActivity *inActivity)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_inActivity != inActivity) {
+ // Adjust subsetted properties
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActivityGroup::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ _inActivity = inActivity;
+ if (inActivity->asQObject() && this->asQObject())
+ QObject::connect(inActivity->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInActivity()));
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivityGroup::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust subsetted properties
+ setOwner(inActivity);
+ }
}
/*!
- 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.
+ Groups immediately contained in the group.
*/
-bool QUmlActivityGroup::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+const QSet<QUmlActivityGroup *>
+QUmlActivityGroup::subgroup() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // This is a read-only derived union association end
+
+ return _subgroup;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActivityGroup::separator() const
+void QUmlActivityGroup::addSubgroup(QUmlActivityGroup *subgroup)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-only derived union association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ if (!_subgroup.contains(subgroup)) {
+ _subgroup.insert(subgroup);
+ if (subgroup->asQObject() && this->asQObject())
+ QObject::connect(subgroup->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubgroup(QObject *)));
+ subgroup->asQObject()->setParent(this->asQObject());
-void QUmlActivityGroup::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust subsetted properties
+ addOwnedElement(subgroup);
+ }
}
-void QUmlActivityGroup::removeOwnedComment(UmlComment *ownedComment)
+void QUmlActivityGroup::removeSubgroup(QUmlActivityGroup *subgroup)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-only derived union association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (_subgroup.contains(subgroup)) {
+ _subgroup.remove(subgroup);
+ if (subgroup->asQObject())
+ subgroup->asQObject()->setParent(0);
-void QUmlActivityGroup::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ removeOwnedElement(subgroup);
+ }
}
-void QUmlActivityGroup::removeClientDependency(UmlDependency *clientDependency)
+/*!
+ Group immediately containing the group.
+ */
+QUmlActivityGroup *
+QUmlActivityGroup::superGroup() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-only derived union association end
-void QUmlActivityGroup::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _superGroup;
}
-void QUmlActivityGroup::setNameExpression(QUmlStringExpression *nameExpression)
+void QUmlActivityGroup::setSuperGroup(QUmlActivityGroup *superGroup)
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-only derived union association end
-void QUmlActivityGroup::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
+ if (_superGroup != superGroup) {
+ // Adjust subsetted properties
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
+ _superGroup = superGroup;
+ if (superGroup->asQObject() && this->asQObject())
+ QObject::connect(superGroup->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSuperGroup()));
-void QUmlActivityGroup::setInActivity(QUmlActivity *inActivity)
-{
- UmlActivityGroup::setInActivity(inActivity);
+ // Adjust subsetted properties
+ setOwner(superGroup);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactivitygroup.h b/src/uml/qumlactivitygroup.h
index 0d4ab1ef..9ec10483 100644
--- a/src/uml/qumlactivitygroup.h
+++ b/src/uml/qumlactivitygroup.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivitygroup_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -57,93 +55,40 @@ QT_MODULE(QtUml)
class QUmlActivity;
class QUmlActivityEdge;
class QUmlActivityNode;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlActivityGroup : public QObject, public UmlActivityGroup
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QUmlActivity * inActivity READ inActivity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
+class Q_UML_EXPORT QUmlActivityGroup : public virtual QUmlNamedElement
+{
public:
- Q_DECL_HIDDEN explicit QUmlActivityGroup(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE QUmlActivity *inActivity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [ActivityGroup]
+ virtual ~QUmlActivityGroup();
+
+ // Owned attributes
+ const QSet<QUmlActivityEdge *> containedEdge() const;
+ Q_DECL_HIDDEN void addContainedEdge(QUmlActivityEdge *containedEdge);
+ Q_DECL_HIDDEN void removeContainedEdge(QUmlActivityEdge *containedEdge);
+ const QSet<QUmlActivityNode *> containedNode() const;
+ Q_DECL_HIDDEN void addContainedNode(QUmlActivityNode *containedNode);
+ Q_DECL_HIDDEN void removeContainedNode(QUmlActivityNode *containedNode);
+ QUmlActivity *inActivity() const;
void setInActivity(QUmlActivity *inActivity);
+ const QSet<QUmlActivityGroup *> subgroup() const;
+ Q_DECL_HIDDEN void addSubgroup(QUmlActivityGroup *subgroup);
+ Q_DECL_HIDDEN void removeSubgroup(QUmlActivityGroup *subgroup);
+ QUmlActivityGroup *superGroup() const;
+ Q_DECL_HIDDEN void setSuperGroup(QUmlActivityGroup *superGroup);
+
+protected:
+ explicit QUmlActivityGroup();
+
+ QSet<QUmlActivityEdge *> _containedEdge;
+ QSet<QUmlActivityNode *> _containedNode;
+ QUmlActivity *_inActivity;
+ QSet<QUmlActivityGroup *> _subgroup;
+ QUmlActivityGroup *_superGroup;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivityGroup *)
-Q_DECLARE_METATYPE(QList<QUmlActivityGroup *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivityGroup *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivityGroup) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivitynode.cpp b/src/uml/qumlactivitynode.cpp
index a658c19a..271ef3bc 100644
--- a/src/uml/qumlactivitynode.cpp
+++ b/src/uml/qumlactivitynode.cpp
@@ -44,387 +44,337 @@
#include <QtUml/QUmlActivityEdge>
#include <QtUml/QUmlActivityGroup>
#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlStructuredActivityNode>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlActivityNode
+ \class QUmlActivityNode
\inmodule QtUml
\brief ActivityNode is an abstract class for points in the flow of an activity connected by edges.
*/
-
-QUmlActivityNode::QUmlActivityNode(QObject *parent) :
- QObject(parent)
+QUmlActivityNode::QUmlActivityNode() :
+ _activity(0),
+ _inStructuredNode(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivityNode::ownedComment() const
+QUmlActivityNode::~QUmlActivityNode()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ Activity containing the node.
*/
-const QSet<QUmlElement *> QUmlActivityNode::ownedElement() const
+QUmlActivity *
+QUmlActivityNode::activity() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _activity;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActivityNode::owner() const
+void QUmlActivityNode::setActivity(QUmlActivity *activity)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (_activity != activity) {
+ // Adjust subsetted properties
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivityNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ _activity = activity;
+ if (activity->asQObject() && this->asQObject())
+ QObject::connect(activity->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setActivity()));
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivityNode::name() const
-{
- return _name;
+ // Adjust subsetted properties
+ setOwner(activity);
+ }
}
/*!
- The string expression used to define the name of this named element.
+ Groups containing the node.
*/
-QUmlStringExpression *QUmlActivityNode::nameExpression() const
+const QSet<QUmlActivityGroup *>
+QUmlActivityNode::inGroup() const
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-only derived union association end
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivityNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ return _inGroup;
}
-/*!
- 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.
- */
-QString QUmlActivityNode::qualifiedName() const
+void QUmlActivityNode::addInGroup(QUmlActivityGroup *inGroup)
{
- return UmlNamedElement::qualifiedName();
+ // This is a read-only derived union association end
+
+ if (!_inGroup.contains(inGroup)) {
+ _inGroup.insert(inGroup);
+ if (inGroup->asQObject() && this->asQObject())
+ QObject::connect(inGroup->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInGroup(QObject *)));
+
+ // Adjust opposite properties
+ if (inGroup) {
+ inGroup->addContainedNode(this);
+ }
+ }
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActivityNode::visibility() const
+void QUmlActivityNode::removeInGroup(QUmlActivityGroup *inGroup)
{
- return _visibility;
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [RedefinableElement]
+ if (_inGroup.contains(inGroup)) {
+ _inGroup.remove(inGroup);
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActivityNode::isLeaf() const
-{
- return _isLeaf;
+ // Adjust opposite properties
+ if (inGroup) {
+ inGroup->removeContainedNode(this);
+ }
+ }
}
/*!
- The redefinable element that is being redefined by this element.
+ Interruptible regions containing the node.
*/
-const QSet<QUmlRedefinableElement *> QUmlActivityNode::redefinedElement() const
+const QSet<QUmlInterruptibleActivityRegion *>
+QUmlActivityNode::inInterruptibleRegion() const
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ // This is a read-write association end
+
+ return _inInterruptibleRegion;
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActivityNode::redefinitionContext() const
+void QUmlActivityNode::addInInterruptibleRegion(QUmlInterruptibleActivityRegion *inInterruptibleRegion)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ActivityNode]
+ if (!_inInterruptibleRegion.contains(inInterruptibleRegion)) {
+ _inInterruptibleRegion.insert(inInterruptibleRegion);
+ if (inInterruptibleRegion->asQObject() && this->asQObject())
+ QObject::connect(inInterruptibleRegion->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInInterruptibleRegion(QObject *)));
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlActivityNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
+ // Adjust subsetted properties
+ addInGroup(inInterruptibleRegion);
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlActivityNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
+ // Adjust opposite properties
+ if (inInterruptibleRegion) {
+ inInterruptibleRegion->addNode(this);
+ }
+ }
}
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlActivityNode::inInterruptibleRegion() const
+void QUmlActivityNode::removeInInterruptibleRegion(QUmlInterruptibleActivityRegion *inInterruptibleRegion)
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
+ // This is a read-write association end
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlActivityNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
+ if (_inInterruptibleRegion.contains(inInterruptibleRegion)) {
+ _inInterruptibleRegion.remove(inInterruptibleRegion);
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlActivityNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
+ // Adjust subsetted properties
+ removeInGroup(inInterruptibleRegion);
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
+ // Adjust opposite properties
+ if (inInterruptibleRegion) {
+ inInterruptibleRegion->removeNode(this);
+ }
+ }
}
/*!
- Edges that have the node as source.
+ Partitions containing the node.
*/
-const QSet<QUmlActivityEdge *> QUmlActivityNode::outgoing() const
+const QSet<QUmlActivityPartition *>
+QUmlActivityNode::inPartition() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ // This is a read-write association end
+
+ return _inPartition;
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlActivityNode::redefinedNode() const
+void QUmlActivityNode::addInPartition(QUmlActivityPartition *inPartition)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_inPartition.contains(inPartition)) {
+ _inPartition.insert(inPartition);
+ if (inPartition->asQObject() && this->asQObject())
+ QObject::connect(inPartition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInPartition(QObject *)));
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivityNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addInGroup(inPartition);
+
+ // Adjust opposite properties
+ if (inPartition) {
+ inPartition->addNode(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlActivityNode::mustBeOwned() const
+void QUmlActivityNode::removeInPartition(QUmlActivityPartition *inPartition)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_inPartition.contains(inPartition)) {
+ _inPartition.remove(inPartition);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActivityNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeInGroup(inPartition);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivityNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (inPartition) {
+ inPartition->removeNode(this);
+ }
+ }
}
/*!
- 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.
+ Structured activity node containing the node.
*/
-bool QUmlActivityNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlStructuredActivityNode *
+QUmlActivityNode::inStructuredNode() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // This is a read-write association end
+
+ return _inStructuredNode;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActivityNode::separator() const
+void QUmlActivityNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
+ if (_inStructuredNode != inStructuredNode) {
+ // Adjust subsetted properties
+ removeInGroup(_inStructuredNode);
-/*!
- 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.
- */
-bool QUmlActivityNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ _inStructuredNode = inStructuredNode;
+ if (inStructuredNode->asQObject() && this->asQObject())
+ QObject::connect(inStructuredNode->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInStructuredNode()));
+
+ // Adjust subsetted properties
+ if (inStructuredNode) {
+ addInGroup(inStructuredNode);
+ }
+ setOwner(inStructuredNode);
+ }
}
/*!
- 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.
+ Edges that have the node as target.
*/
-bool QUmlActivityNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+const QSet<QUmlActivityEdge *>
+QUmlActivityNode::incoming() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActivityNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _incoming;
}
-void QUmlActivityNode::removeOwnedComment(UmlComment *ownedComment)
+void QUmlActivityNode::addIncoming(QUmlActivityEdge *incoming)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_incoming.contains(incoming)) {
+ _incoming.insert(incoming);
+ if (incoming->asQObject() && this->asQObject())
+ QObject::connect(incoming->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeIncoming(QObject *)));
-void QUmlActivityNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust opposite properties
+ if (incoming) {
+ incoming->setTarget(this);
+ }
+ }
}
-void QUmlActivityNode::removeClientDependency(UmlDependency *clientDependency)
+void QUmlActivityNode::removeIncoming(QUmlActivityEdge *incoming)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlActivityNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (_incoming.contains(incoming)) {
+ _incoming.remove(incoming);
-void QUmlActivityNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ // Adjust opposite properties
+ if (incoming) {
+ incoming->setTarget(0);
+ }
+ }
}
-void QUmlActivityNode::setVisibility(QtUml::VisibilityKind visibility)
+/*!
+ Edges that have the node as source.
+ */
+const QSet<QUmlActivityEdge *>
+QUmlActivityNode::outgoing() const
{
- UmlNamedElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+ return _outgoing;
+}
-void QUmlActivityNode::setLeaf(bool isLeaf)
+void QUmlActivityNode::addOutgoing(QUmlActivityEdge *outgoing)
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+ if (!_outgoing.contains(outgoing)) {
+ _outgoing.insert(outgoing);
+ if (outgoing->asQObject() && this->asQObject())
+ QObject::connect(outgoing->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOutgoing(QObject *)));
-void QUmlActivityNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
+ // Adjust opposite properties
+ if (outgoing) {
+ outgoing->setSource(this);
+ }
+ }
}
-void QUmlActivityNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
+void QUmlActivityNode::removeOutgoing(QUmlActivityEdge *outgoing)
{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
+ // This is a read-write association end
-void QUmlActivityNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
+ if (_outgoing.contains(outgoing)) {
+ _outgoing.remove(outgoing);
-void QUmlActivityNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
+ // Adjust opposite properties
+ if (outgoing) {
+ outgoing->setSource(0);
+ }
+ }
}
-void QUmlActivityNode::removeInPartition(UmlActivityPartition *inPartition)
+/*!
+ Inherited nodes replaced by this node in a specialization of the activity.
+ */
+const QSet<QUmlActivityNode *>
+QUmlActivityNode::redefinedNode() const
{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlActivityNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
+ return _redefinedNode;
}
-void QUmlActivityNode::addIncoming(UmlActivityEdge *incoming)
+void QUmlActivityNode::addRedefinedNode(QUmlActivityNode *redefinedNode)
{
- UmlActivityNode::addIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlActivityNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
+ if (!_redefinedNode.contains(redefinedNode)) {
+ _redefinedNode.insert(redefinedNode);
+ if (redefinedNode->asQObject() && this->asQObject())
+ QObject::connect(redefinedNode->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedNode(QObject *)));
-void QUmlActivityNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
+ // Adjust subsetted properties
+ addRedefinedElement(redefinedNode);
+ }
}
-void QUmlActivityNode::removeOutgoing(UmlActivityEdge *outgoing)
+void QUmlActivityNode::removeRedefinedNode(QUmlActivityNode *redefinedNode)
{
- UmlActivityNode::removeOutgoing(outgoing);
-}
+ // This is a read-write association end
-void QUmlActivityNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
+ if (_redefinedNode.contains(redefinedNode)) {
+ _redefinedNode.remove(redefinedNode);
-void QUmlActivityNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
+ // Adjust subsetted properties
+ removeRedefinedElement(redefinedNode);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactivitynode.h b/src/uml/qumlactivitynode.h
index a36eb953..fe48977d 100644
--- a/src/uml/qumlactivitynode.h
+++ b/src/uml/qumlactivitynode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivitynode_p.h"
+#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -58,131 +56,54 @@ class QUmlActivity;
class QUmlActivityEdge;
class QUmlActivityGroup;
class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlActivityNode : public QObject, public UmlActivityNode
+class Q_UML_EXPORT QUmlActivityNode : public QUmlRedefinableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_DECL_HIDDEN explicit QUmlActivityNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
+ virtual ~QUmlActivityNode();
+
+ // Owned attributes
+ QUmlActivity *activity() const;
void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
+ const QSet<QUmlActivityGroup *> inGroup() const;
+ Q_DECL_HIDDEN void addInGroup(QUmlActivityGroup *inGroup);
+ Q_DECL_HIDDEN void removeInGroup(QUmlActivityGroup *inGroup);
+ const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
+ void addInInterruptibleRegion(QUmlInterruptibleActivityRegion *inInterruptibleRegion);
+ void removeInInterruptibleRegion(QUmlInterruptibleActivityRegion *inInterruptibleRegion);
+ const QSet<QUmlActivityPartition *> inPartition() const;
+ void addInPartition(QUmlActivityPartition *inPartition);
+ void removeInPartition(QUmlActivityPartition *inPartition);
+ QUmlStructuredActivityNode *inStructuredNode() const;
void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+ const QSet<QUmlActivityEdge *> incoming() const;
+ void addIncoming(QUmlActivityEdge *incoming);
+ void removeIncoming(QUmlActivityEdge *incoming);
+ const QSet<QUmlActivityEdge *> outgoing() const;
+ void addOutgoing(QUmlActivityEdge *outgoing);
+ void removeOutgoing(QUmlActivityEdge *outgoing);
+ const QSet<QUmlActivityNode *> redefinedNode() const;
+ void addRedefinedNode(QUmlActivityNode *redefinedNode);
+ void removeRedefinedNode(QUmlActivityNode *redefinedNode);
+
+protected:
+ explicit QUmlActivityNode();
+
+ QUmlActivity *_activity;
+ QSet<QUmlActivityGroup *> _inGroup;
+ QSet<QUmlInterruptibleActivityRegion *> _inInterruptibleRegion;
+ QSet<QUmlActivityPartition *> _inPartition;
+ QUmlStructuredActivityNode *_inStructuredNode;
+ QSet<QUmlActivityEdge *> _incoming;
+ QSet<QUmlActivityEdge *> _outgoing;
+ QSet<QUmlActivityNode *> _redefinedNode;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivityNode *)
-Q_DECLARE_METATYPE(QList<QUmlActivityNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivityNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivityNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivityparameternode.cpp b/src/uml/qumlactivityparameternode.cpp
index 19f56e98..74cef68f 100644
--- a/src/uml/qumlactivityparameternode.cpp
+++ b/src/uml/qumlactivityparameternode.cpp
@@ -40,505 +40,53 @@
****************************************************************************/
#include "qumlactivityparameternode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlactivityparameternodeobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlParameter>
/*!
- \class UmlActivityParameterNode
+ \class QUmlActivityParameterNode
\inmodule QtUml
\brief An activity parameter node is an object node for inputs and outputs to activities.
*/
-
-QUmlActivityParameterNode::QUmlActivityParameterNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivityParameterNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActivityParameterNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActivityParameterNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivityParameterNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivityParameterNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActivityParameterNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivityParameterNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlActivityParameterNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActivityParameterNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActivityParameterNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlActivityParameterNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActivityParameterNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlActivityParameterNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlActivityParameterNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlActivityParameterNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlActivityParameterNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlActivityParameterNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityParameterNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityParameterNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlActivityParameterNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlActivityParameterNode::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlActivityParameterNode::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlActivityParameterNode::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlActivityParameterNode::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlActivityParameterNode::selection() const
+QUmlActivityParameterNode::QUmlActivityParameterNode(bool createQObject) :
+ _parameter(0)
{
- return reinterpret_cast<QUmlBehavior *>(_selection);
+ if (createQObject)
+ _qObject = new QUmlActivityParameterNodeObject(this);
}
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlActivityParameterNode::upperBound() const
+QUmlActivityParameterNode::~QUmlActivityParameterNode()
{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityParameterNode]
+// OWNED ATTRIBUTES
/*!
The parameter the object node will be accepting or providing values for.
*/
-QUmlParameter *QUmlActivityParameterNode::parameter() const
-{
- return reinterpret_cast<QUmlParameter *>(_parameter);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivityParameterNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActivityParameterNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActivityParameterNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivityParameterNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActivityParameterNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActivityParameterNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlActivityParameterNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlActivityParameterNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActivityParameterNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlActivityParameterNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlActivityParameterNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlActivityParameterNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlActivityParameterNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlActivityParameterNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlActivityParameterNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlActivityParameterNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlActivityParameterNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlActivityParameterNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlActivityParameterNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlActivityParameterNode::addInPartition(UmlActivityPartition *inPartition)
+QUmlParameter *
+QUmlActivityParameterNode::parameter() const
{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlActivityParameterNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlActivityParameterNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlActivityParameterNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
+ return _parameter;
}
-void QUmlActivityParameterNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlActivityParameterNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlActivityParameterNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlActivityParameterNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlActivityParameterNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlActivityParameterNode::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlActivityParameterNode::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlActivityParameterNode::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlActivityParameterNode::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlActivityParameterNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlActivityParameterNode::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlActivityParameterNode::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityParameterNode]
-
void QUmlActivityParameterNode::setParameter(QUmlParameter *parameter)
{
- UmlActivityParameterNode::setParameter(parameter);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_parameter != parameter) {
+ _parameter = parameter;
+ if (parameter->asQObject() && this->asQObject())
+ QObject::connect(parameter->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setParameter()));
+ }
+}
diff --git a/src/uml/qumlactivityparameternode.h b/src/uml/qumlactivityparameternode.h
index 4ec8b28e..e2ef5e3e 100644
--- a/src/uml/qumlactivityparameternode.h
+++ b/src/uml/qumlactivityparameternode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivityparameternode_p.h"
+#include <QtUml/QUmlObjectNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,181 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlParameter;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlActivityParameterNode : public QObject, public UmlActivityParameterNode
+class Q_UML_EXPORT QUmlActivityParameterNode : public QUmlObjectNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [ActivityParameterNode]
- Q_PROPERTY(QUmlParameter * parameter READ parameter)
-
public:
- Q_INVOKABLE explicit QUmlActivityParameterNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
+ explicit QUmlActivityParameterNode(bool createQObject = true);
+ virtual ~QUmlActivityParameterNode();
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Owned attributes [ActivityParameterNode]
- Q_INVOKABLE QUmlParameter *parameter() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
-
- // Slots for owned attributes [ActivityParameterNode]
+ // Owned attributes
+ QUmlParameter *parameter() const;
void setParameter(QUmlParameter *parameter);
+
+protected:
+ QUmlParameter *_parameter;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivityParameterNode *)
-Q_DECLARE_METATYPE(QList<QUmlActivityParameterNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivityParameterNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivityParameterNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlactivitypartition.cpp b/src/uml/qumlactivitypartition.cpp
index f1a1fa19..536a36ee 100644
--- a/src/uml/qumlactivitypartition.cpp
+++ b/src/uml/qumlactivitypartition.cpp
@@ -40,367 +40,259 @@
****************************************************************************/
#include "qumlactivitypartition.h"
-#include <QtUml/QUmlActivity>
+#include "private/qumlactivitypartitionobject_p.h"
+
#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlActivityPartition
+ \class QUmlActivityPartition
\inmodule QtUml
\brief An activity partition is a kind of activity group for identifying actions that have some characteristic in common.
*/
-
-QUmlActivityPartition::QUmlActivityPartition(QObject *parent) :
- QObject(parent)
+QUmlActivityPartition::QUmlActivityPartition(bool createQObject) :
+ _isDimension(false),
+ _isExternal(false),
+ _represents(0),
+ _superPartition(0)
{
+ if (createQObject)
+ _qObject = new QUmlActivityPartitionObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActivityPartition::ownedComment() const
+QUmlActivityPartition::~QUmlActivityPartition()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActivityPartition::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Edges immediately contained in the group.
*/
-QUmlElement *QUmlActivityPartition::owner() const
+const QSet<QUmlActivityEdge *>
+QUmlActivityPartition::edge() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActivityPartition::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _edge;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlActivityPartition::name() const
+void QUmlActivityPartition::addEdge(QUmlActivityEdge *edge)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActivityPartition::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (!_edge.contains(edge)) {
+ _edge.insert(edge);
+ if (edge->asQObject() && this->asQObject())
+ QObject::connect(edge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEdge(QObject *)));
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActivityPartition::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // Adjust subsetted properties
+ addContainedEdge(edge);
-/*!
- 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.
- */
-QString QUmlActivityPartition::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust opposite properties
+ if (edge) {
+ edge->addInPartition(this);
+ }
+ }
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlActivityPartition::visibility() const
+void QUmlActivityPartition::removeEdge(QUmlActivityEdge *edge)
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [ActivityGroup]
+ // This is a read-write association end
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityPartition::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
-}
+ if (_edge.contains(edge)) {
+ _edge.remove(edge);
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlActivityPartition::containedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
+ // Adjust subsetted properties
+ removeContainedEdge(edge);
-/*!
- Activity containing the group.
- */
-QUmlActivity *QUmlActivityPartition::inActivity() const
-{
- return reinterpret_cast<QUmlActivity *>(_inActivity);
+ // Adjust opposite properties
+ if (edge) {
+ edge->removeInPartition(this);
+ }
+ }
}
/*!
- Groups immediately contained in the group.
+ Tells whether the partition groups other partitions along a dimension.
*/
-const QSet<QUmlActivityGroup *> QUmlActivityPartition::subgroup() const
+bool
+QUmlActivityPartition::isDimension() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
-}
+ // This is a read-write property
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlActivityPartition::superGroup() const
-{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
+ return _isDimension;
}
-// OWNED ATTRIBUTES [ActivityPartition]
-
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlActivityPartition::edge() const
+void QUmlActivityPartition::setDimension(bool isDimension)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
+ // This is a read-write property
-/*!
- Tells whether the partition groups other partitions along a dimension.
- */
-bool QUmlActivityPartition::isDimension() const
-{
- return _isDimension;
+ if (_isDimension != isDimension) {
+ _isDimension = isDimension;
+ }
}
/*!
Tells whether the partition represents an entity to which the partitioning structure does not apply.
*/
-bool QUmlActivityPartition::isExternal() const
+bool
+QUmlActivityPartition::isExternal() const
{
- return _isExternal;
-}
+ // This is a read-write property
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlActivityPartition::node() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
+ return _isExternal;
}
-/*!
- An element constraining behaviors invoked by nodes in the partition.
- */
-QUmlElement *QUmlActivityPartition::represents() const
+void QUmlActivityPartition::setExternal(bool isExternal)
{
- return reinterpret_cast<QUmlElement *>(_represents);
-}
+ // This is a read-write property
-/*!
- Partitions immediately contained in the partition.
- */
-const QSet<QUmlActivityPartition *> QUmlActivityPartition::subpartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_subpartition));
+ if (_isExternal != isExternal) {
+ _isExternal = isExternal;
+ }
}
/*!
- Partition immediately containing the partition.
+ Nodes immediately contained in the group.
*/
-QUmlActivityPartition *QUmlActivityPartition::superPartition() const
+const QSet<QUmlActivityNode *>
+QUmlActivityPartition::node() const
{
- return reinterpret_cast<QUmlActivityPartition *>(_superPartition);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActivityPartition::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _node;
}
-/*!
- 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.
- */
-bool QUmlActivityPartition::mustBeOwned() const
+void QUmlActivityPartition::addNode(QUmlActivityNode *node)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_node.contains(node)) {
+ _node.insert(node);
+ if (node->asQObject() && this->asQObject())
+ QObject::connect(node->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNode(QObject *)));
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActivityPartition::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addContainedNode(node);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActivityPartition::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (node) {
+ node->addInPartition(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlActivityPartition::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlActivityPartition::removeNode(QUmlActivityNode *node)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActivityPartition::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_node.contains(node)) {
+ _node.remove(node);
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // Adjust subsetted properties
+ removeContainedNode(node);
-void QUmlActivityPartition::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust opposite properties
+ if (node) {
+ node->removeInPartition(this);
+ }
+ }
}
-void QUmlActivityPartition::removeOwnedComment(UmlComment *ownedComment)
+/*!
+ An element constraining behaviors invoked by nodes in the partition.
+ */
+QUmlElement *
+QUmlActivityPartition::represents() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-void QUmlActivityPartition::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ return _represents;
}
-void QUmlActivityPartition::removeClientDependency(UmlDependency *clientDependency)
+void QUmlActivityPartition::setRepresents(QUmlElement *represents)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlActivityPartition::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ if (_represents != represents) {
+ _represents = represents;
+ if (represents->asQObject() && this->asQObject())
+ QObject::connect(represents->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRepresents()));
+ }
}
-void QUmlActivityPartition::setNameExpression(QUmlStringExpression *nameExpression)
+/*!
+ Partitions immediately contained in the partition.
+ */
+const QSet<QUmlActivityPartition *>
+QUmlActivityPartition::subpartition() const
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlActivityPartition::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _subpartition;
}
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-void QUmlActivityPartition::setInActivity(QUmlActivity *inActivity)
+void QUmlActivityPartition::addSubpartition(QUmlActivityPartition *subpartition)
{
- UmlActivityGroup::setInActivity(inActivity);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ActivityPartition]
+ if (!_subpartition.contains(subpartition)) {
+ _subpartition.insert(subpartition);
+ if (subpartition->asQObject() && this->asQObject())
+ QObject::connect(subpartition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubpartition(QObject *)));
+ subpartition->asQObject()->setParent(this->asQObject());
-void QUmlActivityPartition::addEdge(UmlActivityEdge *edge)
-{
- UmlActivityPartition::addEdge(edge);
+ // Adjust subsetted properties
+ addSubgroup(subpartition);
+ }
}
-void QUmlActivityPartition::removeEdge(UmlActivityEdge *edge)
+void QUmlActivityPartition::removeSubpartition(QUmlActivityPartition *subpartition)
{
- UmlActivityPartition::removeEdge(edge);
-}
+ // This is a read-write association end
-void QUmlActivityPartition::setDimension(bool isDimension)
-{
- UmlActivityPartition::setDimension(isDimension);
-}
+ if (_subpartition.contains(subpartition)) {
+ _subpartition.remove(subpartition);
+ if (subpartition->asQObject())
+ subpartition->asQObject()->setParent(0);
-void QUmlActivityPartition::setExternal(bool isExternal)
-{
- UmlActivityPartition::setExternal(isExternal);
+ // Adjust subsetted properties
+ removeSubgroup(subpartition);
+ }
}
-void QUmlActivityPartition::addNode(UmlActivityNode *node)
+/*!
+ Partition immediately containing the partition.
+ */
+QUmlActivityPartition *
+QUmlActivityPartition::superPartition() const
{
- UmlActivityPartition::addNode(node);
-}
+ // This is a read-write association end
-void QUmlActivityPartition::removeNode(UmlActivityNode *node)
-{
- UmlActivityPartition::removeNode(node);
+ return _superPartition;
}
-void QUmlActivityPartition::setRepresents(QUmlElement *represents)
+void QUmlActivityPartition::setSuperPartition(QUmlActivityPartition *superPartition)
{
- UmlActivityPartition::setRepresents(represents);
-}
+ // This is a read-write association end
-void QUmlActivityPartition::addSubpartition(UmlActivityPartition *subpartition)
-{
- UmlActivityPartition::addSubpartition(subpartition);
-}
+ if (_superPartition != superPartition) {
+ // Adjust subsetted properties
-void QUmlActivityPartition::removeSubpartition(UmlActivityPartition *subpartition)
-{
- UmlActivityPartition::removeSubpartition(subpartition);
-}
+ _superPartition = superPartition;
+ if (superPartition->asQObject() && this->asQObject())
+ QObject::connect(superPartition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSuperPartition()));
-void QUmlActivityPartition::setSuperPartition(QUmlActivityPartition *superPartition)
-{
- UmlActivityPartition::setSuperPartition(superPartition);
+ // Adjust subsetted properties
+ setSuperGroup(superPartition);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactivitypartition.h b/src/uml/qumlactivitypartition.h
index f96c2624..de40ef37 100644
--- a/src/uml/qumlactivitypartition.h
+++ b/src/uml/qumlactivitypartition.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactivitypartition_p.h"
+#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,127 +52,48 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
class QUmlActivityEdge;
-class QUmlActivityGroup;
class QUmlActivityNode;
-class QUmlComment;
-class QUmlDependency;
class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlActivityPartition : public QObject, public UmlActivityPartition
+class Q_UML_EXPORT QUmlActivityPartition : public QUmlActivityGroup
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QUmlActivity * inActivity READ inActivity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [ActivityPartition]
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(bool isDimension READ isDimension)
- Q_PROPERTY(bool isExternal READ isExternal)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
- Q_PROPERTY(QUmlElement * represents READ represents)
- Q_PROPERTY(QSet<QUmlActivityPartition *> subpartition READ subpartition)
- Q_PROPERTY(QUmlActivityPartition * superPartition READ superPartition)
-
public:
- Q_INVOKABLE explicit QUmlActivityPartition(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE QUmlActivity *inActivity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [ActivityPartition]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE bool isDimension() const;
- Q_INVOKABLE bool isExternal() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
- Q_INVOKABLE QUmlElement *represents() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> subpartition() const;
- Q_INVOKABLE QUmlActivityPartition *superPartition() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [ActivityGroup]
- void setInActivity(QUmlActivity *inActivity);
-
- // Slots for owned attributes [ActivityPartition]
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
+ explicit QUmlActivityPartition(bool createQObject = true);
+ virtual ~QUmlActivityPartition();
+
+ // Owned attributes
+ const QSet<QUmlActivityEdge *> edge() const;
+ void addEdge(QUmlActivityEdge *edge);
+ void removeEdge(QUmlActivityEdge *edge);
+ bool isDimension() const;
void setDimension(bool isDimension);
+ bool isExternal() const;
void setExternal(bool isExternal);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
+ const QSet<QUmlActivityNode *> node() const;
+ void addNode(QUmlActivityNode *node);
+ void removeNode(QUmlActivityNode *node);
+ QUmlElement *represents() const;
void setRepresents(QUmlElement *represents);
- void addSubpartition(UmlActivityPartition *subpartition);
- void removeSubpartition(UmlActivityPartition *subpartition);
+ const QSet<QUmlActivityPartition *> subpartition() const;
+ void addSubpartition(QUmlActivityPartition *subpartition);
+ void removeSubpartition(QUmlActivityPartition *subpartition);
+ QUmlActivityPartition *superPartition() const;
void setSuperPartition(QUmlActivityPartition *superPartition);
+
+protected:
+ QSet<QUmlActivityEdge *> _edge;
+ bool _isDimension;
+ bool _isExternal;
+ QSet<QUmlActivityNode *> _node;
+ QUmlElement *_represents;
+ QSet<QUmlActivityPartition *> _subpartition;
+ QUmlActivityPartition *_superPartition;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActivityPartition *)
-Q_DECLARE_METATYPE(QList<QUmlActivityPartition *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActivityPartition *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActivityPartition) *)
QT_END_HEADER
diff --git a/src/uml/qumlactor.cpp b/src/uml/qumlactor.cpp
index 6edeec76..b1da8467 100644
--- a/src/uml/qumlactor.cpp
+++ b/src/uml/qumlactor.cpp
@@ -40,875 +40,26 @@
****************************************************************************/
#include "qumlactor.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlactorobject_p.h"
/*!
- \class UmlActor
+ \class QUmlActor
\inmodule QtUml
\brief An actor specifies a role played by a user or any other system that interacts with the subject.
*/
-
-QUmlActor::QUmlActor(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlActor::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlActor::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlActor::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlActor::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlActor::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlActor::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlActor::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlActor::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlActor::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlActor::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlActor::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlActor::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlActor::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlActor::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlActor::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlActor::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlActor::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlActor::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlActor::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlActor::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlActor::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlActor::attribute() const
+QUmlActor::QUmlActor(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
+ if (createQObject)
+ _qObject = new QUmlActorObject(this);
}
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlActor::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlActor::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlActor::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlActor::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlActor::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActor::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlActor::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlActor::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlActor::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlActor::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlActor::redefinedClassifier() const
+QUmlActor::~QUmlActor()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlActor::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlActor::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlActor::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlActor::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlActor::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlActor::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlActor::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlActor::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActor::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlActor::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlActor::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActor::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlActor::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlActor::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlActor::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlActor::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlActor::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlActor::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlActor::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlActor::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlActor::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlActor::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlActor::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlActor::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlActor::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlActor::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlActor::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlActor::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlActor::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlActor::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlActor::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlActor::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlActor::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlActor::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlActor::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlActor::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlActor::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlActor::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlActor::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlActor::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlActor::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlActor::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlActor::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlActor::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlActor::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlActor::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlActor::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlActor::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlActor::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlActor::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlActor::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlActor::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlActor::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlActor::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlActor::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlActor::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlActor::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlActor::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlActor::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlActor::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlActor::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlActor::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlActor::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlActor::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlActor::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlActor::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlActor::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlActor::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlActor::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlActor::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlActor::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlActor::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlActor::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlActor::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlActor::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlactor.h b/src/uml/qumlactor.h
index f6a3996b..2e41bb90 100644
--- a/src/uml/qumlactor.h
+++ b/src/uml/qumlactor.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlactor_p.h"
+#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,275 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlActor : public QObject, public UmlActor
+class Q_UML_EXPORT QUmlActor : public QUmlBehavioredClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
public:
- Q_INVOKABLE explicit QUmlActor(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ explicit QUmlActor(bool createQObject = true);
+ virtual ~QUmlActor();
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlActor *)
-Q_DECLARE_METATYPE(QList<QUmlActor *> *)
-Q_DECLARE_METATYPE(QSet<QUmlActor *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlActor) *)
QT_END_HEADER
diff --git a/src/uml/qumladdstructuralfeaturevalueaction.cpp b/src/uml/qumladdstructuralfeaturevalueaction.cpp
index 8467a293..3adbb269 100644
--- a/src/uml/qumladdstructuralfeaturevalueaction.cpp
+++ b/src/uml/qumladdstructuralfeaturevalueaction.cpp
@@ -40,586 +40,83 @@
****************************************************************************/
#include "qumladdstructuralfeaturevalueaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuralFeature>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumladdstructuralfeaturevalueactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlAddStructuralFeatureValueAction
+ \class QUmlAddStructuralFeatureValueAction
\inmodule QtUml
\brief An add structural feature value action is a write structural feature action for adding values to a structural feature.
*/
-
-QUmlAddStructuralFeatureValueAction::QUmlAddStructuralFeatureValueAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAddStructuralFeatureValueAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAddStructuralFeatureValueAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAddStructuralFeatureValueAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAddStructuralFeatureValueAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlAddStructuralFeatureValueAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAddStructuralFeatureValueAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAddStructuralFeatureValueAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAddStructuralFeatureValueAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlAddStructuralFeatureValueAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAddStructuralFeatureValueAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAddStructuralFeatureValueAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAddStructuralFeatureValueAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlAddStructuralFeatureValueAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlAddStructuralFeatureValueAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlAddStructuralFeatureValueAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlAddStructuralFeatureValueAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlAddStructuralFeatureValueAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlAddStructuralFeatureValueAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlAddStructuralFeatureValueAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlAddStructuralFeatureValueAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlAddStructuralFeatureValueAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlAddStructuralFeatureValueAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlAddStructuralFeatureValueAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlAddStructuralFeatureValueAction::isLocallyReentrant() const
+QUmlAddStructuralFeatureValueAction::QUmlAddStructuralFeatureValueAction(bool createQObject) :
+ _insertAt(0),
+ _isReplaceAll(false)
{
- return _isLocallyReentrant;
+ if (createQObject)
+ _qObject = new QUmlAddStructuralFeatureValueActionObject(this);
}
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlAddStructuralFeatureValueAction::localPostcondition() const
+QUmlAddStructuralFeatureValueAction::~QUmlAddStructuralFeatureValueAction()
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlAddStructuralFeatureValueAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlAddStructuralFeatureValueAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [StructuralFeatureAction]
-
-/*!
- Gives the input pin from which the object whose structural feature is to be read or written is obtained.
- */
-QUmlInputPin *QUmlAddStructuralFeatureValueAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-/*!
- Structural feature to be read.
- */
-QUmlStructuralFeature *QUmlAddStructuralFeatureValueAction::structuralFeature() const
-{
- return reinterpret_cast<QUmlStructuralFeature *>(_structuralFeature);
-}
-
-// OWNED ATTRIBUTES [WriteStructuralFeatureAction]
-
-/*!
- Gives the output pin on which the result is put.
- */
-QUmlOutputPin *QUmlAddStructuralFeatureValueAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-/*!
- Value to be added or removed from the structural feature.
- */
-QUmlInputPin *QUmlAddStructuralFeatureValueAction::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OWNED ATTRIBUTES [AddStructuralFeatureValueAction]
+// OWNED ATTRIBUTES
/*!
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.
*/
-QUmlInputPin *QUmlAddStructuralFeatureValueAction::insertAt() const
-{
- return reinterpret_cast<QUmlInputPin *>(_insertAt);
-}
-
-/*!
- Specifies whether existing values of the structural feature of the object should be removed before adding the new value.
- */
-bool QUmlAddStructuralFeatureValueAction::isReplaceAll() const
+QUmlInputPin *
+QUmlAddStructuralFeatureValueAction::insertAt() const
{
- return _isReplaceAll;
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAddStructuralFeatureValueAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _insertAt;
}
-/*!
- 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.
- */
-bool QUmlAddStructuralFeatureValueAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAddStructuralFeatureValueAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAddStructuralFeatureValueAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAddStructuralFeatureValueAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlAddStructuralFeatureValueAction::setInsertAt(QUmlInputPin *insertAt)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAddStructuralFeatureValueAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_insertAt != insertAt) {
+ // Adjust subsetted properties
+ removeInput(_insertAt);
-// OPERATIONS [RedefinableElement]
+ _insertAt = insertAt;
+ if (insertAt->asQObject() && this->asQObject())
+ QObject::connect(insertAt->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInsertAt()));
+ insertAt->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlAddStructuralFeatureValueAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (insertAt) {
+ addInput(insertAt);
+ }
+ }
}
/*!
- 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.
+ Specifies whether existing values of the structural feature of the object should be removed before adding the new value.
*/
-bool QUmlAddStructuralFeatureValueAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAddStructuralFeatureValueAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeOwnedComment(UmlComment *ownedComment)
+bool
+QUmlAddStructuralFeatureValueAction::isReplaceAll() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAddStructuralFeatureValueAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write property
-void QUmlAddStructuralFeatureValueAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAddStructuralFeatureValueAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAddStructuralFeatureValueAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlAddStructuralFeatureValueAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAddStructuralFeatureValueAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlAddStructuralFeatureValueAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlAddStructuralFeatureValueAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAddStructuralFeatureValueAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlAddStructuralFeatureValueAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlAddStructuralFeatureValueAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlAddStructuralFeatureValueAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlAddStructuralFeatureValueAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlAddStructuralFeatureValueAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlAddStructuralFeatureValueAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlAddStructuralFeatureValueAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlAddStructuralFeatureValueAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlAddStructuralFeatureValueAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
-
-void QUmlAddStructuralFeatureValueAction::setObject(QUmlInputPin *object)
-{
- UmlStructuralFeatureAction::setObject(object);
-}
-
-void QUmlAddStructuralFeatureValueAction::setStructuralFeature(QUmlStructuralFeature *structuralFeature)
-{
- UmlStructuralFeatureAction::setStructuralFeature(structuralFeature);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [WriteStructuralFeatureAction]
-
-void QUmlAddStructuralFeatureValueAction::setResult(QUmlOutputPin *result)
-{
- UmlWriteStructuralFeatureAction::setResult(result);
-}
-
-void QUmlAddStructuralFeatureValueAction::setValue(QUmlInputPin *value)
-{
- UmlWriteStructuralFeatureAction::setValue(value);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [AddStructuralFeatureValueAction]
-
-void QUmlAddStructuralFeatureValueAction::setInsertAt(QUmlInputPin *insertAt)
-{
- UmlAddStructuralFeatureValueAction::setInsertAt(insertAt);
+ return _isReplaceAll;
}
void QUmlAddStructuralFeatureValueAction::setReplaceAll(bool isReplaceAll)
{
- UmlAddStructuralFeatureValueAction::setReplaceAll(isReplaceAll);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isReplaceAll != isReplaceAll) {
+ _isReplaceAll = isReplaceAll;
+ }
+}
diff --git a/src/uml/qumladdstructuralfeaturevalueaction.h b/src/uml/qumladdstructuralfeaturevalueaction.h
index b88c8492..5c0b5086 100644
--- a/src/uml/qumladdstructuralfeaturevalueaction.h
+++ b/src/uml/qumladdstructuralfeaturevalueaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umladdstructuralfeaturevalueaction_p.h"
+#include <QtUml/QUmlWriteStructuralFeatureAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,210 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuralFeature;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlAddStructuralFeatureValueAction : public QObject, public UmlAddStructuralFeatureValueAction
+class Q_UML_EXPORT QUmlAddStructuralFeatureValueAction : public QUmlWriteStructuralFeatureAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StructuralFeatureAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlStructuralFeature * structuralFeature READ structuralFeature)
-
- // Properties [WriteStructuralFeatureAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
- // Properties [AddStructuralFeatureValueAction]
- Q_PROPERTY(QUmlInputPin * insertAt READ insertAt)
- Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
-
public:
- Q_INVOKABLE explicit QUmlAddStructuralFeatureValueAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlAddStructuralFeatureValueAction(bool createQObject = true);
+ virtual ~QUmlAddStructuralFeatureValueAction();
- // Owned attributes [StructuralFeatureAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlStructuralFeature *structuralFeature() const;
-
- // Owned attributes [WriteStructuralFeatureAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Owned attributes [AddStructuralFeatureValueAction]
- Q_INVOKABLE QUmlInputPin *insertAt() const;
- Q_INVOKABLE bool isReplaceAll() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StructuralFeatureAction]
- void setObject(QUmlInputPin *object);
- void setStructuralFeature(QUmlStructuralFeature *structuralFeature);
-
- // Slots for owned attributes [WriteStructuralFeatureAction]
- void setResult(QUmlOutputPin *result);
- void setValue(QUmlInputPin *value);
-
- // Slots for owned attributes [AddStructuralFeatureValueAction]
+ // Owned attributes
+ QUmlInputPin *insertAt() const;
void setInsertAt(QUmlInputPin *insertAt);
+ bool isReplaceAll() const;
void setReplaceAll(bool isReplaceAll);
+
+protected:
+ QUmlInputPin *_insertAt;
+ bool _isReplaceAll;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAddStructuralFeatureValueAction *)
-Q_DECLARE_METATYPE(QList<QUmlAddStructuralFeatureValueAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAddStructuralFeatureValueAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAddStructuralFeatureValueAction) *)
QT_END_HEADER
diff --git a/src/uml/qumladdvariablevalueaction.cpp b/src/uml/qumladdvariablevalueaction.cpp
index 63a1948d..18891384 100644
--- a/src/uml/qumladdvariablevalueaction.cpp
+++ b/src/uml/qumladdvariablevalueaction.cpp
@@ -40,560 +40,83 @@
****************************************************************************/
#include "qumladdvariablevalueaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
+#include "private/qumladdvariablevalueactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlAddVariableValueAction
+ \class QUmlAddVariableValueAction
\inmodule QtUml
\brief An add variable value action is a write variable action for adding values to a variable.
*/
-
-QUmlAddVariableValueAction::QUmlAddVariableValueAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAddVariableValueAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAddVariableValueAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAddVariableValueAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAddVariableValueAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlAddVariableValueAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAddVariableValueAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAddVariableValueAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAddVariableValueAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlAddVariableValueAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAddVariableValueAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAddVariableValueAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAddVariableValueAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlAddVariableValueAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlAddVariableValueAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlAddVariableValueAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlAddVariableValueAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlAddVariableValueAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlAddVariableValueAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlAddVariableValueAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlAddVariableValueAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlAddVariableValueAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlAddVariableValueAction::context() const
+QUmlAddVariableValueAction::QUmlAddVariableValueAction(bool createQObject) :
+ _insertAt(0),
+ _isReplaceAll(false)
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
+ if (createQObject)
+ _qObject = new QUmlAddVariableValueActionObject(this);
}
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlAddVariableValueAction::input() const
+QUmlAddVariableValueAction::~QUmlAddVariableValueAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlAddVariableValueAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlAddVariableValueAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlAddVariableValueAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlAddVariableValueAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [VariableAction]
-
-/*!
- Variable to be read.
- */
-QUmlVariable *QUmlAddVariableValueAction::variable() const
-{
- return reinterpret_cast<QUmlVariable *>(_variable);
-}
-
-// OWNED ATTRIBUTES [WriteVariableAction]
-
-/*!
- Value to be added or removed from the variable.
- */
-QUmlInputPin *QUmlAddVariableValueAction::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OWNED ATTRIBUTES [AddVariableValueAction]
+// OWNED ATTRIBUTES
/*!
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.
*/
-QUmlInputPin *QUmlAddVariableValueAction::insertAt() const
+QUmlInputPin *
+QUmlAddVariableValueAction::insertAt() const
{
- return reinterpret_cast<QUmlInputPin *>(_insertAt);
-}
+ // This is a read-write association end
-/*!
- Specifies whether existing values of the variable should be removed before adding the new value.
- */
-bool QUmlAddVariableValueAction::isReplaceAll() const
-{
- return _isReplaceAll;
+ return _insertAt;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAddVariableValueAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAddVariableValueAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAddVariableValueAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAddVariableValueAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAddVariableValueAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlAddVariableValueAction::setInsertAt(QUmlInputPin *insertAt)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAddVariableValueAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_insertAt != insertAt) {
+ // Adjust subsetted properties
+ removeInput(_insertAt);
-// OPERATIONS [RedefinableElement]
+ _insertAt = insertAt;
+ if (insertAt->asQObject() && this->asQObject())
+ QObject::connect(insertAt->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInsertAt()));
+ insertAt->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlAddVariableValueAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (insertAt) {
+ addInput(insertAt);
+ }
+ }
}
/*!
- 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.
+ Specifies whether existing values of the variable should be removed before adding the new value.
*/
-bool QUmlAddVariableValueAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAddVariableValueAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAddVariableValueAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAddVariableValueAction::addClientDependency(UmlDependency *clientDependency)
+bool
+QUmlAddVariableValueAction::isReplaceAll() const
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAddVariableValueAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAddVariableValueAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAddVariableValueAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlAddVariableValueAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAddVariableValueAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+ // This is a read-write property
-void QUmlAddVariableValueAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlAddVariableValueAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAddVariableValueAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlAddVariableValueAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlAddVariableValueAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlAddVariableValueAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlAddVariableValueAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlAddVariableValueAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlAddVariableValueAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlAddVariableValueAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlAddVariableValueAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlAddVariableValueAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlAddVariableValueAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlAddVariableValueAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlAddVariableValueAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlAddVariableValueAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlAddVariableValueAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlAddVariableValueAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlAddVariableValueAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
-
-void QUmlAddVariableValueAction::setVariable(QUmlVariable *variable)
-{
- UmlVariableAction::setVariable(variable);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [WriteVariableAction]
-
-void QUmlAddVariableValueAction::setValue(QUmlInputPin *value)
-{
- UmlWriteVariableAction::setValue(value);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [AddVariableValueAction]
-
-void QUmlAddVariableValueAction::setInsertAt(QUmlInputPin *insertAt)
-{
- UmlAddVariableValueAction::setInsertAt(insertAt);
+ return _isReplaceAll;
}
void QUmlAddVariableValueAction::setReplaceAll(bool isReplaceAll)
{
- UmlAddVariableValueAction::setReplaceAll(isReplaceAll);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isReplaceAll != isReplaceAll) {
+ _isReplaceAll = isReplaceAll;
+ }
+}
diff --git a/src/uml/qumladdvariablevalueaction.h b/src/uml/qumladdvariablevalueaction.h
index 57d2f49c..36b3209b 100644
--- a/src/uml/qumladdvariablevalueaction.h
+++ b/src/uml/qumladdvariablevalueaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umladdvariablevalueaction_p.h"
+#include <QtUml/QUmlWriteVariableAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,204 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlAddVariableValueAction : public QObject, public UmlAddVariableValueAction
+class Q_UML_EXPORT QUmlAddVariableValueAction : public QUmlWriteVariableAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [VariableAction]
- Q_PROPERTY(QUmlVariable * variable READ variable)
-
- // Properties [WriteVariableAction]
- Q_PROPERTY(QUmlInputPin * value READ value)
-
- // Properties [AddVariableValueAction]
- Q_PROPERTY(QUmlInputPin * insertAt READ insertAt)
- Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
-
public:
- Q_INVOKABLE explicit QUmlAddVariableValueAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlAddVariableValueAction(bool createQObject = true);
+ virtual ~QUmlAddVariableValueAction();
- // Owned attributes [VariableAction]
- Q_INVOKABLE QUmlVariable *variable() const;
-
- // Owned attributes [WriteVariableAction]
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Owned attributes [AddVariableValueAction]
- Q_INVOKABLE QUmlInputPin *insertAt() const;
- Q_INVOKABLE bool isReplaceAll() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [VariableAction]
- void setVariable(QUmlVariable *variable);
-
- // Slots for owned attributes [WriteVariableAction]
- void setValue(QUmlInputPin *value);
-
- // Slots for owned attributes [AddVariableValueAction]
+ // Owned attributes
+ QUmlInputPin *insertAt() const;
void setInsertAt(QUmlInputPin *insertAt);
+ bool isReplaceAll() const;
void setReplaceAll(bool isReplaceAll);
+
+protected:
+ QUmlInputPin *_insertAt;
+ bool _isReplaceAll;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAddVariableValueAction *)
-Q_DECLARE_METATYPE(QList<QUmlAddVariableValueAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAddVariableValueAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAddVariableValueAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlanyreceiveevent.cpp b/src/uml/qumlanyreceiveevent.cpp
index 86459066..d955ab24 100644
--- a/src/uml/qumlanyreceiveevent.cpp
+++ b/src/uml/qumlanyreceiveevent.cpp
@@ -40,256 +40,26 @@
****************************************************************************/
#include "qumlanyreceiveevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlanyreceiveeventobject_p.h"
/*!
- \class UmlAnyReceiveEvent
+ \class QUmlAnyReceiveEvent
\inmodule QtUml
\brief A trigger for an AnyReceiveEvent is triggered by the receipt of any message that is not explicitly handled by any related trigger.
*/
-
-QUmlAnyReceiveEvent::QUmlAnyReceiveEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAnyReceiveEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAnyReceiveEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAnyReceiveEvent::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlAnyReceiveEvent::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlAnyReceiveEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAnyReceiveEvent::clientDependency() const
+QUmlAnyReceiveEvent::QUmlAnyReceiveEvent(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlAnyReceiveEventObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlAnyReceiveEvent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAnyReceiveEvent::nameExpression() const
+QUmlAnyReceiveEvent::~QUmlAnyReceiveEvent()
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAnyReceiveEvent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAnyReceiveEvent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlAnyReceiveEvent::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAnyReceiveEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAnyReceiveEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlAnyReceiveEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlAnyReceiveEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAnyReceiveEvent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAnyReceiveEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAnyReceiveEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAnyReceiveEvent::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAnyReceiveEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAnyReceiveEvent::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlAnyReceiveEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlAnyReceiveEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAnyReceiveEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAnyReceiveEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAnyReceiveEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAnyReceiveEvent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlAnyReceiveEvent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlanyreceiveevent.h b/src/uml/qumlanyreceiveevent.h
index 49830fd4..1b60c934 100644
--- a/src/uml/qumlanyreceiveevent.h
+++ b/src/uml/qumlanyreceiveevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlanyreceiveevent_p.h"
+#include <QtUml/QUmlMessageEvent>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,100 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlAnyReceiveEvent : public QObject, public UmlAnyReceiveEvent
+class Q_UML_EXPORT QUmlAnyReceiveEvent : public QUmlMessageEvent
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_INVOKABLE explicit QUmlAnyReceiveEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ explicit QUmlAnyReceiveEvent(bool createQObject = true);
+ virtual ~QUmlAnyReceiveEvent();
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAnyReceiveEvent *)
-Q_DECLARE_METATYPE(QList<QUmlAnyReceiveEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAnyReceiveEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAnyReceiveEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumlartifact.cpp b/src/uml/qumlartifact.cpp
index 493ca132..4394a900 100644
--- a/src/uml/qumlartifact.cpp
+++ b/src/uml/qumlartifact.cpp
@@ -40,911 +40,218 @@
****************************************************************************/
#include "qumlartifact.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
+#include "private/qumlartifactobject_p.h"
+
#include <QtUml/QUmlManifestation>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlArtifact
+ \class QUmlArtifact
\inmodule QtUml
\brief An artifact is the source of a deployment to a node.An artifact is the specification of a physical piece of information that is used or produced by a software development process, or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable files, a table in a database system, a development deliverable, or a word-processing document, a mail message.
*/
-
-QUmlArtifact::QUmlArtifact(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlArtifact::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlArtifact::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlArtifact::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlArtifact::clientDependency() const
+QUmlArtifact::QUmlArtifact(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlArtifactObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlArtifact::name() const
+QUmlArtifact::~QUmlArtifact()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlArtifact::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlArtifact::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlArtifact::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlArtifact::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlArtifact::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlArtifact::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlArtifact::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlArtifact::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlArtifact::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlArtifact::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlArtifact::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlArtifact::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlArtifact::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlArtifact::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlArtifact::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlArtifact::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlArtifact::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlArtifact::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlArtifact::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlArtifact::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlArtifact::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlArtifact::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlArtifact::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlArtifact::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlArtifact::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlArtifact::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlArtifact::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlArtifact::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlArtifact::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlArtifact::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlArtifact::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlArtifact::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [Artifact]
+// OWNED ATTRIBUTES
/*!
A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.
*/
-QString QUmlArtifact::fileName() const
-{
- return _fileName;
-}
-
-/*!
- 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.
- */
-const QSet<QUmlManifestation *> QUmlArtifact::manifestation() const
+QString
+QUmlArtifact::fileName() const
{
- return *(reinterpret_cast<const QSet<QUmlManifestation *> *>(&_manifestation));
-}
+ // This is a read-write property
-/*!
- The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement.
- */
-const QSet<QUmlArtifact *> QUmlArtifact::nestedArtifact() const
-{
- return *(reinterpret_cast<const QSet<QUmlArtifact *> *>(&_nestedArtifact));
-}
-
-/*!
- The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association.
- */
-const QList<QUmlProperty *> QUmlArtifact::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
+ return _fileName;
}
-/*!
- The Operations defined for the Artifact. The association is a specialization of the ownedMember association.
- */
-const QList<QUmlOperation *> QUmlArtifact::ownedOperation() const
+void QUmlArtifact::setFileName(QString fileName)
{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlArtifact::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_fileName != fileName) {
+ _fileName = fileName;
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlArtifact::mustBeOwned() const
+const QSet<QUmlManifestation *>
+QUmlArtifact::manifestation() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlArtifact::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _manifestation;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlArtifact::allOwningPackages() const
+void QUmlArtifact::addManifestation(QUmlManifestation *manifestation)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlArtifact::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (!_manifestation.contains(manifestation)) {
+ _manifestation.insert(manifestation);
+ if (manifestation->asQObject() && this->asQObject())
+ QObject::connect(manifestation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeManifestation(QObject *)));
+ manifestation->asQObject()->setParent(this->asQObject());
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlArtifact::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust subsetted properties
+ addOwnedElement(manifestation);
+ addClientDependency(manifestation);
+ }
}
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlArtifact::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
+void QUmlArtifact::removeManifestation(QUmlManifestation *manifestation)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlArtifact::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
+ if (_manifestation.contains(manifestation)) {
+ _manifestation.remove(manifestation);
+ if (manifestation->asQObject())
+ manifestation->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlArtifact::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedElement(manifestation);
+ removeClientDependency(manifestation);
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement.
*/
-bool QUmlArtifact::membersAreDistinguishable() const
+const QSet<QUmlArtifact *>
+QUmlArtifact::nestedArtifact() const
{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlArtifact::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _nestedArtifact;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlArtifact::isTemplateParameter() const
+void QUmlArtifact::addNestedArtifact(QUmlArtifact *nestedArtifact)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (!_nestedArtifact.contains(nestedArtifact)) {
+ _nestedArtifact.insert(nestedArtifact);
+ if (nestedArtifact->asQObject() && this->asQObject())
+ QObject::connect(nestedArtifact->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNestedArtifact(QObject *)));
+ nestedArtifact->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlArtifact::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ addOwnedMember(nestedArtifact);
+ }
}
-/*!
- 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.
- */
-bool QUmlArtifact::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlArtifact::removeNestedArtifact(QUmlArtifact *nestedArtifact)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [TemplateableElement]
+ if (_nestedArtifact.contains(nestedArtifact)) {
+ _nestedArtifact.remove(nestedArtifact);
+ if (nestedArtifact->asQObject())
+ nestedArtifact->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlArtifact::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedMember(nestedArtifact);
+ }
}
-// OPERATIONS [Classifier]
-
/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
+ The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association.
*/
-QSet<QUmlFeature *> QUmlArtifact::allFeatures() const
+const QList<QUmlProperty *>
+QUmlArtifact::ownedAttribute() const
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlArtifact::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ return _ownedAttribute;
}
-/*!
- 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.
- */
-bool QUmlArtifact::conformsTo(QUmlClassifier *other) const
+void QUmlArtifact::addOwnedAttribute(QUmlProperty *ownedAttribute)
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlArtifact::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
+ if (!_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.append(ownedAttribute);
+ if (ownedAttribute->asQObject() && this->asQObject())
+ QObject::connect(ownedAttribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedAttribute(QObject *)));
+ ownedAttribute->asQObject()->setParent(this->asQObject());
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlArtifact::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(ownedAttribute);
+ addAttribute(ownedAttribute);
+ }
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlArtifact::inheritableMembers(QUmlClassifier *c) const
+void QUmlArtifact::removeOwnedAttribute(QUmlProperty *ownedAttribute)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlArtifact::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ if (_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.removeAll(ownedAttribute);
+ if (ownedAttribute->asQObject())
+ ownedAttribute->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlArtifact::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ // Adjust subsetted properties
+ removeOwnedMember(ownedAttribute);
+ removeAttribute(ownedAttribute);
+ }
}
/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ The Operations defined for the Artifact. The association is a specialization of the ownedMember association.
*/
-QSet<QUmlClassifier *> QUmlArtifact::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlArtifact::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlArtifact::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlArtifact::addClientDependency(UmlDependency *clientDependency)
+const QList<QUmlOperation *>
+QUmlArtifact::ownedOperation() const
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlArtifact::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ return _ownedOperation;
}
-void QUmlArtifact::setName(QString name)
+void QUmlArtifact::addOwnedOperation(QUmlOperation *ownedOperation)
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlArtifact::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+ if (!_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.append(ownedOperation);
+ if (ownedOperation->asQObject() && this->asQObject())
+ QObject::connect(ownedOperation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedOperation(QObject *)));
+ ownedOperation->asQObject()->setParent(this->asQObject());
-void QUmlArtifact::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
+ // Adjust subsetted properties
+ addFeature(ownedOperation);
+ addOwnedMember(ownedOperation);
+ }
}
-void QUmlArtifact::removeElementImport(UmlElementImport *elementImport)
+void QUmlArtifact::removeOwnedOperation(QUmlOperation *ownedOperation)
{
- UmlNamespace::removeElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlArtifact::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
+ if (_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.removeAll(ownedOperation);
+ if (ownedOperation->asQObject())
+ ownedOperation->asQObject()->setParent(0);
-void QUmlArtifact::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
+ // Adjust subsetted properties
+ removeFeature(ownedOperation);
+ removeOwnedMember(ownedOperation);
+ }
}
-void QUmlArtifact::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlArtifact::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlArtifact::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlArtifact::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlArtifact::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlArtifact::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlArtifact::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlArtifact::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlArtifact::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlArtifact::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlArtifact::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlArtifact::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlArtifact::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlArtifact::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlArtifact::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlArtifact::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlArtifact::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlArtifact::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlArtifact::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlArtifact::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlArtifact::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlArtifact::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlArtifact::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlArtifact::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlArtifact::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlArtifact::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlArtifact::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlArtifact::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlArtifact::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Artifact]
-
-void QUmlArtifact::setFileName(QString fileName)
-{
- UmlArtifact::setFileName(fileName);
-}
-
-void QUmlArtifact::addManifestation(UmlManifestation *manifestation)
-{
- UmlArtifact::addManifestation(manifestation);
-}
-
-void QUmlArtifact::removeManifestation(UmlManifestation *manifestation)
-{
- UmlArtifact::removeManifestation(manifestation);
-}
-
-void QUmlArtifact::addNestedArtifact(UmlArtifact *nestedArtifact)
-{
- UmlArtifact::addNestedArtifact(nestedArtifact);
-}
-
-void QUmlArtifact::removeNestedArtifact(UmlArtifact *nestedArtifact)
-{
- UmlArtifact::removeNestedArtifact(nestedArtifact);
-}
-
-void QUmlArtifact::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlArtifact::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlArtifact::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlArtifact::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlArtifact::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlArtifact::addOwnedOperation(ownedOperation);
-}
-
-void QUmlArtifact::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlArtifact::removeOwnedOperation(ownedOperation);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlartifact.h b/src/uml/qumlartifact.h
index 9a8cf700..1f8eda84 100644
--- a/src/uml/qumlartifact.h
+++ b/src/uml/qumlartifact.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlartifact_p.h"
+#include <QtUml/QUmlDeployedArtifact>
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,283 +53,43 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
class QUmlManifestation;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlArtifact : public QObject, public UmlArtifact
+class Q_UML_EXPORT QUmlArtifact : public QUmlDeployedArtifact, public QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Artifact]
- Q_PROPERTY(QString fileName READ fileName)
- Q_PROPERTY(QSet<QUmlManifestation *> manifestation READ manifestation)
- Q_PROPERTY(QSet<QUmlArtifact *> nestedArtifact READ nestedArtifact)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
-
public:
- Q_INVOKABLE explicit QUmlArtifact(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Artifact]
- Q_INVOKABLE QString fileName() const;
- Q_INVOKABLE const QSet<QUmlManifestation *> manifestation() const;
- Q_INVOKABLE const QSet<QUmlArtifact *> nestedArtifact() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ explicit QUmlArtifact(bool createQObject = true);
+ virtual ~QUmlArtifact();
- // Slots for owned attributes [Artifact]
+ // Owned attributes
+ QString fileName() const;
void setFileName(QString fileName);
- void addManifestation(UmlManifestation *manifestation);
- void removeManifestation(UmlManifestation *manifestation);
- void addNestedArtifact(UmlArtifact *nestedArtifact);
- void removeNestedArtifact(UmlArtifact *nestedArtifact);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
+ const QSet<QUmlManifestation *> manifestation() const;
+ void addManifestation(QUmlManifestation *manifestation);
+ void removeManifestation(QUmlManifestation *manifestation);
+ const QSet<QUmlArtifact *> nestedArtifact() const;
+ void addNestedArtifact(QUmlArtifact *nestedArtifact);
+ void removeNestedArtifact(QUmlArtifact *nestedArtifact);
+ const QList<QUmlProperty *> ownedAttribute() const;
+ void addOwnedAttribute(QUmlProperty *ownedAttribute);
+ void removeOwnedAttribute(QUmlProperty *ownedAttribute);
+ const QList<QUmlOperation *> ownedOperation() const;
+ void addOwnedOperation(QUmlOperation *ownedOperation);
+ void removeOwnedOperation(QUmlOperation *ownedOperation);
+
+protected:
+ QString _fileName;
+ QSet<QUmlManifestation *> _manifestation;
+ QSet<QUmlArtifact *> _nestedArtifact;
+ QList<QUmlProperty *> _ownedAttribute;
+ QList<QUmlOperation *> _ownedOperation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlArtifact *)
-Q_DECLARE_METATYPE(QList<QUmlArtifact *> *)
-Q_DECLARE_METATYPE(QSet<QUmlArtifact *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlArtifact) *)
QT_END_HEADER
diff --git a/src/uml/qumlassociation.cpp b/src/uml/qumlassociation.cpp
index 1d78eb86..620df2eb 100644
--- a/src/uml/qumlassociation.cpp
+++ b/src/uml/qumlassociation.cpp
@@ -40,914 +40,233 @@
****************************************************************************/
#include "qumlassociation.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
+#include "private/qumlassociationobject_p.h"
+
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlAssociation
+ \class QUmlAssociation
\inmodule QtUml
\brief An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link.A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.An association describes a set of tuples whose values refer to typed instances. An instance of an association is called a link. A link is a tuple with one value for each end of the association, where each value is an instance of the type of the end.
*/
-
-QUmlAssociation::QUmlAssociation(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAssociation::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAssociation::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAssociation::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAssociation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlAssociation::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAssociation::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAssociation::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAssociation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlAssociation::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlAssociation::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlAssociation::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlAssociation::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlAssociation::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlAssociation::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlAssociation::owningTemplateParameter() const
+QUmlAssociation::QUmlAssociation(bool createQObject) :
+ _isDerived(false)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlAssociationObject(this);
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlAssociation::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlAssociation::package() const
+QUmlAssociation::~QUmlAssociation()
{
- return reinterpret_cast<QUmlPackage *>(_package);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [RedefinableElement]
+// OWNED ATTRIBUTES
/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAssociation::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAssociation::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAssociation::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlAssociation::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
+ References the classifiers that are used as types of the ends of the association.
*/
-const QSet<QUmlProperty *> QUmlAssociation::attribute() const
+const QList<QUmlType *>
+QUmlAssociation::endType() const
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
+ // This is a read-only derived association end
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlAssociation::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
+ qWarning("UmlAssociation::endType(): to be implemented (this is a derived association end)");
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlAssociation::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
+ return QList<QUmlType *>();
}
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlAssociation::general() const
+void QUmlAssociation::addEndType(QUmlType *endType)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlAssociation::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlAssociation::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAssociation::isAbstract() const
-{
- return _isAbstract;
-}
+ qWarning("UmlAssociation::endType(): to be implemented (this is a derived association end)");
+ Q_UNUSED(endType);
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlAssociation::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlAssociation::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
+ // Adjust subsetted properties
+ addRelatedElement(endType);
+ }
}
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlAssociation::ownedUseCase() const
+void QUmlAssociation::removeEndType(QUmlType *endType)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
+ // This is a read-only derived association end
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlAssociation::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
+ qWarning("UmlAssociation::endType(): to be implemented (this is a derived association end)");
+ Q_UNUSED(endType);
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlAssociation::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlAssociation::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlAssociation::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlAssociation::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlAssociation::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlAssociation::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [Association]
-
-/*!
- References the classifiers that are used as types of the ends of the association.
- */
-const QList<QUmlType *> QUmlAssociation::endType() const
-{
- QList<QUmlType *> r;
- foreach (UmlType *element, UmlAssociation::endType())
- r.append(reinterpret_cast<QUmlType *>(element));
- return r;
+ // Adjust subsetted properties
+ removeRelatedElement(endType);
+ }
}
/*!
Specifies whether the association is derived from other model elements such as other associations or constraints.
*/
-bool QUmlAssociation::isDerived() const
+bool
+QUmlAssociation::isDerived() const
{
- return _isDerived;
-}
+ // This is a read-write property
-/*!
- Each end represents participation of instances of the classifier connected to the end in links of the association.
- */
-const QList<QUmlProperty *> QUmlAssociation::memberEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_memberEnd));
-}
-
-/*!
- The navigable ends that are owned by the association itself.
- */
-const QSet<QUmlProperty *> QUmlAssociation::navigableOwnedEnd() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_navigableOwnedEnd));
-}
-
-/*!
- The ends that are owned by the association itself.
- */
-const QList<QUmlProperty *> QUmlAssociation::ownedEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedEnd));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAssociation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAssociation::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _isDerived;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAssociation::allNamespaces() const
+void QUmlAssociation::setDerived(bool isDerived)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAssociation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (_isDerived != isDerived) {
+ _isDerived = isDerived;
+ }
}
/*!
- 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.
+ Each end represents participation of instances of the classifier connected to the end in links of the association.
*/
-bool QUmlAssociation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+const QList<QUmlProperty *>
+QUmlAssociation::memberEnd() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAssociation::separator() const
-{
- return UmlNamedElement::separator();
+ return _memberEnd;
}
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlAssociation::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
+void QUmlAssociation::addMemberEnd(QUmlProperty *memberEnd)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlAssociation::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
+ if (!_memberEnd.contains(memberEnd)) {
+ _memberEnd.append(memberEnd);
+ if (memberEnd->asQObject() && this->asQObject())
+ QObject::connect(memberEnd->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMemberEnd(QObject *)));
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlAssociation::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addMember(memberEnd);
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlAssociation::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
+ // Adjust opposite properties
+ if (memberEnd) {
+ memberEnd->setAssociation(this);
+ }
+ }
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlAssociation::isCompatibleWith(QUmlParameterableElement *p) const
+void QUmlAssociation::removeMemberEnd(QUmlProperty *memberEnd)
{
- return UmlParameterableElement::isCompatibleWith(p);
-}
+ // This is a read-write association end
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlAssociation::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
+ if (_memberEnd.contains(memberEnd)) {
+ _memberEnd.removeAll(memberEnd);
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ // Adjust subsetted properties
+ removeMember(memberEnd);
-/*!
- 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.
- */
-bool QUmlAssociation::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust opposite properties
+ if (memberEnd) {
+ memberEnd->setAssociation(0);
+ }
+ }
}
/*!
- 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.
+ The navigable ends that are owned by the association itself.
*/
-bool QUmlAssociation::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+const QSet<QUmlProperty *>
+QUmlAssociation::navigableOwnedEnd() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlAssociation::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
+ return _navigableOwnedEnd;
}
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlAssociation::allFeatures() const
+void QUmlAssociation::addNavigableOwnedEnd(QUmlProperty *navigableOwnedEnd)
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlAssociation::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ if (!_navigableOwnedEnd.contains(navigableOwnedEnd)) {
+ _navigableOwnedEnd.insert(navigableOwnedEnd);
+ if (navigableOwnedEnd->asQObject() && this->asQObject())
+ QObject::connect(navigableOwnedEnd->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNavigableOwnedEnd(QObject *)));
-/*!
- 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.
- */
-bool QUmlAssociation::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
+ // Adjust subsetted properties
+ addOwnedEnd(navigableOwnedEnd);
+ }
}
-/*!
- 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.
- */
-bool QUmlAssociation::hasVisibilityOf(QUmlNamedElement *n) const
+void QUmlAssociation::removeNavigableOwnedEnd(QUmlProperty *navigableOwnedEnd)
{
- return UmlClassifier::hasVisibilityOf(n);
-}
+ // This is a read-write association end
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlAssociation::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ if (_navigableOwnedEnd.contains(navigableOwnedEnd)) {
+ _navigableOwnedEnd.remove(navigableOwnedEnd);
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlAssociation::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedEnd(navigableOwnedEnd);
+ }
}
/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlAssociation::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlAssociation::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ The ends that are owned by the association itself.
*/
-QSet<QUmlClassifier *> QUmlAssociation::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAssociation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAssociation::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAssociation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAssociation::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAssociation::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAssociation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlAssociation::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlAssociation::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlAssociation::addOwnedRule(UmlConstraint *ownedRule)
+const QList<QUmlProperty *>
+QUmlAssociation::ownedEnd() const
{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlAssociation::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlAssociation::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlAssociation::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlAssociation::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlAssociation::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlAssociation::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAssociation::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlAssociation::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
+ // This is a read-write association end
-void QUmlAssociation::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
+ return _ownedEnd;
}
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlAssociation::addCollaborationUse(UmlCollaborationUse *collaborationUse)
+void QUmlAssociation::addOwnedEnd(QUmlProperty *ownedEnd)
{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
+ // This is a read-write association end
-void QUmlAssociation::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
+ if (!_ownedEnd.contains(ownedEnd)) {
+ _ownedEnd.append(ownedEnd);
+ if (ownedEnd->asQObject() && this->asQObject())
+ QObject::connect(ownedEnd->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedEnd(QObject *)));
+ ownedEnd->asQObject()->setParent(this->asQObject());
-void QUmlAssociation::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
+ // Adjust subsetted properties
+ addMemberEnd(ownedEnd);
+ addFeature(ownedEnd);
+ addOwnedMember(ownedEnd);
-void QUmlAssociation::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
+ // Adjust opposite properties
+ if (ownedEnd) {
+ ownedEnd->setOwningAssociation(this);
+ }
+ }
}
-void QUmlAssociation::addGeneralization(UmlGeneralization *generalization)
+void QUmlAssociation::removeOwnedEnd(QUmlProperty *ownedEnd)
{
- UmlClassifier::addGeneralization(generalization);
-}
+ // This is a read-write association end
-void QUmlAssociation::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
+ if (_ownedEnd.contains(ownedEnd)) {
+ _ownedEnd.removeAll(ownedEnd);
+ if (ownedEnd->asQObject())
+ ownedEnd->asQObject()->setParent(0);
-void QUmlAssociation::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
+ // Adjust subsetted properties
+ removeMemberEnd(ownedEnd);
+ removeFeature(ownedEnd);
+ removeOwnedMember(ownedEnd);
-void QUmlAssociation::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
+ // Adjust opposite properties
+ if (ownedEnd) {
+ ownedEnd->setOwningAssociation(0);
+ }
+ }
}
-void QUmlAssociation::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlAssociation::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlAssociation::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlAssociation::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlAssociation::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlAssociation::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlAssociation::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlAssociation::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlAssociation::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlAssociation::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlAssociation::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlAssociation::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlAssociation::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Association]
-
-void QUmlAssociation::setDerived(bool isDerived)
-{
- UmlAssociation::setDerived(isDerived);
-}
-
-void QUmlAssociation::addMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::addMemberEnd(memberEnd);
-}
-
-void QUmlAssociation::removeMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::removeMemberEnd(memberEnd);
-}
-
-void QUmlAssociation::addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::addNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlAssociation::removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::removeNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlAssociation::addOwnedEnd(UmlProperty *ownedEnd)
-{
- UmlAssociation::addOwnedEnd(ownedEnd);
-}
-
-void QUmlAssociation::removeOwnedEnd(UmlProperty *ownedEnd)
-{
- UmlAssociation::removeOwnedEnd(ownedEnd);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlassociation.h b/src/uml/qumlassociation.h
index 54963167..5067de9d 100644
--- a/src/uml/qumlassociation.h
+++ b/src/uml/qumlassociation.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlassociation_p.h"
+#include <QtUml/QUmlClassifier>
+#include <QtUml/QUmlRelationship>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,287 +53,41 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlAssociation : public QObject, public UmlAssociation
+class Q_UML_EXPORT QUmlAssociation : public virtual QUmlClassifier, public QUmlRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [Association]
- Q_PROPERTY(QList<QUmlType *> endType READ endType)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(QList<QUmlProperty *> memberEnd READ memberEnd)
- Q_PROPERTY(QSet<QUmlProperty *> navigableOwnedEnd READ navigableOwnedEnd)
- Q_PROPERTY(QList<QUmlProperty *> ownedEnd READ ownedEnd)
-
public:
- Q_INVOKABLE explicit QUmlAssociation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [Association]
- Q_INVOKABLE const QList<QUmlType *> endType() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE const QList<QUmlProperty *> memberEnd() const;
- Q_INVOKABLE const QSet<QUmlProperty *> navigableOwnedEnd() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedEnd() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [Association]
+ explicit QUmlAssociation(bool createQObject = true);
+ virtual ~QUmlAssociation();
+
+ // Owned attributes
+ const QList<QUmlType *> endType() const;
+ Q_DECL_HIDDEN void addEndType(QUmlType *endType);
+ Q_DECL_HIDDEN void removeEndType(QUmlType *endType);
+ bool isDerived() const;
void setDerived(bool isDerived);
- void addMemberEnd(UmlProperty *memberEnd);
- void removeMemberEnd(UmlProperty *memberEnd);
- void addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void addOwnedEnd(UmlProperty *ownedEnd);
- void removeOwnedEnd(UmlProperty *ownedEnd);
+ const QList<QUmlProperty *> memberEnd() const;
+ void addMemberEnd(QUmlProperty *memberEnd);
+ void removeMemberEnd(QUmlProperty *memberEnd);
+ const QSet<QUmlProperty *> navigableOwnedEnd() const;
+ void addNavigableOwnedEnd(QUmlProperty *navigableOwnedEnd);
+ void removeNavigableOwnedEnd(QUmlProperty *navigableOwnedEnd);
+ const QList<QUmlProperty *> ownedEnd() const;
+ void addOwnedEnd(QUmlProperty *ownedEnd);
+ void removeOwnedEnd(QUmlProperty *ownedEnd);
+
+protected:
+ bool _isDerived;
+ QList<QUmlProperty *> _memberEnd;
+ QSet<QUmlProperty *> _navigableOwnedEnd;
+ QList<QUmlProperty *> _ownedEnd;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAssociation *)
-Q_DECLARE_METATYPE(QList<QUmlAssociation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAssociation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAssociation) *)
QT_END_HEADER
diff --git a/src/uml/qumlassociationclass.cpp b/src/uml/qumlassociationclass.cpp
index 265ed8b6..2bfddf63 100644
--- a/src/uml/qumlassociationclass.cpp
+++ b/src/uml/qumlassociationclass.cpp
@@ -40,1134 +40,28 @@
****************************************************************************/
#include "qumlassociationclass.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlassociationclassobject_p.h"
/*!
- \class UmlAssociationClass
+ \class QUmlAssociationClass
\inmodule QtUml
\brief A model element that has both association and class properties. An AssociationClass can be seen as an association that also has class properties, or as a class that also has association properties. It not only connects a set of classifiers but also defines a set of features that belong to the relationship itself and not to any of the classifiers.
*/
-
-QUmlAssociationClass::QUmlAssociationClass(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlAssociationClass::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlAssociationClass::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlAssociationClass::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlAssociationClass::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlAssociationClass::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlAssociationClass::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlAssociationClass::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlAssociationClass::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlAssociationClass::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlAssociationClass::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlAssociationClass::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlAssociationClass::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlAssociationClass::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlAssociationClass::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlAssociationClass::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlAssociationClass::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlAssociationClass::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlAssociationClass::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlAssociationClass::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlAssociationClass::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlAssociationClass::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlAssociationClass::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlAssociationClass::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlAssociationClass::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlAssociationClass::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlAssociationClass::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlAssociationClass::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlAssociationClass::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlAssociationClass::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlAssociationClass::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlAssociationClass::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlAssociationClass::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlAssociationClass::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlAssociationClass::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlAssociationClass::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlAssociationClass::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlAssociationClass::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlAssociationClass::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlAssociationClass::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlAssociationClass::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlAssociationClass::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlAssociationClass::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlAssociationClass::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlAssociationClass::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlAssociationClass::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlAssociationClass::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlAssociationClass::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlAssociationClass::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlAssociationClass::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlAssociationClass::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [Association]
-
-/*!
- References the classifiers that are used as types of the ends of the association.
- */
-const QList<QUmlType *> QUmlAssociationClass::endType() const
-{
- QList<QUmlType *> r;
- foreach (UmlType *element, UmlAssociation::endType())
- r.append(reinterpret_cast<QUmlType *>(element));
- return r;
-}
-
-/*!
- Specifies whether the association is derived from other model elements such as other associations or constraints.
- */
-bool QUmlAssociationClass::isDerived() const
-{
- return _isDerived;
-}
-
-/*!
- Each end represents participation of instances of the classifier connected to the end in links of the association.
- */
-const QList<QUmlProperty *> QUmlAssociationClass::memberEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_memberEnd));
-}
-
-/*!
- The navigable ends that are owned by the association itself.
- */
-const QSet<QUmlProperty *> QUmlAssociationClass::navigableOwnedEnd() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_navigableOwnedEnd));
-}
-
-/*!
- The ends that are owned by the association itself.
- */
-const QList<QUmlProperty *> QUmlAssociationClass::ownedEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedEnd));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlAssociationClass::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlAssociationClass::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlAssociationClass::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlAssociationClass::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlAssociationClass::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlAssociationClass::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlAssociationClass::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlAssociationClass::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlAssociationClass::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlAssociationClass::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlAssociationClass::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlAssociationClass::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlAssociationClass::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlAssociationClass::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlAssociationClass::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlAssociationClass::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlAssociationClass::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlAssociationClass::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlAssociationClass::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlAssociationClass::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlAssociationClass::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlAssociationClass::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlAssociationClass::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlAssociationClass::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlAssociationClass::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlAssociationClass::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlAssociationClass::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlAssociationClass::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlAssociationClass::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlAssociationClass::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlAssociationClass::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+QUmlAssociationClass::QUmlAssociationClass(bool createQObject) :
+ QUmlClass(false),
+ QUmlAssociation(false)
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlAssociationClassObject(this);
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-void QUmlAssociationClass::setVisibility(QtUml::VisibilityKind visibility)
+QUmlAssociationClass::~QUmlAssociationClass()
{
- UmlPackageableElement::setVisibility(visibility);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlAssociationClass::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlAssociationClass::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlAssociationClass::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlAssociationClass::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlAssociationClass::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlAssociationClass::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlAssociationClass::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlAssociationClass::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlAssociationClass::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlAssociationClass::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlAssociationClass::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlAssociationClass::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlAssociationClass::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlAssociationClass::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlAssociationClass::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlAssociationClass::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlAssociationClass::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlAssociationClass::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlAssociationClass::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlAssociationClass::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlAssociationClass::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlAssociationClass::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlAssociationClass::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlAssociationClass::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlAssociationClass::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlAssociationClass::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlAssociationClass::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlAssociationClass::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlAssociationClass::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlAssociationClass::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlAssociationClass::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlAssociationClass::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlAssociationClass::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlAssociationClass::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlAssociationClass::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlAssociationClass::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlAssociationClass::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlAssociationClass::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlAssociationClass::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlAssociationClass::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlAssociationClass::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Association]
-
-void QUmlAssociationClass::setDerived(bool isDerived)
-{
- UmlAssociation::setDerived(isDerived);
-}
-
-void QUmlAssociationClass::addMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::addMemberEnd(memberEnd);
-}
-
-void QUmlAssociationClass::removeMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::removeMemberEnd(memberEnd);
-}
-
-void QUmlAssociationClass::addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::addNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlAssociationClass::removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::removeNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlAssociationClass::addOwnedEnd(UmlProperty *ownedEnd)
-{
- UmlAssociation::addOwnedEnd(ownedEnd);
-}
-
-void QUmlAssociationClass::removeOwnedEnd(UmlProperty *ownedEnd)
-{
- UmlAssociation::removeOwnedEnd(ownedEnd);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlassociationclass.h b/src/uml/qumlassociationclass.h
index fba642a8..df1ae8e5 100644
--- a/src/uml/qumlassociationclass.h
+++ b/src/uml/qumlassociationclass.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlassociationclass_p.h"
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlAssociation>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,364 +53,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlAssociationClass : public QObject, public UmlAssociationClass
+class Q_UML_EXPORT QUmlAssociationClass : public QUmlClass, public QUmlAssociation
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [Association]
- Q_PROPERTY(QList<QUmlType *> endType READ endType)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(QList<QUmlProperty *> memberEnd READ memberEnd)
- Q_PROPERTY(QSet<QUmlProperty *> navigableOwnedEnd READ navigableOwnedEnd)
- Q_PROPERTY(QList<QUmlProperty *> ownedEnd READ ownedEnd)
-
public:
- Q_INVOKABLE explicit QUmlAssociationClass(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [Association]
- Q_INVOKABLE const QList<QUmlType *> endType() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE const QList<QUmlProperty *> memberEnd() const;
- Q_INVOKABLE const QSet<QUmlProperty *> navigableOwnedEnd() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedEnd() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ explicit QUmlAssociationClass(bool createQObject = true);
+ virtual ~QUmlAssociationClass();
- // Slots for owned attributes [Relationship]
- // Slots for owned attributes [Association]
- void setDerived(bool isDerived);
- void addMemberEnd(UmlProperty *memberEnd);
- void removeMemberEnd(UmlProperty *memberEnd);
- void addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void addOwnedEnd(UmlProperty *ownedEnd);
- void removeOwnedEnd(UmlProperty *ownedEnd);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlAssociationClass *)
-Q_DECLARE_METATYPE(QList<QUmlAssociationClass *> *)
-Q_DECLARE_METATYPE(QSet<QUmlAssociationClass *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlAssociationClass) *)
QT_END_HEADER
diff --git a/src/uml/qumlbehavior.cpp b/src/uml/qumlbehavior.cpp
index 9c9cf806..cec9f20c 100644
--- a/src/uml/qumlbehavior.cpp
+++ b/src/uml/qumlbehavior.cpp
@@ -42,1169 +42,299 @@
#include <QtUml/QUmlBehavioralFeature>
#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlBehavior
+ \class QUmlBehavior
\inmodule QtUml
\brief Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions. The latter form is typically used for capturing examples, such as a trace of a particular execution.A behavior owns zero or more parameter sets.
*/
-
-QUmlBehavior::QUmlBehavior(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlBehavior::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlBehavior::ownedElement() const
+QUmlBehavior::QUmlBehavior() :
+ QUmlClass(false),
+ _isReentrant(true),
+ _specification(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlBehavior::owner() const
+QUmlBehavior::~QUmlBehavior()
{
- return reinterpret_cast<QUmlElement *>(_owner);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlBehavior::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlBehavior::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlBehavior::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlBehavior::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlBehavior::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlBehavior::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlBehavior::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlBehavior::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlBehavior::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlBehavior::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlBehavior::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlBehavior::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlBehavior::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlBehavior::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlBehavior::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlBehavior::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlBehavior::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlBehavior::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlBehavior::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlBehavior::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlBehavior::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlBehavior::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlBehavior::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlBehavior::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
+// OWNED ATTRIBUTES
/*!
- The optional template signature specifying the formal template parameters.
+ 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 context 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.
*/
-QUmlRedefinableTemplateSignature *QUmlBehavior::ownedTemplateSignature() const
+QUmlBehavioredClassifier *
+QUmlBehavior::context() const
{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
+ // This is a read-only derived association end
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlBehavior::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
+ qWarning("UmlBehavior::context(): to be implemented (this is a derived association end)");
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlBehavior::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
+ return 0;
}
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlBehavior::redefinedClassifier() const
+void QUmlBehavior::setContext(QUmlBehavioredClassifier *context)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
+ // This is a read-only derived association end
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlBehavior::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
+ qWarning("UmlBehavior::context(): to be implemented (this is a derived association end)");
+ Q_UNUSED(context);
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlBehavior::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // Adjust subsetted properties
+ // removeRedefinitionContext(/* <derived-code> */);
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlBehavior::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
+ // <derived-code>
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlBehavior::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
+ // Adjust subsetted properties
+ if (context) {
+ addRedefinitionContext(context);
+ }
+ }
}
-// OWNED ATTRIBUTES [StructuredClassifier]
-
/*!
- References the connectors owned by the classifier.
+ Tells whether the behavior can be invoked while it is still executing from a previous invocation.
*/
-const QSet<QUmlConnector *> QUmlBehavior::ownedConnector() const
+bool
+QUmlBehavior::isReentrant() const
{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
+ // This is a read-write property
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlBehavior::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
+ return _isReentrant;
}
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlBehavior::role() const
+void QUmlBehavior::setReentrant(bool isReentrant)
{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
+ // This is a read-write property
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlBehavior::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
+ if (_isReentrant != isReentrant) {
+ _isReentrant = isReentrant;
+ }
}
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
/*!
- A behavior specification that specifies the behavior of the classifier itself.
+ 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.
*/
-QUmlBehavior *QUmlBehavior::classifierBehavior() const
+const QList<QUmlParameter *>
+QUmlBehavior::ownedParameter() const
{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
+ // This is a read-write association end
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlBehavior::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
+ return _ownedParameter;
}
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlBehavior::ownedBehavior() const
+void QUmlBehavior::addOwnedParameter(QUmlParameter *ownedParameter)
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Class]
+ if (!_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.append(ownedParameter);
+ if (ownedParameter->asQObject() && this->asQObject())
+ QObject::connect(ownedParameter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedParameter(QObject *)));
+ ownedParameter->asQObject()->setParent(this->asQObject());
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlBehavior::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(ownedParameter);
+ }
}
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlBehavior::isAbstract() const
+void QUmlBehavior::removeOwnedParameter(QUmlParameter *ownedParameter)
{
- return _isAbstract;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavior::isActive() const
-{
- return _isActive;
-}
+ if (_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.removeAll(ownedParameter);
+ if (ownedParameter->asQObject())
+ ownedParameter->asQObject()->setParent(0);
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlBehavior::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
+ // Adjust subsetted properties
+ removeOwnedMember(ownedParameter);
+ }
}
/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlBehavior::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
+ The ParameterSets owned by this Behavior.
*/
-const QList<QUmlOperation *> QUmlBehavior::ownedOperation() const
+const QSet<QUmlParameterSet *>
+QUmlBehavior::ownedParameterSet() const
{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
+ // This is a read-write association end
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlBehavior::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
+ return _ownedParameterSet;
}
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlBehavior::superClass() const
+void QUmlBehavior::addOwnedParameterSet(QUmlParameterSet *ownedParameterSet)
{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Behavior]
+ if (!_ownedParameterSet.contains(ownedParameterSet)) {
+ _ownedParameterSet.insert(ownedParameterSet);
+ if (ownedParameterSet->asQObject() && this->asQObject())
+ QObject::connect(ownedParameterSet->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedParameterSet(QObject *)));
+ ownedParameterSet->asQObject()->setParent(this->asQObject());
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlBehavior::context() const
-{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
+ // Adjust subsetted properties
+ addOwnedMember(ownedParameterSet);
+ }
}
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlBehavior::isReentrant() const
+void QUmlBehavior::removeOwnedParameterSet(QUmlParameterSet *ownedParameterSet)
{
- return _isReentrant;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlBehavior::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
+ if (_ownedParameterSet.contains(ownedParameterSet)) {
+ _ownedParameterSet.remove(ownedParameterSet);
+ if (ownedParameterSet->asQObject())
+ ownedParameterSet->asQObject()->setParent(0);
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlBehavior::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
+ // Adjust subsetted properties
+ removeOwnedMember(ownedParameterSet);
+ }
}
/*!
An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
*/
-const QSet<QUmlConstraint *> QUmlBehavior::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
-
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlBehavior::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlBehavior *> QUmlBehavior::redefinedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_redefinedBehavior));
-}
-
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlBehavior::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlBehavior::allOwnedElements() const
+const QSet<QUmlConstraint *>
+QUmlBehavior::postcondition() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavior::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _postcondition;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlBehavior::allNamespaces() const
+void QUmlBehavior::addPostcondition(QUmlConstraint *postcondition)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlBehavior::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavior::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (!_postcondition.contains(postcondition)) {
+ _postcondition.insert(postcondition);
+ if (postcondition->asQObject() && this->asQObject())
+ QObject::connect(postcondition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePostcondition(QObject *)));
+ postcondition->asQObject()->setParent(this->asQObject());
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlBehavior::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust subsetted properties
+ addOwnedRule(postcondition);
+ }
}
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlBehavior::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
+void QUmlBehavior::removePostcondition(QUmlConstraint *postcondition)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlBehavior::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
+ if (_postcondition.contains(postcondition)) {
+ _postcondition.remove(postcondition);
+ if (postcondition->asQObject())
+ postcondition->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlBehavior::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedRule(postcondition);
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
*/
-bool QUmlBehavior::membersAreDistinguishable() const
+const QSet<QUmlConstraint *>
+QUmlBehavior::precondition() const
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlBehavior::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _precondition;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlBehavior::isTemplateParameter() const
+void QUmlBehavior::addPrecondition(QUmlConstraint *precondition)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (!_precondition.contains(precondition)) {
+ _precondition.insert(precondition);
+ if (precondition->asQObject() && this->asQObject())
+ QObject::connect(precondition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePrecondition(QObject *)));
+ precondition->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlBehavior::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ addOwnedRule(precondition);
+ }
}
-/*!
- 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.
- */
-bool QUmlBehavior::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlBehavior::removePrecondition(QUmlConstraint *precondition)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [TemplateableElement]
+ if (_precondition.contains(precondition)) {
+ _precondition.remove(precondition);
+ if (precondition->asQObject())
+ precondition->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlBehavior::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedRule(precondition);
+ }
}
-// OPERATIONS [Classifier]
-
/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
+ 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.
*/
-QSet<QUmlFeature *> QUmlBehavior::allFeatures() const
+const QSet<QUmlBehavior *>
+QUmlBehavior::redefinedBehavior() const
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlBehavior::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ return _redefinedBehavior;
}
-/*!
- 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.
- */
-bool QUmlBehavior::conformsTo(QUmlClassifier *other) const
+void QUmlBehavior::addRedefinedBehavior(QUmlBehavior *redefinedBehavior)
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavior::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
+ if (!_redefinedBehavior.contains(redefinedBehavior)) {
+ _redefinedBehavior.insert(redefinedBehavior);
+ if (redefinedBehavior->asQObject() && this->asQObject())
+ QObject::connect(redefinedBehavior->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedBehavior(QObject *)));
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlBehavior::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addRedefinedClassifier(redefinedBehavior);
+ }
}
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlBehavior::isTemplate() const
+void QUmlBehavior::removeRedefinedBehavior(QUmlBehavior *redefinedBehavior)
{
- return UmlClassifier::isTemplate();
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavior::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
+ if (_redefinedBehavior.contains(redefinedBehavior)) {
+ _redefinedBehavior.remove(redefinedBehavior);
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlBehavior::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust subsetted properties
+ removeRedefinedClassifier(redefinedBehavior);
+ }
}
-// OPERATIONS [Class]
-
/*!
- The inherit operation is overridden to exclude redefined properties.
+ 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
*/
-QSet<QUmlNamedElement *> QUmlBehavior::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlBehavior::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlBehavior::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlBehavior::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlBehavior::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlBehavior::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlBehavior::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlBehavior::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlBehavior::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlBehavior::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlBehavior::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlBehavior::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlBehavior::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlBehavior::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlBehavior::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlBehavior::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlBehavior::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlBehavior::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlBehavior::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlBehavior::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlBehavior::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlBehavior::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlBehavior::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlBehavior::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlBehavior::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlBehavior::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlBehavior::removeOwnedUseCase(UmlUseCase *ownedUseCase)
+QUmlBehavioralFeature *
+QUmlBehavior::specification() const
{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlBehavior::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
+ // This is a read-write association end
-void QUmlBehavior::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlBehavior::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlBehavior::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlBehavior::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlBehavior::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlBehavior::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlBehavior::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlBehavior::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlBehavior::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlBehavior::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlBehavior::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlBehavior::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlBehavior::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlBehavior::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlBehavior::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlBehavior::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlBehavior::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlBehavior::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlBehavior::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlBehavior::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlBehavior::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlBehavior::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlBehavior::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlBehavior::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlBehavior::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlBehavior::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlBehavior::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlBehavior::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlBehavior::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlBehavior::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlBehavior::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlBehavior::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlBehavior::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlBehavior::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlBehavior::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlBehavior::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlBehavior::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlBehavior::addRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::addRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlBehavior::removeRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::removeRedefinedBehavior(redefinedBehavior);
+ return _specification;
}
void QUmlBehavior::setSpecification(QUmlBehavioralFeature *specification)
{
- UmlBehavior::setSpecification(specification);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_specification != specification) {
+ _specification = specification;
+ if (specification->asQObject() && this->asQObject())
+ QObject::connect(specification->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecification()));
+ }
+}
diff --git a/src/uml/qumlbehavior.h b/src/uml/qumlbehavior.h
index d54484b3..99f8fca8 100644
--- a/src/uml/qumlbehavior.h
+++ b/src/uml/qumlbehavior.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlbehavior_p.h"
+#include <QtUml/QUmlClass>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -56,368 +54,53 @@ QT_MODULE(QtUml)
class QUmlBehavioralFeature;
class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
class QUmlParameter;
-class QUmlParameterableElement;
class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlBehavior : public QObject, public UmlBehavior
+class Q_UML_EXPORT QUmlBehavior : public QUmlClass
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QSet<QUmlBehavior *> redefinedBehavior READ redefinedBehavior)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
public:
- Q_DECL_HIDDEN explicit QUmlBehavior(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
+ virtual ~QUmlBehavior();
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> redefinedBehavior() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Slots for owned attributes [Behavior]
+ // Owned attributes
+ QUmlBehavioredClassifier *context() const;
+ Q_DECL_HIDDEN void setContext(QUmlBehavioredClassifier *context);
+ bool isReentrant() const;
void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void addRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void removeRedefinedBehavior(UmlBehavior *redefinedBehavior);
+ const QList<QUmlParameter *> ownedParameter() const;
+ void addOwnedParameter(QUmlParameter *ownedParameter);
+ void removeOwnedParameter(QUmlParameter *ownedParameter);
+ const QSet<QUmlParameterSet *> ownedParameterSet() const;
+ void addOwnedParameterSet(QUmlParameterSet *ownedParameterSet);
+ void removeOwnedParameterSet(QUmlParameterSet *ownedParameterSet);
+ const QSet<QUmlConstraint *> postcondition() const;
+ void addPostcondition(QUmlConstraint *postcondition);
+ void removePostcondition(QUmlConstraint *postcondition);
+ const QSet<QUmlConstraint *> precondition() const;
+ void addPrecondition(QUmlConstraint *precondition);
+ void removePrecondition(QUmlConstraint *precondition);
+ const QSet<QUmlBehavior *> redefinedBehavior() const;
+ void addRedefinedBehavior(QUmlBehavior *redefinedBehavior);
+ void removeRedefinedBehavior(QUmlBehavior *redefinedBehavior);
+ QUmlBehavioralFeature *specification() const;
void setSpecification(QUmlBehavioralFeature *specification);
+
+protected:
+ explicit QUmlBehavior();
+
+ bool _isReentrant;
+ QList<QUmlParameter *> _ownedParameter;
+ QSet<QUmlParameterSet *> _ownedParameterSet;
+ QSet<QUmlConstraint *> _postcondition;
+ QSet<QUmlConstraint *> _precondition;
+ QSet<QUmlBehavior *> _redefinedBehavior;
+ QUmlBehavioralFeature *_specification;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlBehavior *)
-Q_DECLARE_METATYPE(QList<QUmlBehavior *> *)
-Q_DECLARE_METATYPE(QSet<QUmlBehavior *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlBehavior) *)
QT_END_HEADER
diff --git a/src/uml/qumlbehavioralfeature.cpp b/src/uml/qumlbehavioralfeature.cpp
index 00ac54f5..8d7bbef0 100644
--- a/src/uml/qumlbehavioralfeature.cpp
+++ b/src/uml/qumlbehavioralfeature.cpp
@@ -41,518 +41,233 @@
#include "qumlbehavioralfeature.h"
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
#include <QtUml/QUmlParameter>
#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlType>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlBehavioralFeature
+ \class QUmlBehavioralFeature
\inmodule QtUml
\brief A behavioral feature is a feature of a classifier that specifies an aspect of the behavior of its instances.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.A behavioral feature owns zero or more parameter sets.
*/
-
-QUmlBehavioralFeature::QUmlBehavioralFeature(QObject *parent) :
- QObject(parent)
+QUmlBehavioralFeature::QUmlBehavioralFeature() :
+ _concurrency(QtUml::CallConcurrencyKindSequential),
+ _isAbstract(false)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlBehavioralFeature::ownedComment() const
+QUmlBehavioralFeature::~QUmlBehavioralFeature()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlBehavioralFeature::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ 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.
*/
-QUmlElement *QUmlBehavioralFeature::owner() const
+QtUml::CallConcurrencyKind
+QUmlBehavioralFeature::concurrency() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write property
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlBehavioralFeature::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _concurrency;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlBehavioralFeature::name() const
+void QUmlBehavioralFeature::setConcurrency(QtUml::CallConcurrencyKind concurrency)
{
- return _name;
-}
+ // This is a read-write property
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlBehavioralFeature::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (_concurrency != concurrency) {
+ _concurrency = concurrency;
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ 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.
*/
-QUmlNamespace *QUmlBehavioralFeature::namespace_() const
+bool
+QUmlBehavioralFeature::isAbstract() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write property
-/*!
- 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.
- */
-QString QUmlBehavioralFeature::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _isAbstract;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlBehavioralFeature::visibility() const
+void QUmlBehavioralFeature::setAbstract(bool isAbstract)
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Namespace]
+ // This is a read-write property
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlBehavioralFeature::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ if (_isAbstract != isAbstract) {
+ _isAbstract = isAbstract;
+ }
}
/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
+ 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).
*/
-const QSet<QUmlPackageableElement *> QUmlBehavioralFeature::importedMember() const
+const QSet<QUmlBehavior *>
+QUmlBehavioralFeature::method() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlBehavioralFeature::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ return _method;
}
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlBehavioralFeature::ownedMember() const
+void QUmlBehavioralFeature::addMethod(QUmlBehavior *method)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
+ // This is a read-write association end
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlBehavioralFeature::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
+ if (!_method.contains(method)) {
+ _method.insert(method);
+ if (method->asQObject() && this->asQObject())
+ QObject::connect(method->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMethod(QObject *)));
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlBehavioralFeature::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
+ // Adjust opposite properties
+ if (method) {
+ method->setSpecification(this);
+ }
+ }
}
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlBehavioralFeature::isLeaf() const
+void QUmlBehavioralFeature::removeMethod(QUmlBehavior *method)
{
- return _isLeaf;
-}
+ // This is a read-write association end
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlBehavioralFeature::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
+ if (_method.contains(method)) {
+ _method.remove(method);
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlBehavioralFeature::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ // Adjust opposite properties
+ if (method) {
+ method->setSpecification(0);
+ }
+ }
}
-// OWNED ATTRIBUTES [Feature]
-
/*!
- The Classifiers that have this Feature as a feature.
+ Specifies the ordered set of formal parameters of this BehavioralFeature.
*/
-const QSet<QUmlClassifier *> QUmlBehavioralFeature::featuringClassifier() const
+const QList<QUmlParameter *>
+QUmlBehavioralFeature::ownedParameter() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
+ // This is a read-write association end
+
+ return _ownedParameter;
}
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlBehavioralFeature::isStatic() const
+void QUmlBehavioralFeature::addOwnedParameter(QUmlParameter *ownedParameter)
{
- return _isStatic;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [BehavioralFeature]
+ if (!_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.append(ownedParameter);
+ if (ownedParameter->asQObject() && this->asQObject())
+ QObject::connect(ownedParameter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedParameter(QObject *)));
+ ownedParameter->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-QtUml::CallConcurrencyKind QUmlBehavioralFeature::concurrency() const
-{
- return _concurrency;
+ // Adjust subsetted properties
+ addOwnedMember(ownedParameter);
+ }
}
-/*!
- 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.
- */
-bool QUmlBehavioralFeature::isAbstract() const
+void QUmlBehavioralFeature::removeOwnedParameter(QUmlParameter *ownedParameter)
{
- return _isAbstract;
-}
+ // This is a read-write association end
-/*!
- 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).
- */
-const QSet<QUmlBehavior *> QUmlBehavioralFeature::method() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_method));
-}
+ if (_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.removeAll(ownedParameter);
+ if (ownedParameter->asQObject())
+ ownedParameter->asQObject()->setParent(0);
-/*!
- Specifies the ordered set of formal parameters of this BehavioralFeature.
- */
-const QList<QUmlParameter *> QUmlBehavioralFeature::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
+ // Adjust subsetted properties
+ removeOwnedMember(ownedParameter);
+ }
}
/*!
The ParameterSets owned by this BehavioralFeature.
*/
-const QSet<QUmlParameterSet *> QUmlBehavioralFeature::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
-
-/*!
- References the Types representing exceptions that may be raised during an invocation of this feature.
- */
-const QSet<QUmlType *> QUmlBehavioralFeature::raisedException() const
+const QSet<QUmlParameterSet *>
+QUmlBehavioralFeature::ownedParameterSet() const
{
- return *(reinterpret_cast<const QSet<QUmlType *> *>(&_raisedException));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlBehavioralFeature::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _ownedParameterSet;
}
-/*!
- 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.
- */
-bool QUmlBehavioralFeature::mustBeOwned() const
+void QUmlBehavioralFeature::addOwnedParameterSet(QUmlParameterSet *ownedParameterSet)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlBehavioralFeature::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ if (!_ownedParameterSet.contains(ownedParameterSet)) {
+ _ownedParameterSet.insert(ownedParameterSet);
+ if (ownedParameterSet->asQObject() && this->asQObject())
+ QObject::connect(ownedParameterSet->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedParameterSet(QObject *)));
+ ownedParameterSet->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlBehavioralFeature::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(ownedParameterSet);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlBehavioralFeature::separator() const
+void QUmlBehavioralFeature::removeOwnedParameterSet(QUmlParameterSet *ownedParameterSet)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
+ if (_ownedParameterSet.contains(ownedParameterSet)) {
+ _ownedParameterSet.remove(ownedParameterSet);
+ if (ownedParameterSet->asQObject())
+ ownedParameterSet->asQObject()->setParent(0);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlBehavioralFeature::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedMember(ownedParameterSet);
+ }
}
/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
+ References the Types representing exceptions that may be raised during an invocation of this feature.
*/
-QSet<QString> QUmlBehavioralFeature::getNamesOfMember(QUmlNamedElement *element) const
+const QSet<QUmlType *>
+QUmlBehavioralFeature::raisedException() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlBehavioralFeature::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _raisedException;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlBehavioralFeature::membersAreDistinguishable() const
+void QUmlBehavioralFeature::addRaisedException(QUmlType *raisedException)
{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavioralFeature::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (!_raisedException.contains(raisedException)) {
+ _raisedException.insert(raisedException);
+ if (raisedException->asQObject() && this->asQObject())
+ QObject::connect(raisedException->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRaisedException(QObject *)));
+ }
}
-/*!
- 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.
- */
-bool QUmlBehavioralFeature::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlBehavioralFeature::removeRaisedException(QUmlType *raisedException)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // This is a read-write association end
+
+ if (_raisedException.contains(raisedException)) {
+ _raisedException.remove(raisedException);
+ }
}
-// OPERATIONS [BehavioralFeature]
+// OPERATIONS
/*!
The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.
*/
bool QUmlBehavioralFeature::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
{
- return UmlBehavioralFeature::isDistinguishableFrom(n, ns);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlBehavioralFeature::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlBehavioralFeature::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlBehavioralFeature::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ qWarning("UmlBehavioralFeature::isDistinguishableFrom(): to be implemented (operation)");
-void QUmlBehavioralFeature::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ Q_UNUSED(n);
+ Q_UNUSED(ns);
+ return bool ();
}
-void QUmlBehavioralFeature::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlBehavioralFeature::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlBehavioralFeature::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlBehavioralFeature::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlBehavioralFeature::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlBehavioralFeature::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlBehavioralFeature::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlBehavioralFeature::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlBehavioralFeature::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlBehavioralFeature::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlBehavioralFeature::setStatic(bool isStatic)
-{
- UmlFeature::setStatic(isStatic);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioralFeature]
-
-void QUmlBehavioralFeature::setConcurrency(QtUml::CallConcurrencyKind concurrency)
-{
- UmlBehavioralFeature::setConcurrency(concurrency);
-}
-
-void QUmlBehavioralFeature::setAbstract(bool isAbstract)
-{
- UmlBehavioralFeature::setAbstract(isAbstract);
-}
-
-void QUmlBehavioralFeature::addMethod(UmlBehavior *method)
-{
- UmlBehavioralFeature::addMethod(method);
-}
-
-void QUmlBehavioralFeature::removeMethod(UmlBehavior *method)
-{
- UmlBehavioralFeature::removeMethod(method);
-}
-
-void QUmlBehavioralFeature::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavioralFeature::addOwnedParameter(ownedParameter);
-}
-
-void QUmlBehavioralFeature::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavioralFeature::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlBehavioralFeature::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavioralFeature::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlBehavioralFeature::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavioralFeature::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlBehavioralFeature::addRaisedException(UmlType *raisedException)
-{
- UmlBehavioralFeature::addRaisedException(raisedException);
-}
-
-void QUmlBehavioralFeature::removeRaisedException(UmlType *raisedException)
-{
- UmlBehavioralFeature::removeRaisedException(raisedException);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlbehavioralfeature.h b/src/uml/qumlbehavioralfeature.h
index 28db37ca..dd678e73 100644
--- a/src/uml/qumlbehavioralfeature.h
+++ b/src/uml/qumlbehavioralfeature.h
@@ -43,8 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlbehavioralfeature_p.h"
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlFeature>
+
#include <QtUml/QtUmlNamespace>
@@ -55,173 +56,51 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
class QUmlParameter;
class QUmlParameterSet;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
class QUmlType;
-class Q_UML_EXPORT QUmlBehavioralFeature : public QObject, public UmlBehavioralFeature
+class Q_UML_EXPORT QUmlBehavioralFeature : public QUmlNamespace, public QUmlFeature
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [BehavioralFeature]
- Q_PROPERTY(QtUml::CallConcurrencyKind concurrency READ concurrency)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(QSet<QUmlBehavior *> method READ method)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlType *> raisedException READ raisedException)
-
public:
- Q_DECL_HIDDEN explicit QUmlBehavioralFeature(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [BehavioralFeature]
- Q_INVOKABLE QtUml::CallConcurrencyKind concurrency() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> method() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlType *> raisedException() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [BehavioralFeature]
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [BehavioralFeature]
+ virtual ~QUmlBehavioralFeature();
+
+ // Owned attributes
+ QtUml::CallConcurrencyKind concurrency() const;
void setConcurrency(QtUml::CallConcurrencyKind concurrency);
+ bool isAbstract() const;
void setAbstract(bool isAbstract);
- void addMethod(UmlBehavior *method);
- void removeMethod(UmlBehavior *method);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addRaisedException(UmlType *raisedException);
- void removeRaisedException(UmlType *raisedException);
+ const QSet<QUmlBehavior *> method() const;
+ void addMethod(QUmlBehavior *method);
+ void removeMethod(QUmlBehavior *method);
+ const QList<QUmlParameter *> ownedParameter() const;
+ void addOwnedParameter(QUmlParameter *ownedParameter);
+ void removeOwnedParameter(QUmlParameter *ownedParameter);
+ const QSet<QUmlParameterSet *> ownedParameterSet() const;
+ void addOwnedParameterSet(QUmlParameterSet *ownedParameterSet);
+ void removeOwnedParameterSet(QUmlParameterSet *ownedParameterSet);
+ const QSet<QUmlType *> raisedException() const;
+ void addRaisedException(QUmlType *raisedException);
+ void removeRaisedException(QUmlType *raisedException);
+
+ // Operations
+ bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
+
+protected:
+ explicit QUmlBehavioralFeature();
+
+ QtUml::CallConcurrencyKind _concurrency;
+ bool _isAbstract;
+ QSet<QUmlBehavior *> _method;
+ QList<QUmlParameter *> _ownedParameter;
+ QSet<QUmlParameterSet *> _ownedParameterSet;
+ QSet<QUmlType *> _raisedException;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlBehavioralFeature *)
-Q_DECLARE_METATYPE(QList<QUmlBehavioralFeature *> *)
-Q_DECLARE_METATYPE(QSet<QUmlBehavioralFeature *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlBehavioralFeature) *)
QT_END_HEADER
diff --git a/src/uml/qumlbehavioredclassifier.cpp b/src/uml/qumlbehavioredclassifier.cpp
index a4b93f33..95524330 100644
--- a/src/uml/qumlbehavioredclassifier.cpp
+++ b/src/uml/qumlbehavioredclassifier.cpp
@@ -41,874 +41,145 @@
#include "qumlbehavioredclassifier.h"
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlBehavioredClassifier
+ \class QUmlBehavioredClassifier
\inmodule QtUml
\brief A behaviored classifier may have an interface realization.A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself.
*/
-
-QUmlBehavioredClassifier::QUmlBehavioredClassifier(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlBehavioredClassifier::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlBehavioredClassifier::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlBehavioredClassifier::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlBehavioredClassifier::clientDependency() const
+QUmlBehavioredClassifier::QUmlBehavioredClassifier() :
+ _classifierBehavior(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlBehavioredClassifier::name() const
+QUmlBehavioredClassifier::~QUmlBehavioredClassifier()
{
- return _name;
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlBehavioredClassifier::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlBehavioredClassifier::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlBehavioredClassifier::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlBehavioredClassifier::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlBehavioredClassifier::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlBehavioredClassifier::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlBehavioredClassifier::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlBehavioredClassifier::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlBehavioredClassifier::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlBehavioredClassifier::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlBehavioredClassifier::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlBehavioredClassifier::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlBehavioredClassifier::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlBehavioredClassifier::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlBehavioredClassifier::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlBehavioredClassifier::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlBehavioredClassifier::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlBehavioredClassifier::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlBehavioredClassifier::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlBehavioredClassifier::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlBehavioredClassifier::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlBehavioredClassifier::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlBehavioredClassifier::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlBehavioredClassifier::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlBehavioredClassifier::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlBehavioredClassifier::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlBehavioredClassifier::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlBehavioredClassifier::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlBehavioredClassifier::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlBehavioredClassifier::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlBehavioredClassifier::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
+// OWNED ATTRIBUTES
/*!
A behavior specification that specifies the behavior of the classifier itself.
*/
-QUmlBehavior *QUmlBehavioredClassifier::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlBehavioredClassifier::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlBehavioredClassifier::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlBehavioredClassifier::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlBehavioredClassifier::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlBehavioredClassifier::allOwningPackages() const
+QUmlBehavior *
+QUmlBehavioredClassifier::classifierBehavior() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _classifierBehavior;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlBehavioredClassifier::separator() const
+void QUmlBehavioredClassifier::setClassifierBehavior(QUmlBehavior *classifierBehavior)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlBehavioredClassifier::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ if (_classifierBehavior != classifierBehavior) {
+ // Adjust subsetted properties
+ removeOwnedBehavior(_classifierBehavior);
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlBehavioredClassifier::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
+ _classifierBehavior = classifierBehavior;
+ if (classifierBehavior->asQObject() && this->asQObject())
+ QObject::connect(classifierBehavior->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClassifierBehavior()));
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlBehavioredClassifier::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ if (classifierBehavior) {
+ addOwnedBehavior(classifierBehavior);
+ }
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
*/
-bool QUmlBehavioredClassifier::membersAreDistinguishable() const
+const QSet<QUmlInterfaceRealization *>
+QUmlBehavioredClassifier::interfaceRealization() const
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _interfaceRealization;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlBehavioredClassifier::isTemplateParameter() const
+void QUmlBehavioredClassifier::addInterfaceRealization(QUmlInterfaceRealization *interfaceRealization)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (!_interfaceRealization.contains(interfaceRealization)) {
+ _interfaceRealization.insert(interfaceRealization);
+ if (interfaceRealization->asQObject() && this->asQObject())
+ QObject::connect(interfaceRealization->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInterfaceRealization(QObject *)));
+ interfaceRealization->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
+ // Adjust subsetted properties
+ addOwnedElement(interfaceRealization);
+ addClientDependency(interfaceRealization);
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // Adjust opposite properties
+ if (interfaceRealization) {
+ interfaceRealization->setImplementingClassifier(this);
+ }
+ }
}
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlBehavioredClassifier::parameterableElements() const
+void QUmlBehavioredClassifier::removeInterfaceRealization(QUmlInterfaceRealization *interfaceRealization)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (_interfaceRealization.contains(interfaceRealization)) {
+ _interfaceRealization.remove(interfaceRealization);
+ if (interfaceRealization->asQObject())
+ interfaceRealization->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlBehavioredClassifier::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedElement(interfaceRealization);
+ removeClientDependency(interfaceRealization);
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlBehavioredClassifier::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (interfaceRealization) {
+ interfaceRealization->setImplementingClassifier(0);
+ }
+ }
}
/*!
- 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.
- */
-bool QUmlBehavioredClassifier::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlBehavioredClassifier::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlBehavioredClassifier::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlBehavioredClassifier::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlBehavioredClassifier::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ References behavior specifications owned by a classifier.
*/
-QSet<QUmlClassifier *> QUmlBehavioredClassifier::parents() const
+const QSet<QUmlBehavior *>
+QUmlBehavioredClassifier::ownedBehavior() const
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlBehavioredClassifier::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _ownedBehavior;
}
-void QUmlBehavioredClassifier::removeOwnedComment(UmlComment *ownedComment)
+void QUmlBehavioredClassifier::addOwnedBehavior(QUmlBehavior *ownedBehavior)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_ownedBehavior.contains(ownedBehavior)) {
+ _ownedBehavior.insert(ownedBehavior);
+ if (ownedBehavior->asQObject() && this->asQObject())
+ QObject::connect(ownedBehavior->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedBehavior(QObject *)));
+ ownedBehavior->asQObject()->setParent(this->asQObject());
-void QUmlBehavioredClassifier::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ addOwnedMember(ownedBehavior);
+ }
}
-void QUmlBehavioredClassifier::removeClientDependency(UmlDependency *clientDependency)
+void QUmlBehavioredClassifier::removeOwnedBehavior(QUmlBehavior *ownedBehavior)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlBehavioredClassifier::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (_ownedBehavior.contains(ownedBehavior)) {
+ _ownedBehavior.remove(ownedBehavior);
+ if (ownedBehavior->asQObject())
+ ownedBehavior->asQObject()->setParent(0);
-void QUmlBehavioredClassifier::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ // Adjust subsetted properties
+ removeOwnedMember(ownedBehavior);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlBehavioredClassifier::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlBehavioredClassifier::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlBehavioredClassifier::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlBehavioredClassifier::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlBehavioredClassifier::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlBehavioredClassifier::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlBehavioredClassifier::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlBehavioredClassifier::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlBehavioredClassifier::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlBehavioredClassifier::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlBehavioredClassifier::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlBehavioredClassifier::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlBehavioredClassifier::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlBehavioredClassifier::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlBehavioredClassifier::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlBehavioredClassifier::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlBehavioredClassifier::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlBehavioredClassifier::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlBehavioredClassifier::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlBehavioredClassifier::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlBehavioredClassifier::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlBehavioredClassifier::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlBehavioredClassifier::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlBehavioredClassifier::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlBehavioredClassifier::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlBehavioredClassifier::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlBehavioredClassifier::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlBehavioredClassifier::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlBehavioredClassifier::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlBehavioredClassifier::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlBehavioredClassifier::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlBehavioredClassifier::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlBehavioredClassifier::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlBehavioredClassifier::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlBehavioredClassifier::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlBehavioredClassifier::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlBehavioredClassifier::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlBehavioredClassifier::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-QT_END_NAMESPACE
diff --git a/src/uml/qumlbehavioredclassifier.h b/src/uml/qumlbehavioredclassifier.h
index d52eebac..81b55fdf 100644
--- a/src/uml/qumlbehavioredclassifier.h
+++ b/src/uml/qumlbehavioredclassifier.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlbehavioredclassifier_p.h"
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,274 +53,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlBehavioredClassifier : public QObject, public UmlBehavioredClassifier
+class Q_UML_EXPORT QUmlBehavioredClassifier : public virtual QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
public:
- Q_DECL_HIDDEN explicit QUmlBehavioredClassifier(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ virtual ~QUmlBehavioredClassifier();
- // Slots for owned attributes [BehavioredClassifier]
+ // Owned attributes
+ QUmlBehavior *classifierBehavior() const;
void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
+ const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
+ void addInterfaceRealization(QUmlInterfaceRealization *interfaceRealization);
+ void removeInterfaceRealization(QUmlInterfaceRealization *interfaceRealization);
+ const QSet<QUmlBehavior *> ownedBehavior() const;
+ void addOwnedBehavior(QUmlBehavior *ownedBehavior);
+ void removeOwnedBehavior(QUmlBehavior *ownedBehavior);
+
+protected:
+ explicit QUmlBehavioredClassifier();
+
+ QUmlBehavior *_classifierBehavior;
+ QSet<QUmlInterfaceRealization *> _interfaceRealization;
+ QSet<QUmlBehavior *> _ownedBehavior;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlBehavioredClassifier *)
-Q_DECLARE_METATYPE(QList<QUmlBehavioredClassifier *> *)
-Q_DECLARE_METATYPE(QSet<QUmlBehavioredClassifier *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlBehavioredClassifier) *)
QT_END_HEADER
diff --git a/src/uml/qumlbehaviorexecutionspecification.cpp b/src/uml/qumlbehaviorexecutionspecification.cpp
index a7049e3e..44a3c785 100644
--- a/src/uml/qumlbehaviorexecutionspecification.cpp
+++ b/src/uml/qumlbehaviorexecutionspecification.cpp
@@ -40,323 +40,53 @@
****************************************************************************/
#include "qumlbehaviorexecutionspecification.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOccurrenceSpecification>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
+#include "private/qumlbehaviorexecutionspecificationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlBehavior>
/*!
- \class UmlBehaviorExecutionSpecification
+ \class QUmlBehaviorExecutionSpecification
\inmodule QtUml
\brief A behavior execution specification is a kind of execution specification representing the execution of a behavior.
*/
-
-QUmlBehaviorExecutionSpecification::QUmlBehaviorExecutionSpecification(QObject *parent) :
- QObject(parent)
+QUmlBehaviorExecutionSpecification::QUmlBehaviorExecutionSpecification(bool createQObject) :
+ _behavior(0)
{
+ if (createQObject)
+ _qObject = new QUmlBehaviorExecutionSpecificationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlBehaviorExecutionSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlBehaviorExecutionSpecification::ownedElement() const
+QUmlBehaviorExecutionSpecification::~QUmlBehaviorExecutionSpecification()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlBehaviorExecutionSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlBehaviorExecutionSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlBehaviorExecutionSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlBehaviorExecutionSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlBehaviorExecutionSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlBehaviorExecutionSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlBehaviorExecutionSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlBehaviorExecutionSpecification::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlBehaviorExecutionSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlBehaviorExecutionSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlBehaviorExecutionSpecification::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [ExecutionSpecification]
-
-/*!
- References the OccurrenceSpecification that designates the finish of the Action or Behavior.
- */
-QUmlOccurrenceSpecification *QUmlBehaviorExecutionSpecification::finish() const
-{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_finish);
-}
-
-/*!
- References the OccurrenceSpecification that designates the start of the Action or Behavior
- */
-QUmlOccurrenceSpecification *QUmlBehaviorExecutionSpecification::start() const
-{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_start);
-}
-
-// OWNED ATTRIBUTES [BehaviorExecutionSpecification]
+// OWNED ATTRIBUTES
/*!
Behavior whose execution is occurring.
*/
-QUmlBehavior *QUmlBehaviorExecutionSpecification::behavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_behavior);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlBehaviorExecutionSpecification::allOwnedElements() const
+QUmlBehavior *
+QUmlBehaviorExecutionSpecification::behavior() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlBehaviorExecutionSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _behavior;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlBehaviorExecutionSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlBehaviorExecutionSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlBehaviorExecutionSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlBehaviorExecutionSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlBehaviorExecutionSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlBehaviorExecutionSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlBehaviorExecutionSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlBehaviorExecutionSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlBehaviorExecutionSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlBehaviorExecutionSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlBehaviorExecutionSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlBehaviorExecutionSpecification::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlBehaviorExecutionSpecification::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlBehaviorExecutionSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlBehaviorExecutionSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlBehaviorExecutionSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlBehaviorExecutionSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutionSpecification]
-
-void QUmlBehaviorExecutionSpecification::setFinish(QUmlOccurrenceSpecification *finish)
-{
- UmlExecutionSpecification::setFinish(finish);
-}
-
-void QUmlBehaviorExecutionSpecification::setStart(QUmlOccurrenceSpecification *start)
-{
- UmlExecutionSpecification::setStart(start);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehaviorExecutionSpecification]
-
void QUmlBehaviorExecutionSpecification::setBehavior(QUmlBehavior *behavior)
{
- UmlBehaviorExecutionSpecification::setBehavior(behavior);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_behavior != behavior) {
+ _behavior = behavior;
+ if (behavior->asQObject() && this->asQObject())
+ QObject::connect(behavior->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setBehavior()));
+ }
+}
diff --git a/src/uml/qumlbehaviorexecutionspecification.h b/src/uml/qumlbehaviorexecutionspecification.h
index d5b1185c..bfa3e721 100644
--- a/src/uml/qumlbehaviorexecutionspecification.h
+++ b/src/uml/qumlbehaviorexecutionspecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlbehaviorexecutionspecification_p.h"
+#include <QtUml/QUmlExecutionSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,122 +53,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlBehavior;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOccurrenceSpecification;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlBehaviorExecutionSpecification : public QObject, public UmlBehaviorExecutionSpecification
+class Q_UML_EXPORT QUmlBehaviorExecutionSpecification : public QUmlExecutionSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [ExecutionSpecification]
- Q_PROPERTY(QUmlOccurrenceSpecification * finish READ finish)
- Q_PROPERTY(QUmlOccurrenceSpecification * start READ start)
-
- // Properties [BehaviorExecutionSpecification]
- Q_PROPERTY(QUmlBehavior * behavior READ behavior)
-
public:
- Q_INVOKABLE explicit QUmlBehaviorExecutionSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [ExecutionSpecification]
- Q_INVOKABLE QUmlOccurrenceSpecification *finish() const;
- Q_INVOKABLE QUmlOccurrenceSpecification *start() const;
+ explicit QUmlBehaviorExecutionSpecification(bool createQObject = true);
+ virtual ~QUmlBehaviorExecutionSpecification();
- // Owned attributes [BehaviorExecutionSpecification]
- Q_INVOKABLE QUmlBehavior *behavior() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [ExecutionSpecification]
- void setFinish(QUmlOccurrenceSpecification *finish);
- void setStart(QUmlOccurrenceSpecification *start);
-
- // Slots for owned attributes [BehaviorExecutionSpecification]
+ // Owned attributes
+ QUmlBehavior *behavior() const;
void setBehavior(QUmlBehavior *behavior);
+
+protected:
+ QUmlBehavior *_behavior;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlBehaviorExecutionSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlBehaviorExecutionSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlBehaviorExecutionSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlBehaviorExecutionSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlbroadcastsignalaction.cpp b/src/uml/qumlbroadcastsignalaction.cpp
index 18ac2cb8..4a52bc89 100644
--- a/src/uml/qumlbroadcastsignalaction.cpp
+++ b/src/uml/qumlbroadcastsignalaction.cpp
@@ -40,549 +40,53 @@
****************************************************************************/
#include "qumlbroadcastsignalaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlSignal>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlbroadcastsignalactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlSignal>
/*!
- \class UmlBroadcastSignalAction
+ \class QUmlBroadcastSignalAction
\inmodule QtUml
\brief A broadcast signal action 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.
*/
-
-QUmlBroadcastSignalAction::QUmlBroadcastSignalAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlBroadcastSignalAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlBroadcastSignalAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlBroadcastSignalAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlBroadcastSignalAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlBroadcastSignalAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlBroadcastSignalAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlBroadcastSignalAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlBroadcastSignalAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlBroadcastSignalAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlBroadcastSignalAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlBroadcastSignalAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlBroadcastSignalAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlBroadcastSignalAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlBroadcastSignalAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlBroadcastSignalAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlBroadcastSignalAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlBroadcastSignalAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlBroadcastSignalAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlBroadcastSignalAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlBroadcastSignalAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlBroadcastSignalAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlBroadcastSignalAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlBroadcastSignalAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlBroadcastSignalAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlBroadcastSignalAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlBroadcastSignalAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlBroadcastSignalAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- Specification of the ordered set of argument values that appears during execution.
- */
-const QList<QUmlInputPin *> QUmlBroadcastSignalAction::argument() const
+QUmlBroadcastSignalAction::QUmlBroadcastSignalAction(bool createQObject) :
+ _signal(0)
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
+ if (createQObject)
+ _qObject = new QUmlBroadcastSignalActionObject(this);
}
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlBroadcastSignalAction::onPort() const
+QUmlBroadcastSignalAction::~QUmlBroadcastSignalAction()
{
- return reinterpret_cast<QUmlPort *>(_onPort);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [BroadcastSignalAction]
+// OWNED ATTRIBUTES
/*!
The specification of signal object transmitted to the target objects.
*/
-QUmlSignal *QUmlBroadcastSignalAction::signal() const
-{
- return reinterpret_cast<QUmlSignal *>(_signal);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlBroadcastSignalAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlBroadcastSignalAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlBroadcastSignalAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlBroadcastSignalAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlBroadcastSignalAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlBroadcastSignalAction::separator() const
+QUmlSignal *
+QUmlBroadcastSignalAction::signal() const
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlBroadcastSignalAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlBroadcastSignalAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlBroadcastSignalAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlBroadcastSignalAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlBroadcastSignalAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlBroadcastSignalAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlBroadcastSignalAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlBroadcastSignalAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlBroadcastSignalAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlBroadcastSignalAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return _signal;
}
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlBroadcastSignalAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlBroadcastSignalAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlBroadcastSignalAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlBroadcastSignalAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlBroadcastSignalAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlBroadcastSignalAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlBroadcastSignalAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlBroadcastSignalAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlBroadcastSignalAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlBroadcastSignalAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlBroadcastSignalAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlBroadcastSignalAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlBroadcastSignalAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlBroadcastSignalAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlBroadcastSignalAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlBroadcastSignalAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlBroadcastSignalAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlBroadcastSignalAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlBroadcastSignalAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlBroadcastSignalAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlBroadcastSignalAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
-}
-
-void QUmlBroadcastSignalAction::setOnPort(QUmlPort *onPort)
-{
- UmlInvocationAction::setOnPort(onPort);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BroadcastSignalAction]
-
void QUmlBroadcastSignalAction::setSignal(QUmlSignal *signal)
{
- UmlBroadcastSignalAction::setSignal(signal);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_signal != signal) {
+ _signal = signal;
+ if (signal->asQObject() && this->asQObject())
+ QObject::connect(signal->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignal()));
+ }
+}
diff --git a/src/uml/qumlbroadcastsignalaction.h b/src/uml/qumlbroadcastsignalaction.h
index 3ac26786..e8cc1448 100644
--- a/src/uml/qumlbroadcastsignalaction.h
+++ b/src/uml/qumlbroadcastsignalaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlbroadcastsignalaction_p.h"
+#include <QtUml/QUmlInvocationAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,197 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
class QUmlSignal;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlBroadcastSignalAction : public QObject, public UmlBroadcastSignalAction
+class Q_UML_EXPORT QUmlBroadcastSignalAction : public QUmlInvocationAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [BroadcastSignalAction]
- Q_PROPERTY(QUmlSignal * signal READ signal)
-
public:
- Q_INVOKABLE explicit QUmlBroadcastSignalAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlBroadcastSignalAction(bool createQObject = true);
+ virtual ~QUmlBroadcastSignalAction();
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [BroadcastSignalAction]
- Q_INVOKABLE QUmlSignal *signal() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [BroadcastSignalAction]
+ // Owned attributes
+ QUmlSignal *signal() const;
void setSignal(QUmlSignal *signal);
+
+protected:
+ QUmlSignal *_signal;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlBroadcastSignalAction *)
-Q_DECLARE_METATYPE(QList<QUmlBroadcastSignalAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlBroadcastSignalAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlBroadcastSignalAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcallaction.cpp b/src/uml/qumlcallaction.cpp
index 89f609fd..b3b32597 100644
--- a/src/uml/qumlcallaction.cpp
+++ b/src/uml/qumlcallaction.cpp
@@ -40,566 +40,83 @@
****************************************************************************/
#include "qumlcallaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlCallAction
+ \class QUmlCallAction
\inmodule QtUml
\brief CallAction is an abstract class for actions that invoke behavior and receive return values.
*/
-
-QUmlCallAction::QUmlCallAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCallAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCallAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCallAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCallAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCallAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCallAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCallAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCallAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCallAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCallAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCallAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCallAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCallAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCallAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCallAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCallAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCallAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCallAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCallAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCallAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlCallAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlCallAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlCallAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlCallAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlCallAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlCallAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlCallAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- Specification of the ordered set of argument values that appears during execution.
- */
-const QList<QUmlInputPin *> QUmlCallAction::argument() const
+QUmlCallAction::QUmlCallAction() :
+ _isSynchronous(true)
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
}
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlCallAction::onPort() const
+QUmlCallAction::~QUmlCallAction()
{
- return reinterpret_cast<QUmlPort *>(_onPort);
}
-// OWNED ATTRIBUTES [CallAction]
+// OWNED ATTRIBUTES
/*!
If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.
*/
-bool QUmlCallAction::isSynchronous() const
+bool
+QUmlCallAction::isSynchronous() const
{
- return _isSynchronous;
-}
-
-/*!
- A list of output pins where the results of performing the invocation are placed.
- */
-const QList<QUmlOutputPin *> QUmlCallAction::result() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_result));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCallAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlCallAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCallAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCallAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCallAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isSynchronous;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCallAction::separator() const
+void QUmlCallAction::setSynchronous(bool isSynchronous)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlCallAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_isSynchronous != isSynchronous) {
+ _isSynchronous = isSynchronous;
+ }
}
/*!
- 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.
+ A list of output pins where the results of performing the invocation are placed.
*/
-bool QUmlCallAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCallAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCallAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCallAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCallAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCallAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCallAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCallAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCallAction::setLeaf(bool isLeaf)
+const QList<QUmlOutputPin *>
+QUmlCallAction::result() const
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCallAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
+ return _result;
}
-void QUmlCallAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
+void QUmlCallAction::addResult(QUmlOutputPin *result)
{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
+ // This is a read-write association end
-void QUmlCallAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
+ if (!_result.contains(result)) {
+ _result.append(result);
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeResult(QObject *)));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlCallAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
+ // Adjust subsetted properties
+ addOutput(result);
+ }
}
-void QUmlCallAction::removeInPartition(UmlActivityPartition *inPartition)
+void QUmlCallAction::removeResult(QUmlOutputPin *result)
{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlCallAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCallAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
+ if (_result.contains(result)) {
+ _result.removeAll(result);
+ if (result->asQObject())
+ result->asQObject()->setParent(0);
-void QUmlCallAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCallAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
+ // Adjust subsetted properties
+ removeOutput(result);
+ }
}
-void QUmlCallAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCallAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCallAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlCallAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlCallAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlCallAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlCallAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlCallAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlCallAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlCallAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlCallAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlCallAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
-}
-
-void QUmlCallAction::setOnPort(QUmlPort *onPort)
-{
- UmlInvocationAction::setOnPort(onPort);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CallAction]
-
-void QUmlCallAction::setSynchronous(bool isSynchronous)
-{
- UmlCallAction::setSynchronous(isSynchronous);
-}
-
-void QUmlCallAction::addResult(UmlOutputPin *result)
-{
- UmlCallAction::addResult(result);
-}
-
-void QUmlCallAction::removeResult(UmlOutputPin *result)
-{
- UmlCallAction::removeResult(result);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcallaction.h b/src/uml/qumlcallaction.h
index 9b2235e8..b2ffbe8d 100644
--- a/src/uml/qumlcallaction.h
+++ b/src/uml/qumlcallaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcallaction_p.h"
+#include <QtUml/QUmlInvocationAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,200 +52,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlCallAction : public QObject, public UmlCallAction
+class Q_UML_EXPORT QUmlCallAction : public QUmlInvocationAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [CallAction]
- Q_PROPERTY(bool isSynchronous READ isSynchronous)
- Q_PROPERTY(QList<QUmlOutputPin *> result READ result)
-
public:
- Q_DECL_HIDDEN explicit QUmlCallAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [CallAction]
- Q_INVOKABLE bool isSynchronous() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [CallAction]
+ virtual ~QUmlCallAction();
+
+ // Owned attributes
+ bool isSynchronous() const;
void setSynchronous(bool isSynchronous);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
+ const QList<QUmlOutputPin *> result() const;
+ void addResult(QUmlOutputPin *result);
+ void removeResult(QUmlOutputPin *result);
+
+protected:
+ explicit QUmlCallAction();
+
+ bool _isSynchronous;
+ QList<QUmlOutputPin *> _result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCallAction *)
-Q_DECLARE_METATYPE(QList<QUmlCallAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCallAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCallAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcallbehavioraction.cpp b/src/uml/qumlcallbehavioraction.cpp
index cb304193..a943bdee 100644
--- a/src/uml/qumlcallbehavioraction.cpp
+++ b/src/uml/qumlcallbehavioraction.cpp
@@ -40,584 +40,53 @@
****************************************************************************/
#include "qumlcallbehavioraction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlcallbehavioractionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlBehavior>
/*!
- \class UmlCallBehaviorAction
+ \class QUmlCallBehaviorAction
\inmodule QtUml
\brief A call behavior action 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.
*/
-
-QUmlCallBehaviorAction::QUmlCallBehaviorAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCallBehaviorAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCallBehaviorAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCallBehaviorAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCallBehaviorAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCallBehaviorAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCallBehaviorAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCallBehaviorAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCallBehaviorAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCallBehaviorAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCallBehaviorAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCallBehaviorAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCallBehaviorAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCallBehaviorAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCallBehaviorAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCallBehaviorAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCallBehaviorAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCallBehaviorAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCallBehaviorAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCallBehaviorAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCallBehaviorAction::redefinedNode() const
+QUmlCallBehaviorAction::QUmlCallBehaviorAction(bool createQObject) :
+ _behavior(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ if (createQObject)
+ _qObject = new QUmlCallBehaviorActionObject(this);
}
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlCallBehaviorAction::handler() const
+QUmlCallBehaviorAction::~QUmlCallBehaviorAction()
{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlCallBehaviorAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlCallBehaviorAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlCallBehaviorAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlCallBehaviorAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlCallBehaviorAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlCallBehaviorAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- Specification of the ordered set of argument values that appears during execution.
- */
-const QList<QUmlInputPin *> QUmlCallBehaviorAction::argument() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
-}
-
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlCallBehaviorAction::onPort() const
-{
- return reinterpret_cast<QUmlPort *>(_onPort);
-}
-
-// OWNED ATTRIBUTES [CallAction]
-
-/*!
- If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.
- */
-bool QUmlCallBehaviorAction::isSynchronous() const
-{
- return _isSynchronous;
-}
-
-/*!
- A list of output pins where the results of performing the invocation are placed.
- */
-const QList<QUmlOutputPin *> QUmlCallBehaviorAction::result() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_result));
-}
-
-// OWNED ATTRIBUTES [CallBehaviorAction]
+// OWNED ATTRIBUTES
/*!
The invoked behavior. It must be capable of accepting and returning control.
*/
-QUmlBehavior *QUmlCallBehaviorAction::behavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_behavior);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCallBehaviorAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCallBehaviorAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCallBehaviorAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCallBehaviorAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCallBehaviorAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlBehavior *
+QUmlCallBehaviorAction::behavior() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCallBehaviorAction::separator() const
-{
- return UmlNamedElement::separator();
+ return _behavior;
}
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlCallBehaviorAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlCallBehaviorAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCallBehaviorAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCallBehaviorAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCallBehaviorAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCallBehaviorAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCallBehaviorAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCallBehaviorAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCallBehaviorAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCallBehaviorAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCallBehaviorAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlCallBehaviorAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCallBehaviorAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCallBehaviorAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlCallBehaviorAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlCallBehaviorAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCallBehaviorAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlCallBehaviorAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCallBehaviorAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlCallBehaviorAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCallBehaviorAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCallBehaviorAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlCallBehaviorAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlCallBehaviorAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlCallBehaviorAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlCallBehaviorAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlCallBehaviorAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlCallBehaviorAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlCallBehaviorAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlCallBehaviorAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlCallBehaviorAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
-}
-
-void QUmlCallBehaviorAction::setOnPort(QUmlPort *onPort)
-{
- UmlInvocationAction::setOnPort(onPort);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CallAction]
-
-void QUmlCallBehaviorAction::setSynchronous(bool isSynchronous)
-{
- UmlCallAction::setSynchronous(isSynchronous);
-}
-
-void QUmlCallBehaviorAction::addResult(UmlOutputPin *result)
-{
- UmlCallAction::addResult(result);
-}
-
-void QUmlCallBehaviorAction::removeResult(UmlOutputPin *result)
-{
- UmlCallAction::removeResult(result);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CallBehaviorAction]
-
void QUmlCallBehaviorAction::setBehavior(QUmlBehavior *behavior)
{
- UmlCallBehaviorAction::setBehavior(behavior);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_behavior != behavior) {
+ _behavior = behavior;
+ if (behavior->asQObject() && this->asQObject())
+ QObject::connect(behavior->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setBehavior()));
+ }
+}
diff --git a/src/uml/qumlcallbehavioraction.h b/src/uml/qumlcallbehavioraction.h
index 0aefe3e8..dcc05cb8 100644
--- a/src/uml/qumlcallbehavioraction.h
+++ b/src/uml/qumlcallbehavioraction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcallbehavioraction_p.h"
+#include <QtUml/QUmlCallAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,210 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlCallBehaviorAction : public QObject, public UmlCallBehaviorAction
+class Q_UML_EXPORT QUmlCallBehaviorAction : public QUmlCallAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [CallAction]
- Q_PROPERTY(bool isSynchronous READ isSynchronous)
- Q_PROPERTY(QList<QUmlOutputPin *> result READ result)
-
- // Properties [CallBehaviorAction]
- Q_PROPERTY(QUmlBehavior * behavior READ behavior)
-
public:
- Q_INVOKABLE explicit QUmlCallBehaviorAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlCallBehaviorAction(bool createQObject = true);
+ virtual ~QUmlCallBehaviorAction();
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [CallAction]
- Q_INVOKABLE bool isSynchronous() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> result() const;
-
- // Owned attributes [CallBehaviorAction]
- Q_INVOKABLE QUmlBehavior *behavior() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [CallAction]
- void setSynchronous(bool isSynchronous);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
-
- // Slots for owned attributes [CallBehaviorAction]
+ // Owned attributes
+ QUmlBehavior *behavior() const;
void setBehavior(QUmlBehavior *behavior);
+
+protected:
+ QUmlBehavior *_behavior;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCallBehaviorAction *)
-Q_DECLARE_METATYPE(QList<QUmlCallBehaviorAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCallBehaviorAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCallBehaviorAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcallevent.cpp b/src/uml/qumlcallevent.cpp
index 3cc0a0d0..bfc94ddf 100644
--- a/src/uml/qumlcallevent.cpp
+++ b/src/uml/qumlcallevent.cpp
@@ -40,274 +40,53 @@
****************************************************************************/
#include "qumlcallevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumlcalleventobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOperation>
/*!
- \class UmlCallEvent
+ \class QUmlCallEvent
\inmodule QtUml
\brief A call event models the receipt by an object of a message invoking a call of an operation.
*/
-
-QUmlCallEvent::QUmlCallEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCallEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCallEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCallEvent::owner() const
+QUmlCallEvent::QUmlCallEvent(bool createQObject) :
+ _operation(0)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlCallEventObject(this);
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlCallEvent::owningTemplateParameter() const
+QUmlCallEvent::~QUmlCallEvent()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlCallEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCallEvent::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCallEvent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCallEvent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCallEvent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCallEvent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlCallEvent::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [CallEvent]
+// OWNED ATTRIBUTES
/*!
Designates the operation whose invocation raised the call event.
*/
-QUmlOperation *QUmlCallEvent::operation() const
+QUmlOperation *
+QUmlCallEvent::operation() const
{
- return reinterpret_cast<QUmlOperation *>(_operation);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCallEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _operation;
}
-/*!
- 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.
- */
-bool QUmlCallEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlCallEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlCallEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCallEvent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCallEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCallEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCallEvent::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCallEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCallEvent::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlCallEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlCallEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCallEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCallEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCallEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCallEvent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlCallEvent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CallEvent]
-
void QUmlCallEvent::setOperation(QUmlOperation *operation)
{
- UmlCallEvent::setOperation(operation);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_operation != operation) {
+ _operation = operation;
+ if (operation->asQObject() && this->asQObject())
+ QObject::connect(operation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOperation()));
+ }
+}
diff --git a/src/uml/qumlcallevent.h b/src/uml/qumlcallevent.h
index f97f2e0a..4bd1472c 100644
--- a/src/uml/qumlcallevent.h
+++ b/src/uml/qumlcallevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcallevent_p.h"
+#include <QtUml/QUmlMessageEvent>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,110 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlCallEvent : public QObject, public UmlCallEvent
+class Q_UML_EXPORT QUmlCallEvent : public QUmlMessageEvent
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [CallEvent]
- Q_PROPERTY(QUmlOperation * operation READ operation)
-
public:
- Q_INVOKABLE explicit QUmlCallEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlCallEvent(bool createQObject = true);
+ virtual ~QUmlCallEvent();
- // Owned attributes [CallEvent]
- Q_INVOKABLE QUmlOperation *operation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [CallEvent]
+ // Owned attributes
+ QUmlOperation *operation() const;
void setOperation(QUmlOperation *operation);
+
+protected:
+ QUmlOperation *_operation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCallEvent *)
-Q_DECLARE_METATYPE(QList<QUmlCallEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCallEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCallEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumlcalloperationaction.cpp b/src/uml/qumlcalloperationaction.cpp
index 4dc34cea..6a2926e9 100644
--- a/src/uml/qumlcalloperationaction.cpp
+++ b/src/uml/qumlcalloperationaction.cpp
@@ -40,597 +40,86 @@
****************************************************************************/
#include "qumlcalloperationaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlcalloperationactionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlCallOperationAction
+ \class QUmlCallOperationAction
\inmodule QtUml
\brief A call operation action 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.
*/
-
-QUmlCallOperationAction::QUmlCallOperationAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCallOperationAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCallOperationAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCallOperationAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCallOperationAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCallOperationAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCallOperationAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCallOperationAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCallOperationAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCallOperationAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCallOperationAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCallOperationAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCallOperationAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCallOperationAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCallOperationAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCallOperationAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCallOperationAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCallOperationAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCallOperationAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCallOperationAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCallOperationAction::redefinedNode() const
+QUmlCallOperationAction::QUmlCallOperationAction(bool createQObject) :
+ _operation(0),
+ _target(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ if (createQObject)
+ _qObject = new QUmlCallOperationActionObject(this);
}
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlCallOperationAction::handler() const
+QUmlCallOperationAction::~QUmlCallOperationAction()
{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlCallOperationAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlCallOperationAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlCallOperationAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlCallOperationAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlCallOperationAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlCallOperationAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- Specification of the ordered set of argument values that appears during execution.
- */
-const QList<QUmlInputPin *> QUmlCallOperationAction::argument() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
-}
-
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlCallOperationAction::onPort() const
-{
- return reinterpret_cast<QUmlPort *>(_onPort);
-}
-
-// OWNED ATTRIBUTES [CallAction]
-
-/*!
- If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.
- */
-bool QUmlCallOperationAction::isSynchronous() const
-{
- return _isSynchronous;
-}
-
-/*!
- A list of output pins where the results of performing the invocation are placed.
- */
-const QList<QUmlOutputPin *> QUmlCallOperationAction::result() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_result));
-}
-
-// OWNED ATTRIBUTES [CallOperationAction]
+// OWNED ATTRIBUTES
/*!
The operation to be invoked by the action execution.
*/
-QUmlOperation *QUmlCallOperationAction::operation() const
-{
- return reinterpret_cast<QUmlOperation *>(_operation);
-}
-
-/*!
- 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.
- */
-QUmlInputPin *QUmlCallOperationAction::target() const
-{
- return reinterpret_cast<QUmlInputPin *>(_target);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCallOperationAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCallOperationAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCallOperationAction::allNamespaces() const
+QUmlOperation *
+QUmlCallOperationAction::operation() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCallOperationAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _operation;
}
-/*!
- 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.
- */
-bool QUmlCallOperationAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlCallOperationAction::setOperation(QUmlOperation *operation)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCallOperationAction::separator() const
-{
- return UmlNamedElement::separator();
+ if (_operation != operation) {
+ _operation = operation;
+ if (operation->asQObject() && this->asQObject())
+ QObject::connect(operation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOperation()));
+ }
}
-// OPERATIONS [RedefinableElement]
-
/*!
- 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.
- */
-bool QUmlCallOperationAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ 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.
*/
-bool QUmlCallOperationAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCallOperationAction::addOwnedComment(UmlComment *ownedComment)
+QUmlInputPin *
+QUmlCallOperationAction::target() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCallOperationAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-void QUmlCallOperationAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCallOperationAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCallOperationAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCallOperationAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCallOperationAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCallOperationAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCallOperationAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlCallOperationAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
+ return _target;
}
-void QUmlCallOperationAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCallOperationAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlCallOperationAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlCallOperationAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCallOperationAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlCallOperationAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCallOperationAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlCallOperationAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCallOperationAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCallOperationAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlCallOperationAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlCallOperationAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlCallOperationAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlCallOperationAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlCallOperationAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlCallOperationAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlCallOperationAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlCallOperationAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlCallOperationAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
-}
-
-void QUmlCallOperationAction::setOnPort(QUmlPort *onPort)
-{
- UmlInvocationAction::setOnPort(onPort);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CallAction]
-
-void QUmlCallOperationAction::setSynchronous(bool isSynchronous)
-{
- UmlCallAction::setSynchronous(isSynchronous);
-}
-
-void QUmlCallOperationAction::addResult(UmlOutputPin *result)
-{
- UmlCallAction::addResult(result);
-}
-
-void QUmlCallOperationAction::removeResult(UmlOutputPin *result)
+void QUmlCallOperationAction::setTarget(QUmlInputPin *target)
{
- UmlCallAction::removeResult(result);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [CallOperationAction]
+ if (_target != target) {
+ // Adjust subsetted properties
+ removeInput(_target);
-void QUmlCallOperationAction::setOperation(QUmlOperation *operation)
-{
- UmlCallOperationAction::setOperation(operation);
-}
+ _target = target;
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTarget()));
+ target->asQObject()->setParent(this->asQObject());
-void QUmlCallOperationAction::setTarget(QUmlInputPin *target)
-{
- UmlCallOperationAction::setTarget(target);
+ // Adjust subsetted properties
+ if (target) {
+ addInput(target);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcalloperationaction.h b/src/uml/qumlcalloperationaction.h
index f9b46fc4..7397f9fd 100644
--- a/src/uml/qumlcalloperationaction.h
+++ b/src/uml/qumlcalloperationaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcalloperationaction_p.h"
+#include <QtUml/QUmlCallAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,213 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlCallOperationAction : public QObject, public UmlCallOperationAction
+class Q_UML_EXPORT QUmlCallOperationAction : public QUmlCallAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [CallAction]
- Q_PROPERTY(bool isSynchronous READ isSynchronous)
- Q_PROPERTY(QList<QUmlOutputPin *> result READ result)
-
- // Properties [CallOperationAction]
- Q_PROPERTY(QUmlOperation * operation READ operation)
- Q_PROPERTY(QUmlInputPin * target READ target)
-
public:
- Q_INVOKABLE explicit QUmlCallOperationAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlCallOperationAction(bool createQObject = true);
+ virtual ~QUmlCallOperationAction();
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [CallAction]
- Q_INVOKABLE bool isSynchronous() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> result() const;
-
- // Owned attributes [CallOperationAction]
- Q_INVOKABLE QUmlOperation *operation() const;
- Q_INVOKABLE QUmlInputPin *target() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [CallAction]
- void setSynchronous(bool isSynchronous);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
-
- // Slots for owned attributes [CallOperationAction]
+ // Owned attributes
+ QUmlOperation *operation() const;
void setOperation(QUmlOperation *operation);
+ QUmlInputPin *target() const;
void setTarget(QUmlInputPin *target);
+
+protected:
+ QUmlOperation *_operation;
+ QUmlInputPin *_target;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCallOperationAction *)
-Q_DECLARE_METATYPE(QList<QUmlCallOperationAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCallOperationAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCallOperationAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcentralbuffernode.cpp b/src/uml/qumlcentralbuffernode.cpp
index 7e0ea73e..f97a6f7d 100644
--- a/src/uml/qumlcentralbuffernode.cpp
+++ b/src/uml/qumlcentralbuffernode.cpp
@@ -40,487 +40,26 @@
****************************************************************************/
#include "qumlcentralbuffernode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlcentralbuffernodeobject_p.h"
/*!
- \class UmlCentralBufferNode
+ \class QUmlCentralBufferNode
\inmodule QtUml
\brief A central buffer node is an object node for managing flows from multiple sources and destinations.
*/
-
-QUmlCentralBufferNode::QUmlCentralBufferNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCentralBufferNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCentralBufferNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCentralBufferNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCentralBufferNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCentralBufferNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCentralBufferNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCentralBufferNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCentralBufferNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCentralBufferNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCentralBufferNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCentralBufferNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCentralBufferNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCentralBufferNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCentralBufferNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCentralBufferNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCentralBufferNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCentralBufferNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCentralBufferNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCentralBufferNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCentralBufferNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlCentralBufferNode::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlCentralBufferNode::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlCentralBufferNode::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlCentralBufferNode::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlCentralBufferNode::selection() const
+QUmlCentralBufferNode::QUmlCentralBufferNode(bool createQObject)
{
- return reinterpret_cast<QUmlBehavior *>(_selection);
+ if (createQObject)
+ _qObject = new QUmlCentralBufferNodeObject(this);
}
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlCentralBufferNode::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCentralBufferNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCentralBufferNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCentralBufferNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCentralBufferNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCentralBufferNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCentralBufferNode::separator() const
+QUmlCentralBufferNode::~QUmlCentralBufferNode()
{
- return UmlNamedElement::separator();
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlCentralBufferNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlCentralBufferNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCentralBufferNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCentralBufferNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCentralBufferNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCentralBufferNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCentralBufferNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCentralBufferNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCentralBufferNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCentralBufferNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCentralBufferNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlCentralBufferNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCentralBufferNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCentralBufferNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlCentralBufferNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlCentralBufferNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCentralBufferNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlCentralBufferNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCentralBufferNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlCentralBufferNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCentralBufferNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCentralBufferNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlCentralBufferNode::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlCentralBufferNode::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlCentralBufferNode::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlCentralBufferNode::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlCentralBufferNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlCentralBufferNode::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlCentralBufferNode::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcentralbuffernode.h b/src/uml/qumlcentralbuffernode.h
index 75eae54f..297ff035 100644
--- a/src/uml/qumlcentralbuffernode.h
+++ b/src/uml/qumlcentralbuffernode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcentralbuffernode_p.h"
+#include <QtUml/QUmlObjectNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,171 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlCentralBufferNode : public QObject, public UmlCentralBufferNode
+class Q_UML_EXPORT QUmlCentralBufferNode : public QUmlObjectNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
public:
- Q_INVOKABLE explicit QUmlCentralBufferNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+ explicit QUmlCentralBufferNode(bool createQObject = true);
+ virtual ~QUmlCentralBufferNode();
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCentralBufferNode *)
-Q_DECLARE_METATYPE(QList<QUmlCentralBufferNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCentralBufferNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCentralBufferNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlchangeevent.cpp b/src/uml/qumlchangeevent.cpp
index 694ff272..3d27eb7b 100644
--- a/src/uml/qumlchangeevent.cpp
+++ b/src/uml/qumlchangeevent.cpp
@@ -40,274 +40,62 @@
****************************************************************************/
#include "qumlchangeevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlchangeeventobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlValueSpecification>
/*!
- \class UmlChangeEvent
+ \class QUmlChangeEvent
\inmodule QtUml
\brief A change event models a change in the system configuration that makes a condition true.
*/
-
-QUmlChangeEvent::QUmlChangeEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlChangeEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlChangeEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlChangeEvent::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlChangeEvent::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlChangeEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlChangeEvent::clientDependency() const
+QUmlChangeEvent::QUmlChangeEvent(bool createQObject) :
+ _changeExpression(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlChangeEventObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlChangeEvent::name() const
+QUmlChangeEvent::~QUmlChangeEvent()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlChangeEvent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlChangeEvent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlChangeEvent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlChangeEvent::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [ChangeEvent]
+// OWNED ATTRIBUTES
/*!
A Boolean-valued expression that will result in a change event whenever its value changes from false to true.
*/
-QUmlValueSpecification *QUmlChangeEvent::changeExpression() const
+QUmlValueSpecification *
+QUmlChangeEvent::changeExpression() const
{
- return reinterpret_cast<QUmlValueSpecification *>(_changeExpression);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlChangeEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _changeExpression;
}
-/*!
- 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.
- */
-bool QUmlChangeEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlChangeEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlChangeEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlChangeEvent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlChangeEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlChangeEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlChangeEvent::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlChangeEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlChangeEvent::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlChangeEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlChangeEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlChangeEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlChangeEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlChangeEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlChangeEvent::setNameExpression(QUmlStringExpression *nameExpression)
+void QUmlChangeEvent::setChangeExpression(QUmlValueSpecification *changeExpression)
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+ // This is a read-write association end
-void QUmlChangeEvent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
+ if (_changeExpression != changeExpression) {
+ // Adjust subsetted properties
+ removeOwnedElement(_changeExpression);
-// SLOTS FOR OWNED ATTRIBUTES [ChangeEvent]
+ _changeExpression = changeExpression;
+ if (changeExpression->asQObject() && this->asQObject())
+ QObject::connect(changeExpression->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setChangeExpression()));
+ changeExpression->asQObject()->setParent(this->asQObject());
-void QUmlChangeEvent::setChangeExpression(QUmlValueSpecification *changeExpression)
-{
- UmlChangeEvent::setChangeExpression(changeExpression);
+ // Adjust subsetted properties
+ if (changeExpression) {
+ addOwnedElement(changeExpression);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlchangeevent.h b/src/uml/qumlchangeevent.h
index 28eea497..89d7c652 100644
--- a/src/uml/qumlchangeevent.h
+++ b/src/uml/qumlchangeevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlchangeevent_p.h"
+#include <QtUml/QUmlEvent>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,110 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlChangeEvent : public QObject, public UmlChangeEvent
+class Q_UML_EXPORT QUmlChangeEvent : public QUmlEvent
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [ChangeEvent]
- Q_PROPERTY(QUmlValueSpecification * changeExpression READ changeExpression)
-
public:
- Q_INVOKABLE explicit QUmlChangeEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlChangeEvent(bool createQObject = true);
+ virtual ~QUmlChangeEvent();
- // Owned attributes [ChangeEvent]
- Q_INVOKABLE QUmlValueSpecification *changeExpression() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [ChangeEvent]
+ // Owned attributes
+ QUmlValueSpecification *changeExpression() const;
void setChangeExpression(QUmlValueSpecification *changeExpression);
+
+protected:
+ QUmlValueSpecification *_changeExpression;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlChangeEvent *)
-Q_DECLARE_METATYPE(QList<QUmlChangeEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlChangeEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlChangeEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumlclass.cpp b/src/uml/qumlclass.cpp
index 9b79151a..4e1d2d0d 100644
--- a/src/uml/qumlclass.cpp
+++ b/src/uml/qumlclass.cpp
@@ -40,1039 +40,360 @@
****************************************************************************/
#include "qumlclass.h"
-#include <QtUml/QUmlBehavior>
+#include "private/qumlclassobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
#include <QtUml/QUmlProperty>
#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlClass
+ \class QUmlClass
\inmodule QtUml
\brief 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 instances executing within the context of some other object). A class may also specify which signals the instances of this class handle.A class describes a set of objects that share the same specifications of features, constraints, and semantics.A class has the capability to have an internal structure and ports.Class has derived association that indicates how it may be extended through one or more stereotypes. Stereotype is the only kind of metaclass that cannot be extended by stereotypes.
*/
-
-QUmlClass::QUmlClass(QObject *parent) :
- QObject(parent)
+QUmlClass::QUmlClass(bool createQObject) :
+ _isAbstract(false),
+ _isActive(false)
{
+ if (createQObject)
+ _qObject = new QUmlClassObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClass::ownedComment() const
+QUmlClass::~QUmlClass()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlClass::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
*/
-QUmlElement *QUmlClass::owner() const
+const QSet<QUmlExtension *>
+QUmlClass::extension() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-only derived association end
-// OWNED ATTRIBUTES [NamedElement]
+ qWarning("UmlClass::extension(): to be implemented (this is a derived association end)");
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlClass::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return QSet<QUmlExtension *>();
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlClass::name() const
+void QUmlClass::addExtension(QUmlExtension *extension)
{
- return _name;
-}
+ // This is a read-only derived association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlClass::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ qWarning("UmlClass::extension(): to be implemented (this is a derived association end)");
+ Q_UNUSED(extension);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlClass::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- 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.
- */
-QString QUmlClass::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust opposite properties
+ if (extension) {
+ extension->setMetaclass(this);
+ }
+ }
}
-// OWNED ATTRIBUTES [Namespace]
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlClass::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlClass::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlClass::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlClass::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlClass::ownedRule() const
+void QUmlClass::removeExtension(QUmlExtension *extension)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
+ // This is a read-only derived association end
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlClass::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ qWarning("UmlClass::extension(): to be implemented (this is a derived association end)");
+ Q_UNUSED(extension);
-// OWNED ATTRIBUTES [ParameterableElement]
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlClass::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ // Adjust opposite properties
+ if (extension) {
+ extension->setMetaclass(0);
+ }
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
+ 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.True when a class is abstract.
*/
-QtUml::VisibilityKind QUmlClass::visibility() const
+bool
+QUmlClass::isAbstract() const
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
+ // This is a read-write property
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlClass::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
+ return _isAbstract;
}
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlClass::isLeaf() const
+void QUmlClass::setAbstract(bool isAbstract)
{
- return _isLeaf;
-}
+ // This is a read-write property
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlClass::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (_isAbstract != isAbstract) {
+ _isAbstract = isAbstract;
+ }
}
/*!
- References the contexts that this element may be redefined from.
+ 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.
*/
-const QSet<QUmlClassifier *> QUmlClass::redefinitionContext() const
+bool
+QUmlClass::isActive() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
+ // This is a read-write property
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlClass::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
+ return _isActive;
}
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlClass::attribute() const
+void QUmlClass::setActive(bool isActive)
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
+ // This is a read-write property
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlClass::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
+ if (_isActive != isActive) {
+ _isActive = isActive;
+ }
}
/*!
- Specifies each feature defined in the classifier.Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features.
+ References all the Classifiers that are defined (nested) within the Class.
*/
-const QSet<QUmlFeature *> QUmlClass::feature() const
+const QList<QUmlClassifier *>
+QUmlClass::nestedClassifier() const
{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
+ // This is a read-write association end
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlClass::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
+ return _nestedClassifier;
}
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlClass::inheritedMember() const
+void QUmlClass::addNestedClassifier(QUmlClassifier *nestedClassifier)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlClass::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
+ if (!_nestedClassifier.contains(nestedClassifier)) {
+ _nestedClassifier.append(nestedClassifier);
+ if (nestedClassifier->asQObject() && this->asQObject())
+ QObject::connect(nestedClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNestedClassifier(QObject *)));
+ nestedClassifier->asQObject()->setParent(this->asQObject());
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlClass::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
+ // Adjust subsetted properties
+ addOwnedMember(nestedClassifier);
+ }
}
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlClass::ownedUseCase() const
+void QUmlClass::removeNestedClassifier(QUmlClassifier *nestedClassifier)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
+ // This is a read-write association end
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlClass::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
+ if (_nestedClassifier.contains(nestedClassifier)) {
+ _nestedClassifier.removeAll(nestedClassifier);
+ if (nestedClassifier->asQObject())
+ nestedClassifier->asQObject()->setParent(0);
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlClass::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
+ // Adjust subsetted properties
+ removeOwnedMember(nestedClassifier);
+ }
}
/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
+ The attributes (i.e. the properties) owned by the class.
*/
-QUmlCollaborationUse *QUmlClass::representation() const
+const QList<QUmlProperty *>
+QUmlClass::ownedAttribute() const
{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
+ // This is a read-write association end
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlClass::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
+ return _ownedAttribute;
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlClass::templateParameter() const
+void QUmlClass::addOwnedAttribute(QUmlProperty *ownedAttribute)
{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
+ // This is a read-write association end
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlClass::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
+ if (!_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.append(ownedAttribute);
+ if (ownedAttribute->asQObject() && this->asQObject())
+ QObject::connect(ownedAttribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedAttribute(QObject *)));
+ ownedAttribute->asQObject()->setParent(this->asQObject());
-// OWNED ATTRIBUTES [StructuredClassifier]
+ // Adjust subsetted properties
+ addOwnedMember(ownedAttribute);
+ addAttribute(ownedAttribute);
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlClass::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
+ // Adjust opposite properties
+ if (ownedAttribute) {
+ ownedAttribute->setClass(this);
+ }
+ }
}
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlClass::part() const
+void QUmlClass::removeOwnedAttribute(QUmlProperty *ownedAttribute)
{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlClass::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
+ if (_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.removeAll(ownedAttribute);
+ if (ownedAttribute->asQObject())
+ ownedAttribute->asQObject()->setParent(0);
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
+ // Adjust subsetted properties
+ removeOwnedMember(ownedAttribute);
+ removeAttribute(ownedAttribute);
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlClass::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedAttribute) {
+ ownedAttribute->setClass(0);
+ }
+ }
}
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
/*!
- A behavior specification that specifies the behavior of the classifier itself.
+ The operations owned by the class.
*/
-QUmlBehavior *QUmlClass::classifierBehavior() const
+const QList<QUmlOperation *>
+QUmlClass::ownedOperation() const
{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
+ // This is a read-write association end
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlClass::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
+ return _ownedOperation;
}
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlClass::ownedBehavior() const
+void QUmlClass::addOwnedOperation(QUmlOperation *ownedOperation)
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Class]
+ if (!_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.append(ownedOperation);
+ if (ownedOperation->asQObject() && this->asQObject())
+ QObject::connect(ownedOperation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedOperation(QObject *)));
+ ownedOperation->asQObject()->setParent(this->asQObject());
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlClass::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addFeature(ownedOperation);
+ addOwnedMember(ownedOperation);
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlClass::isAbstract() const
-{
- return _isAbstract;
+ // Adjust opposite properties
+ if (ownedOperation) {
+ ownedOperation->setClass(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlClass::isActive() const
+void QUmlClass::removeOwnedOperation(QUmlOperation *ownedOperation)
{
- return _isActive;
-}
+ // This is a read-write association end
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlClass::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
+ if (_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.removeAll(ownedOperation);
+ if (ownedOperation->asQObject())
+ ownedOperation->asQObject()->setParent(0);
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlClass::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
+ // Adjust subsetted properties
+ removeFeature(ownedOperation);
+ removeOwnedMember(ownedOperation);
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlClass::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
+ // Adjust opposite properties
+ if (ownedOperation) {
+ ownedOperation->setClass(0);
+ }
+ }
}
/*!
Receptions that objects of this class are willing to accept.
*/
-const QSet<QUmlReception *> QUmlClass::ownedReception() const
+const QSet<QUmlReception *>
+QUmlClass::ownedReception() const
{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
+ // This is a read-write association end
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlClass::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
+ return _ownedReception;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClass::allOwnedElements() const
+void QUmlClass::addOwnedReception(QUmlReception *ownedReception)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlClass::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ if (!_ownedReception.contains(ownedReception)) {
+ _ownedReception.insert(ownedReception);
+ if (ownedReception->asQObject() && this->asQObject())
+ QObject::connect(ownedReception->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedReception(QObject *)));
+ ownedReception->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlClass::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ addFeature(ownedReception);
+ addOwnedMember(ownedReception);
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlClass::allOwningPackages() const
+void QUmlClass::removeOwnedReception(QUmlReception *ownedReception)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlClass::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (_ownedReception.contains(ownedReception)) {
+ _ownedReception.remove(ownedReception);
+ if (ownedReception->asQObject())
+ ownedReception->asQObject()->setParent(0);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlClass::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlClass::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlClass::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ // Adjust subsetted properties
+ removeFeature(ownedReception);
+ removeOwnedMember(ownedReception);
+ }
}
/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlClass::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlClass::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlClass::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ This gives the superclasses of a class.
*/
-bool QUmlClass::isTemplateParameter() const
+const QSet<QUmlClass *>
+QUmlClass::superClass() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write derived association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ qWarning("UmlClass::superClass(): to be implemented (this is a derived association end)");
-/*!
- 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.
- */
-bool QUmlClass::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ return QSet<QUmlClass *>();
}
-/*!
- 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.
- */
-bool QUmlClass::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlClass::addSuperClass(QUmlClass *superClass)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write derived association end
-// OPERATIONS [TemplateableElement]
+ qWarning("UmlClass::superClass(): to be implemented (this is a derived association end)");
+ Q_UNUSED(superClass);
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlClass::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlClass::allFeatures() const
+void QUmlClass::removeSuperClass(QUmlClass *superClass)
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write derived association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlClass::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ qWarning("UmlClass::superClass(): to be implemented (this is a derived association end)");
+ Q_UNUSED(superClass);
-/*!
- 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.
- */
-bool QUmlClass::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- 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.
- */
-bool QUmlClass::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlClass::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlClass::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlClass::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlClass::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
+// OPERATIONS
/*!
The inherit operation is overridden to exclude redefined properties.
*/
QSet<QUmlNamedElement *> QUmlClass::inherit(QSet<QUmlNamedElement *> inhs) const
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlClass::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlClass::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlClass::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlClass::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ qWarning("UmlClass::inherit(): to be implemented (operation)");
-void QUmlClass::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlClass::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlClass::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlClass::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlClass::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlClass::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlClass::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlClass::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
+ Q_UNUSED(inhs);
+ return QSet<QUmlNamedElement *> ();
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlClass::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlClass::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlClass::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlClass::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlClass::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlClass::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlClass::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlClass::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlClass::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlClass::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlClass::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlClass::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlClass::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlClass::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlClass::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlClass::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlClass::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlClass::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlClass::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlClass::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlClass::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlClass::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlClass::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlClass::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlClass::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlClass::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlClass::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlClass::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlClass::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlClass::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlClass::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlClass::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlClass::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlClass::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlClass::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlClass::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlClass::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlClass::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlClass::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlClass::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlClass::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlClass::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlClass::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlclass.h b/src/uml/qumlclass.h
index 9a6174fc..1dec16e4 100644
--- a/src/uml/qumlclass.h
+++ b/src/uml/qumlclass.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclass_p.h"
+#include <QtUml/QUmlEncapsulatedClassifier>
+#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,332 +53,58 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
class QUmlProperty;
class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlClass : public QObject, public UmlClass
+class Q_UML_EXPORT QUmlClass : public QUmlEncapsulatedClassifier, public QUmlBehavioredClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
public:
- Q_INVOKABLE explicit QUmlClass(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
+ explicit QUmlClass(bool createQObject = true);
+ virtual ~QUmlClass();
+
+ // Owned attributes
+ const QSet<QUmlExtension *> extension() const;
+ Q_DECL_HIDDEN void addExtension(QUmlExtension *extension);
+ Q_DECL_HIDDEN void removeExtension(QUmlExtension *extension);
+ bool isAbstract() const;
void setAbstract(bool isAbstract);
+ bool isActive() const;
void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ const QList<QUmlClassifier *> nestedClassifier() const;
+ void addNestedClassifier(QUmlClassifier *nestedClassifier);
+ void removeNestedClassifier(QUmlClassifier *nestedClassifier);
+ const QList<QUmlProperty *> ownedAttribute() const;
+ void addOwnedAttribute(QUmlProperty *ownedAttribute);
+ void removeOwnedAttribute(QUmlProperty *ownedAttribute);
+ const QList<QUmlOperation *> ownedOperation() const;
+ void addOwnedOperation(QUmlOperation *ownedOperation);
+ void removeOwnedOperation(QUmlOperation *ownedOperation);
+ const QSet<QUmlReception *> ownedReception() const;
+ void addOwnedReception(QUmlReception *ownedReception);
+ void removeOwnedReception(QUmlReception *ownedReception);
+ const QSet<QUmlClass *> superClass() const;
+ void addSuperClass(QUmlClass *superClass);
+ void removeSuperClass(QUmlClass *superClass);
+
+ // Operations
+ QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
+
+protected:
+ bool _isAbstract;
+ bool _isActive;
+ QList<QUmlClassifier *> _nestedClassifier;
+ QList<QUmlProperty *> _ownedAttribute;
+ QList<QUmlOperation *> _ownedOperation;
+ QSet<QUmlReception *> _ownedReception;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClass *)
-Q_DECLARE_METATYPE(QList<QUmlClass *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClass *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClass) *)
QT_END_HEADER
diff --git a/src/uml/qumlclassifier.cpp b/src/uml/qumlclassifier.cpp
index 9d8eb2fc..a46fcdb7 100644
--- a/src/uml/qumlclassifier.cpp
+++ b/src/uml/qumlclassifier.cpp
@@ -42,817 +42,711 @@
#include <QtUml/QUmlClassifierTemplateParameter>
#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
#include <QtUml/QUmlFeature>
#include <QtUml/QUmlGeneralization>
#include <QtUml/QUmlGeneralizationSet>
#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
#include <QtUml/QUmlUseCase>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlClassifier
+ \class QUmlClassifier
\inmodule QtUml
\brief A classifier is a classification of instances - it describes a set of instances that have features in common. A classifier can specify a generalization hierarchy by referencing its general classifiers.A classifier has 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 use case.Classifier is defined to be a kind of templateable element so that a classifier can be parameterized. It is also defined to be a kind of parameterable element so that a classifier can be a formal template parameter.A classifier has 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.
*/
-
-QUmlClassifier::QUmlClassifier(QObject *parent) :
- QObject(parent)
+QUmlClassifier::QUmlClassifier() :
+ _isAbstract(false),
+ _isFinalSpecialization(false),
+ _ownedTemplateSignature(0),
+ _representation(0),
+ _templateParameter(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClassifier::ownedComment() const
+QUmlClassifier::~QUmlClassifier()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
*/
-const QSet<QUmlElement *> QUmlClassifier::ownedElement() const
+const QSet<QUmlProperty *>
+QUmlClassifier::attribute() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-only derived union association end
+
+ return _attribute;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlClassifier::owner() const
+void QUmlClassifier::addAttribute(QUmlProperty *attribute)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (!_attribute.contains(attribute)) {
+ _attribute.insert(attribute);
+ if (attribute->asQObject() && this->asQObject())
+ QObject::connect(attribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeAttribute(QObject *)));
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlClassifier::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ // Adjust subsetted properties
+ addFeature(attribute);
+ }
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlClassifier::name() const
+void QUmlClassifier::removeAttribute(QUmlProperty *attribute)
{
- return _name;
-}
+ // This is a read-only derived union association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlClassifier::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (_attribute.contains(attribute)) {
+ _attribute.remove(attribute);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlClassifier::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // Adjust subsetted properties
+ removeFeature(attribute);
+ }
}
/*!
- A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.
+ References the collaboration uses owned by the classifier.
*/
-QString QUmlClassifier::qualifiedName() const
+const QSet<QUmlCollaborationUse *>
+QUmlClassifier::collaborationUse() const
{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
+ // This is a read-write association end
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlClassifier::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ return _collaborationUse;
}
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlClassifier::importedMember() const
+void QUmlClassifier::addCollaborationUse(QUmlCollaborationUse *collaborationUse)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlClassifier::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ if (!_collaborationUse.contains(collaborationUse)) {
+ _collaborationUse.insert(collaborationUse);
+ if (collaborationUse->asQObject() && this->asQObject())
+ QObject::connect(collaborationUse->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeCollaborationUse(QObject *)));
+ collaborationUse->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedElement(collaborationUse);
+ }
}
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlClassifier::ownedMember() const
+void QUmlClassifier::removeCollaborationUse(QUmlCollaborationUse *collaborationUse)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ // This is a read-write association end
+
+ if (_collaborationUse.contains(collaborationUse)) {
+ _collaborationUse.remove(collaborationUse);
+ if (collaborationUse->asQObject())
+ collaborationUse->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedElement(collaborationUse);
+ }
}
/*!
- Specifies a set of Constraints owned by this Namespace.
+ Specifies each feature defined in the classifier.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.
*/
-const QSet<QUmlConstraint *> QUmlClassifier::ownedRule() const
+const QSet<QUmlFeature *>
+QUmlClassifier::feature() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ // This is a read-only derived union association end
+
+ return _feature;
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlClassifier::packageImport() const
+void QUmlClassifier::addFeature(QUmlFeature *feature)
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [ParameterableElement]
+ if (!_feature.contains(feature)) {
+ _feature.insert(feature);
+ if (feature->asQObject() && this->asQObject())
+ QObject::connect(feature->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeFeature(QObject *)));
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlClassifier::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ // Adjust subsetted properties
+ addMember(feature);
+
+ // Adjust opposite properties
+ if (feature) {
+ feature->addFeaturingClassifier(this);
+ }
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlClassifier::visibility() const
+void QUmlClassifier::removeFeature(QUmlFeature *feature)
{
- return _visibility;
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [Type]
+ if (_feature.contains(feature)) {
+ _feature.remove(feature);
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlClassifier::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
+ // Adjust subsetted properties
+ removeMember(feature);
-// OWNED ATTRIBUTES [RedefinableElement]
+ // Adjust opposite properties
+ if (feature) {
+ feature->removeFeaturingClassifier(this);
+ }
+ }
+}
/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
+ Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
*/
-bool QUmlClassifier::isLeaf() const
+const QSet<QUmlClassifier *>
+QUmlClassifier::general() const
{
- return _isLeaf;
+ // This is a read-write derived association end
+
+ qWarning("UmlClassifier::general(): to be implemented (this is a derived association end)");
+
+ return QSet<QUmlClassifier *>();
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlClassifier::redefinedElement() const
+void QUmlClassifier::addGeneral(QUmlClassifier *general)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ // This is a read-write derived association end
+
+ qWarning("UmlClassifier::general(): to be implemented (this is a derived association end)");
+ Q_UNUSED(general);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlClassifier::redefinitionContext() const
+void QUmlClassifier::removeGeneral(QUmlClassifier *general)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ // This is a read-write derived association end
-// OWNED ATTRIBUTES [TemplateableElement]
+ qWarning("UmlClassifier::general(): to be implemented (this is a derived association end)");
+ Q_UNUSED(general);
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlClassifier::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OWNED ATTRIBUTES [Classifier]
-
/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
+ Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
*/
-const QSet<QUmlProperty *> QUmlClassifier::attribute() const
+const QSet<QUmlGeneralization *>
+QUmlClassifier::generalization() const
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
+ // This is a read-write association end
+
+ return _generalization;
}
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlClassifier::collaborationUse() const
+void QUmlClassifier::addGeneralization(QUmlGeneralization *generalization)
{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
+ // This is a read-write association end
+
+ if (!_generalization.contains(generalization)) {
+ _generalization.insert(generalization);
+ if (generalization->asQObject() && this->asQObject())
+ QObject::connect(generalization->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeGeneralization(QObject *)));
+ generalization->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedElement(generalization);
+
+ // Adjust opposite properties
+ if (generalization) {
+ generalization->setSpecific(this);
+ }
+ }
}
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlClassifier::feature() const
+void QUmlClassifier::removeGeneralization(QUmlGeneralization *generalization)
{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
+ // This is a read-write association end
+
+ if (_generalization.contains(generalization)) {
+ _generalization.remove(generalization);
+ if (generalization->asQObject())
+ generalization->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedElement(generalization);
+
+ // Adjust opposite properties
+ if (generalization) {
+ generalization->setSpecific(0);
+ }
+ }
}
/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
+ Specifies all elements inherited by this classifier from the general classifiers.
*/
-const QSet<QUmlClassifier *> QUmlClassifier::general() const
+const QSet<QUmlNamedElement *>
+QUmlClassifier::inheritedMember() const
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // This is a read-only derived association end
+
+ qWarning("UmlClassifier::inheritedMember(): to be implemented (this is a derived association end)");
+
+ return QSet<QUmlNamedElement *>();
}
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlClassifier::generalization() const
+void QUmlClassifier::addInheritedMember(QUmlNamedElement *inheritedMember)
{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
+ // This is a read-only derived association end
+
+ qWarning("UmlClassifier::inheritedMember(): to be implemented (this is a derived association end)");
+ Q_UNUSED(inheritedMember);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+
+ // Adjust subsetted properties
+ addMember(inheritedMember);
+ }
}
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlClassifier::inheritedMember() const
+void QUmlClassifier::removeInheritedMember(QUmlNamedElement *inheritedMember)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // This is a read-only derived association end
+
+ qWarning("UmlClassifier::inheritedMember(): to be implemented (this is a derived association end)");
+ Q_UNUSED(inheritedMember);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+
+ // Adjust subsetted properties
+ removeMember(inheritedMember);
+ }
}
/*!
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.
*/
-bool QUmlClassifier::isAbstract() const
+bool
+QUmlClassifier::isAbstract() const
{
+ // This is a read-write property
+
return _isAbstract;
}
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlClassifier::isFinalSpecialization() const
+void QUmlClassifier::setAbstract(bool isAbstract)
{
- return _isFinalSpecialization;
-}
+ // This is a read-write property
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlClassifier::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
+ if (_isAbstract != isAbstract) {
+ _isAbstract = isAbstract;
+ }
}
/*!
- References the use cases owned by this classifier.
+ If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
*/
-const QSet<QUmlUseCase *> QUmlClassifier::ownedUseCase() const
+bool
+QUmlClassifier::isFinalSpecialization() const
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
+ // This is a read-write property
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlClassifier::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
+ return _isFinalSpecialization;
}
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlClassifier::redefinedClassifier() const
+void QUmlClassifier::setFinalSpecialization(bool isFinalSpecialization)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
+ // This is a read-write property
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlClassifier::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
+ if (_isFinalSpecialization != isFinalSpecialization) {
+ _isFinalSpecialization = isFinalSpecialization;
+ }
}
/*!
- References the substitutions that are owned by this Classifier.
+ The optional template signature specifying the formal template parameters.
*/
-const QSet<QUmlSubstitution *> QUmlClassifier::substitution() const
+QUmlRedefinableTemplateSignature *
+QUmlClassifier::ownedTemplateSignature() const
{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
+ // This is a read-write association end
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlClassifier::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
+ return _ownedTemplateSignature;
}
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlClassifier::useCase() const
+void QUmlClassifier::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClassifier::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_ownedTemplateSignature != ownedTemplateSignature) {
+ _ownedTemplateSignature = ownedTemplateSignature;
+ if (ownedTemplateSignature->asQObject() && this->asQObject())
+ QObject::connect(ownedTemplateSignature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwnedTemplateSignature()));
+ ownedTemplateSignature->asQObject()->setParent(this->asQObject());
+ }
}
/*!
- 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.
+ References the use cases owned by this classifier.
*/
-bool QUmlClassifier::mustBeOwned() const
+const QSet<QUmlUseCase *>
+QUmlClassifier::ownedUseCase() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlClassifier::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _ownedUseCase;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlClassifier::allOwningPackages() const
+void QUmlClassifier::addOwnedUseCase(QUmlUseCase *ownedUseCase)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlClassifier::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (!_ownedUseCase.contains(ownedUseCase)) {
+ _ownedUseCase.insert(ownedUseCase);
+ if (ownedUseCase->asQObject() && this->asQObject())
+ QObject::connect(ownedUseCase->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedUseCase(QObject *)));
+ ownedUseCase->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedMember(ownedUseCase);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlClassifier::separator() const
+void QUmlClassifier::removeOwnedUseCase(QUmlUseCase *ownedUseCase)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
+ if (_ownedUseCase.contains(ownedUseCase)) {
+ _ownedUseCase.remove(ownedUseCase);
+ if (ownedUseCase->asQObject())
+ ownedUseCase->asQObject()->setParent(0);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlClassifier::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedMember(ownedUseCase);
+ }
}
/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
+ Designates the GeneralizationSet of which the associated Classifier is a power type.
*/
-QSet<QString> QUmlClassifier::getNamesOfMember(QUmlNamedElement *element) const
+const QSet<QUmlGeneralizationSet *>
+QUmlClassifier::powertypeExtent() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlClassifier::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _powertypeExtent;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlClassifier::membersAreDistinguishable() const
+void QUmlClassifier::addPowertypeExtent(QUmlGeneralizationSet *powertypeExtent)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_powertypeExtent.contains(powertypeExtent)) {
+ _powertypeExtent.insert(powertypeExtent);
+ if (powertypeExtent->asQObject() && this->asQObject())
+ QObject::connect(powertypeExtent->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePowertypeExtent(QObject *)));
-/*!
- 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.
- */
-bool QUmlClassifier::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (powertypeExtent) {
+ powertypeExtent->setPowertype(this);
+ }
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlClassifier::isTemplateParameter() const
+void QUmlClassifier::removePowertypeExtent(QUmlGeneralizationSet *powertypeExtent)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (_powertypeExtent.contains(powertypeExtent)) {
+ _powertypeExtent.remove(powertypeExtent);
-/*!
- 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.
- */
-bool QUmlClassifier::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust opposite properties
+ if (powertypeExtent) {
+ powertypeExtent->setPowertype(0);
+ }
+ }
}
/*!
- 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.
+ References the Classifiers that are redefined by this Classifier.
*/
-bool QUmlClassifier::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+const QSet<QUmlClassifier *>
+QUmlClassifier::redefinedClassifier() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [TemplateableElement]
+ return _redefinedClassifier;
+}
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlClassifier::parameterableElements() const
+void QUmlClassifier::addRedefinedClassifier(QUmlClassifier *redefinedClassifier)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (!_redefinedClassifier.contains(redefinedClassifier)) {
+ _redefinedClassifier.insert(redefinedClassifier);
+ if (redefinedClassifier->asQObject() && this->asQObject())
+ QObject::connect(redefinedClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedClassifier(QObject *)));
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlClassifier::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
+ // Adjust subsetted properties
+ addRedefinedElement(redefinedClassifier);
+ }
}
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlClassifier::allParents() const
+void QUmlClassifier::removeRedefinedClassifier(QUmlClassifier *redefinedClassifier)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlClassifier::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ if (_redefinedClassifier.contains(redefinedClassifier)) {
+ _redefinedClassifier.remove(redefinedClassifier);
-/*!
- 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.
- */
-bool QUmlClassifier::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ // Adjust subsetted properties
+ removeRedefinedElement(redefinedClassifier);
+ }
}
/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
+ References a collaboration use which indicates the collaboration that represents this classifier.
*/
-QSet<QUmlNamedElement *> QUmlClassifier::inherit(QSet<QUmlNamedElement *> inhs) const
+QUmlCollaborationUse *
+QUmlClassifier::representation() const
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlClassifier::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ return _representation;
}
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlClassifier::isTemplate() const
+void QUmlClassifier::setRepresentation(QUmlCollaborationUse *representation)
{
- return UmlClassifier::isTemplate();
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlClassifier::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ if (_representation != representation) {
+ // Adjust subsetted properties
+ removeCollaborationUse(_representation);
+
+ _representation = representation;
+ if (representation->asQObject() && this->asQObject())
+ QObject::connect(representation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRepresentation()));
+
+ // Adjust subsetted properties
+ if (representation) {
+ addCollaborationUse(representation);
+ }
+ }
}
/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ References the substitutions that are owned by this Classifier.
*/
-QSet<QUmlClassifier *> QUmlClassifier::parents() const
+const QSet<QUmlSubstitution *>
+QUmlClassifier::substitution() const
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlClassifier::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _substitution;
}
-void QUmlClassifier::removeOwnedComment(UmlComment *ownedComment)
+void QUmlClassifier::addSubstitution(QUmlSubstitution *substitution)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_substitution.contains(substitution)) {
+ _substitution.insert(substitution);
+ if (substitution->asQObject() && this->asQObject())
+ QObject::connect(substitution->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubstitution(QObject *)));
+ substitution->asQObject()->setParent(this->asQObject());
-void QUmlClassifier::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // Adjust subsetted properties
+ addOwnedElement(substitution);
+ addClientDependency(substitution);
-void QUmlClassifier::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ // Adjust opposite properties
+ if (substitution) {
+ substitution->setSubstitutingClassifier(this);
+ }
+ }
}
-void QUmlClassifier::setName(QString name)
+void QUmlClassifier::removeSubstitution(QUmlSubstitution *substitution)
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlClassifier::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlClassifier::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
+ if (_substitution.contains(substitution)) {
+ _substitution.remove(substitution);
+ if (substitution->asQObject())
+ substitution->asQObject()->setParent(0);
-void QUmlClassifier::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
+ // Adjust subsetted properties
+ removeOwnedElement(substitution);
+ removeClientDependency(substitution);
-void QUmlClassifier::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
+ // Adjust opposite properties
+ if (substitution) {
+ substitution->setSubstitutingClassifier(0);
+ }
+ }
}
-void QUmlClassifier::removeOwnedRule(UmlConstraint *ownedRule)
+/*!
+ The template parameter that exposes this element as a formal parameter.
+ */
+QUmlClassifierTemplateParameter *
+QUmlClassifier::templateParameter() const
{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // This is a read-write association end
-void QUmlClassifier::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
+ return _templateParameter;
}
-void QUmlClassifier::removePackageImport(UmlPackageImport *packageImport)
+void QUmlClassifier::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+ // This is a read-write association end
-void QUmlClassifier::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
+ if (_templateParameter != templateParameter) {
+ _templateParameter = templateParameter;
+ if (templateParameter->asQObject() && this->asQObject())
+ QObject::connect(templateParameter->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTemplateParameter()));
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-void QUmlClassifier::setVisibility(QtUml::VisibilityKind visibility)
+/*!
+ The set of use cases for which this Classifier is the subject.
+ */
+const QSet<QUmlUseCase *>
+QUmlClassifier::useCase() const
{
- UmlPackageableElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlClassifier::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
+ return _useCase;
}
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlClassifier::setLeaf(bool isLeaf)
+void QUmlClassifier::addUseCase(QUmlUseCase *useCase)
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+ if (!_useCase.contains(useCase)) {
+ _useCase.insert(useCase);
+ if (useCase->asQObject() && this->asQObject())
+ QObject::connect(useCase->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeUseCase(QObject *)));
-void QUmlClassifier::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
+ // Adjust opposite properties
+ if (useCase) {
+ useCase->addSubject(this);
+ }
+ }
}
-void QUmlClassifier::removeTemplateBinding(UmlTemplateBinding *templateBinding)
+void QUmlClassifier::removeUseCase(QUmlUseCase *useCase)
{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
+ if (_useCase.contains(useCase)) {
+ _useCase.remove(useCase);
-void QUmlClassifier::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
+ // Adjust opposite properties
+ if (useCase) {
+ useCase->removeSubject(this);
+ }
+ }
}
-void QUmlClassifier::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
+// OPERATIONS
-void QUmlClassifier::addGeneral(UmlClassifier *general)
+/*!
+ 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.
+ */
+QSet<QUmlFeature *> QUmlClassifier::allFeatures() const
{
- UmlClassifier::addGeneral(general);
-}
+ qWarning("UmlClassifier::allFeatures(): to be implemented (operation)");
-void QUmlClassifier::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
+ return QSet<QUmlFeature *> ();
}
-void QUmlClassifier::addGeneralization(UmlGeneralization *generalization)
+/*!
+ The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
+ */
+QSet<QUmlClassifier *> QUmlClassifier::allParents() const
{
- UmlClassifier::addGeneralization(generalization);
-}
+ qWarning("UmlClassifier::allParents(): to be implemented (operation)");
-void QUmlClassifier::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
+ return QSet<QUmlClassifier *> ();
}
-void QUmlClassifier::setAbstract(bool isAbstract)
+/*!
+ 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.
+ */
+bool QUmlClassifier::conformsTo(QUmlClassifier *other) const
{
- UmlClassifier::setAbstract(isAbstract);
-}
+ qWarning("UmlClassifier::conformsTo(): to be implemented (operation)");
-void QUmlClassifier::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
+ Q_UNUSED(other);
+ return bool ();
}
-void QUmlClassifier::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlClassifier::addOwnedUseCase(UmlUseCase *ownedUseCase)
+/*!
+ 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.
+ */
+bool QUmlClassifier::hasVisibilityOf(QUmlNamedElement *n) const
{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
+ qWarning("UmlClassifier::hasVisibilityOf(): to be implemented (operation)");
-void QUmlClassifier::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
+ Q_UNUSED(n);
+ return bool ();
}
-void QUmlClassifier::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
+/*!
+ The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
+ */
+QSet<QUmlNamedElement *> QUmlClassifier::inherit(QSet<QUmlNamedElement *> inhs) const
{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
+ qWarning("UmlClassifier::inherit(): to be implemented (operation)");
-void QUmlClassifier::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
+ Q_UNUSED(inhs);
+ return QSet<QUmlNamedElement *> ();
}
-void QUmlClassifier::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
+/*!
+ 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.
+ */
+QSet<QUmlNamedElement *> QUmlClassifier::inheritableMembers(QUmlClassifier *c) const
{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
+ qWarning("UmlClassifier::inheritableMembers(): to be implemented (operation)");
-void QUmlClassifier::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
+ Q_UNUSED(c);
+ return QSet<QUmlNamedElement *> ();
}
-void QUmlClassifier::setRepresentation(QUmlCollaborationUse *representation)
+/*!
+ The query isTemplate() returns whether this templateable element is actually a template.
+ */
+bool QUmlClassifier::isTemplate() const
{
- UmlClassifier::setRepresentation(representation);
-}
+ qWarning("UmlClassifier::isTemplate(): to be implemented (operation)");
-void QUmlClassifier::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
+ return bool ();
}
-void QUmlClassifier::removeSubstitution(UmlSubstitution *substitution)
+/*!
+ 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.
+ */
+bool QUmlClassifier::maySpecializeType(QUmlClassifier *c) const
{
- UmlClassifier::removeSubstitution(substitution);
-}
+ qWarning("UmlClassifier::maySpecializeType(): to be implemented (operation)");
-void QUmlClassifier::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
+ Q_UNUSED(c);
+ return bool ();
}
-void QUmlClassifier::addUseCase(UmlUseCase *useCase)
+/*!
+ The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ */
+QSet<QUmlClassifier *> QUmlClassifier::parents() const
{
- UmlClassifier::addUseCase(useCase);
-}
+ qWarning("UmlClassifier::parents(): to be implemented (operation)");
-void QUmlClassifier::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
+ return QSet<QUmlClassifier *> ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlclassifier.h b/src/uml/qumlclassifier.h
index 14ccad00..8377d92c 100644
--- a/src/uml/qumlclassifier.h
+++ b/src/uml/qumlclassifier.h
@@ -43,10 +43,11 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclassifier_p.h"
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlType>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlTemplateableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -56,253 +57,98 @@ QT_MODULE(QtUml)
class QUmlClassifierTemplateParameter;
class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlFeature;
class QUmlGeneralization;
class QUmlGeneralizationSet;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
class QUmlUseCase;
-class Q_UML_EXPORT QUmlClassifier : public QObject, public UmlClassifier
+class Q_UML_EXPORT QUmlClassifier : public QUmlNamespace, public QUmlType, public QUmlRedefinableElement, public QUmlTemplateableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
public:
- Q_DECL_HIDDEN explicit QUmlClassifier(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
+ virtual ~QUmlClassifier();
+
+ // Owned attributes
+ const QSet<QUmlProperty *> attribute() const;
+ Q_DECL_HIDDEN void addAttribute(QUmlProperty *attribute);
+ Q_DECL_HIDDEN void removeAttribute(QUmlProperty *attribute);
+ const QSet<QUmlCollaborationUse *> collaborationUse() const;
+ void addCollaborationUse(QUmlCollaborationUse *collaborationUse);
+ void removeCollaborationUse(QUmlCollaborationUse *collaborationUse);
+ const QSet<QUmlFeature *> feature() const;
+ Q_DECL_HIDDEN void addFeature(QUmlFeature *feature);
+ Q_DECL_HIDDEN void removeFeature(QUmlFeature *feature);
+ const QSet<QUmlClassifier *> general() const;
+ void addGeneral(QUmlClassifier *general);
+ void removeGeneral(QUmlClassifier *general);
+ const QSet<QUmlGeneralization *> generalization() const;
+ void addGeneralization(QUmlGeneralization *generalization);
+ void removeGeneralization(QUmlGeneralization *generalization);
+ const QSet<QUmlNamedElement *> inheritedMember() const;
+ Q_DECL_HIDDEN void addInheritedMember(QUmlNamedElement *inheritedMember);
+ Q_DECL_HIDDEN void removeInheritedMember(QUmlNamedElement *inheritedMember);
+ bool isAbstract() const;
void setAbstract(bool isAbstract);
+ bool isFinalSpecialization() const;
void setFinalSpecialization(bool isFinalSpecialization);
+ QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
+ const QSet<QUmlUseCase *> ownedUseCase() const;
+ void addOwnedUseCase(QUmlUseCase *ownedUseCase);
+ void removeOwnedUseCase(QUmlUseCase *ownedUseCase);
+ const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
+ void addPowertypeExtent(QUmlGeneralizationSet *powertypeExtent);
+ void removePowertypeExtent(QUmlGeneralizationSet *powertypeExtent);
+ const QSet<QUmlClassifier *> redefinedClassifier() const;
+ void addRedefinedClassifier(QUmlClassifier *redefinedClassifier);
+ void removeRedefinedClassifier(QUmlClassifier *redefinedClassifier);
+ QUmlCollaborationUse *representation() const;
void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
+ const QSet<QUmlSubstitution *> substitution() const;
+ void addSubstitution(QUmlSubstitution *substitution);
+ void removeSubstitution(QUmlSubstitution *substitution);
+ QUmlClassifierTemplateParameter *templateParameter() const;
void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ const QSet<QUmlUseCase *> useCase() const;
+ void addUseCase(QUmlUseCase *useCase);
+ void removeUseCase(QUmlUseCase *useCase);
+
+ // Operations
+ QSet<QUmlFeature *> allFeatures() const;
+ QSet<QUmlClassifier *> allParents() const;
+ bool conformsTo(QUmlClassifier *other) const;
+ bool hasVisibilityOf(QUmlNamedElement *n) const;
+ QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
+ QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
+ bool isTemplate() const;
+ bool maySpecializeType(QUmlClassifier *c) const;
+ QSet<QUmlClassifier *> parents() const;
+
+protected:
+ explicit QUmlClassifier();
+
+ QSet<QUmlProperty *> _attribute;
+ QSet<QUmlCollaborationUse *> _collaborationUse;
+ QSet<QUmlFeature *> _feature;
+ QSet<QUmlGeneralization *> _generalization;
+ bool _isAbstract;
+ bool _isFinalSpecialization;
+ QUmlRedefinableTemplateSignature *_ownedTemplateSignature;
+ QSet<QUmlUseCase *> _ownedUseCase;
+ QSet<QUmlGeneralizationSet *> _powertypeExtent;
+ QSet<QUmlClassifier *> _redefinedClassifier;
+ QUmlCollaborationUse *_representation;
+ QSet<QUmlSubstitution *> _substitution;
+ QUmlClassifierTemplateParameter *_templateParameter;
+ QSet<QUmlUseCase *> _useCase;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClassifier *)
-Q_DECLARE_METATYPE(QList<QUmlClassifier *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClassifier *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClassifier) *)
QT_END_HEADER
diff --git a/src/uml/qumlclassifiertemplateparameter.cpp b/src/uml/qumlclassifiertemplateparameter.cpp
index 0c1d21f2..9b8c1004 100644
--- a/src/uml/qumlclassifiertemplateparameter.cpp
+++ b/src/uml/qumlclassifiertemplateparameter.cpp
@@ -40,189 +40,106 @@
****************************************************************************/
#include "qumlclassifiertemplateparameter.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlTemplateSignature>
+#include "private/qumlclassifiertemplateparameterobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlClassifier>
/*!
- \class UmlClassifierTemplateParameter
+ \class QUmlClassifierTemplateParameter
\inmodule QtUml
\brief A classifier template parameter exposes a classifier as a formal template parameter.
*/
-
-QUmlClassifierTemplateParameter::QUmlClassifierTemplateParameter(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClassifierTemplateParameter::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlClassifierTemplateParameter::ownedElement() const
+QUmlClassifierTemplateParameter::QUmlClassifierTemplateParameter(bool createQObject) :
+ QUmlTemplateParameter(false),
+ _allowSubstitutable(true),
+ _parameteredElement(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlClassifierTemplateParameterObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlClassifierTemplateParameter::owner() const
+QUmlClassifierTemplateParameter::~QUmlClassifierTemplateParameter()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [TemplateParameter]
-
-/*!
- The element that is the default for this formal template parameter.
- */
-QUmlParameterableElement *QUmlClassifierTemplateParameter::default_() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_default_);
-}
-
-/*!
- The element that is owned by this template parameter for the purpose of providing a default.
- */
-QUmlParameterableElement *QUmlClassifierTemplateParameter::ownedDefault() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedDefault);
-}
-
-/*!
- The element that is owned by this template parameter.
- */
-QUmlParameterableElement *QUmlClassifierTemplateParameter::ownedParameteredElement() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedParameteredElement);
-}
-
-/*!
- The template signature that owns this template parameter.
- */
-QUmlTemplateSignature *QUmlClassifierTemplateParameter::signature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_signature);
-}
-
-// OWNED ATTRIBUTES [ClassifierTemplateParameter]
+// OWNED ATTRIBUTES
/*!
Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.
*/
-bool QUmlClassifierTemplateParameter::allowSubstitutable() const
+bool
+QUmlClassifierTemplateParameter::allowSubstitutable() const
{
- return _allowSubstitutable;
-}
+ // This is a read-write property
-/*!
- The classifiers that constrain 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.
- */
-const QSet<QUmlClassifier *> QUmlClassifierTemplateParameter::constrainingClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_constrainingClassifier));
+ return _allowSubstitutable;
}
-/*!
- The parameterable classifier for this template parameter.
- */
-QUmlClassifier *QUmlClassifierTemplateParameter::parameteredElement() const
+void QUmlClassifierTemplateParameter::setAllowSubstitutable(bool allowSubstitutable)
{
- return reinterpret_cast<QUmlClassifier *>(_parameteredElement);
-}
+ // This is a read-write property
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClassifierTemplateParameter::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_allowSubstitutable != allowSubstitutable) {
+ _allowSubstitutable = allowSubstitutable;
+ }
}
/*!
- 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.
+ The classifiers that constrain 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.
*/
-bool QUmlClassifierTemplateParameter::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlClassifierTemplateParameter::addOwnedComment(UmlComment *ownedComment)
+const QSet<QUmlClassifier *>
+QUmlClassifierTemplateParameter::constrainingClassifier() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlClassifierTemplateParameter::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _constrainingClassifier;
}
-// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
-
-void QUmlClassifierTemplateParameter::setDefault(QUmlParameterableElement *default_)
+void QUmlClassifierTemplateParameter::addConstrainingClassifier(QUmlClassifier *constrainingClassifier)
{
- UmlTemplateParameter::setDefault(default_);
-}
+ // This is a read-write association end
-void QUmlClassifierTemplateParameter::setOwnedDefault(QUmlParameterableElement *ownedDefault)
-{
- UmlTemplateParameter::setOwnedDefault(ownedDefault);
+ if (!_constrainingClassifier.contains(constrainingClassifier)) {
+ _constrainingClassifier.insert(constrainingClassifier);
+ if (constrainingClassifier->asQObject() && this->asQObject())
+ QObject::connect(constrainingClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConstrainingClassifier(QObject *)));
+ }
}
-void QUmlClassifierTemplateParameter::setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement)
+void QUmlClassifierTemplateParameter::removeConstrainingClassifier(QUmlClassifier *constrainingClassifier)
{
- UmlTemplateParameter::setOwnedParameteredElement(ownedParameteredElement);
-}
+ // This is a read-write association end
-void QUmlClassifierTemplateParameter::setSignature(QUmlTemplateSignature *signature)
-{
- UmlTemplateParameter::setSignature(signature);
+ if (_constrainingClassifier.contains(constrainingClassifier)) {
+ _constrainingClassifier.remove(constrainingClassifier);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ClassifierTemplateParameter]
-
-void QUmlClassifierTemplateParameter::setAllowSubstitutable(bool allowSubstitutable)
-{
- UmlClassifierTemplateParameter::setAllowSubstitutable(allowSubstitutable);
-}
-
-void QUmlClassifierTemplateParameter::addConstrainingClassifier(UmlClassifier *constrainingClassifier)
+/*!
+ The parameterable classifier for this template parameter.
+ */
+QUmlClassifier *
+QUmlClassifierTemplateParameter::parameteredElement() const
{
- UmlClassifierTemplateParameter::addConstrainingClassifier(constrainingClassifier);
-}
+ // This is a read-write association end
-void QUmlClassifierTemplateParameter::removeConstrainingClassifier(UmlClassifier *constrainingClassifier)
-{
- UmlClassifierTemplateParameter::removeConstrainingClassifier(constrainingClassifier);
+ return _parameteredElement;
}
void QUmlClassifierTemplateParameter::setParameteredElement(QUmlClassifier *parameteredElement)
{
- UmlClassifierTemplateParameter::setParameteredElement(parameteredElement);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_parameteredElement != parameteredElement) {
+ _parameteredElement = parameteredElement;
+ if (parameteredElement->asQObject() && this->asQObject())
+ QObject::connect(parameteredElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setParameteredElement()));
+ }
+}
diff --git a/src/uml/qumlclassifiertemplateparameter.h b/src/uml/qumlclassifiertemplateparameter.h
index 5d2cff61..428b7377 100644
--- a/src/uml/qumlclassifiertemplateparameter.h
+++ b/src/uml/qumlclassifiertemplateparameter.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclassifiertemplateparameter_p.h"
+#include <QtUml/QUmlTemplateParameter>
+
QT_BEGIN_HEADER
@@ -53,78 +53,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlElement;
-class QUmlParameterableElement;
-class QUmlTemplateSignature;
-class Q_UML_EXPORT QUmlClassifierTemplateParameter : public QObject, public UmlClassifierTemplateParameter
+class Q_UML_EXPORT QUmlClassifierTemplateParameter : public QUmlTemplateParameter
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateParameter]
- Q_PROPERTY(QUmlParameterableElement * default_ READ default_)
- Q_PROPERTY(QUmlParameterableElement * ownedDefault READ ownedDefault)
- Q_PROPERTY(QUmlParameterableElement * ownedParameteredElement READ ownedParameteredElement)
- Q_PROPERTY(QUmlTemplateSignature * signature READ signature)
-
- // Properties [ClassifierTemplateParameter]
- Q_PROPERTY(bool allowSubstitutable READ allowSubstitutable)
- Q_PROPERTY(QSet<QUmlClassifier *> constrainingClassifier READ constrainingClassifier)
- Q_PROPERTY(QUmlClassifier * parameteredElement READ parameteredElement)
-
public:
- Q_INVOKABLE explicit QUmlClassifierTemplateParameter(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [TemplateParameter]
- Q_INVOKABLE QUmlParameterableElement *default_() const;
- Q_INVOKABLE QUmlParameterableElement *ownedDefault() const;
- Q_INVOKABLE QUmlParameterableElement *ownedParameteredElement() const;
- Q_INVOKABLE QUmlTemplateSignature *signature() const;
+ explicit QUmlClassifierTemplateParameter(bool createQObject = true);
+ virtual ~QUmlClassifierTemplateParameter();
- // Owned attributes [ClassifierTemplateParameter]
- Q_INVOKABLE bool allowSubstitutable() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> constrainingClassifier() const;
- Q_INVOKABLE QUmlClassifier *parameteredElement() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateParameter]
- void setDefault(QUmlParameterableElement *default_);
- void setOwnedDefault(QUmlParameterableElement *ownedDefault);
- void setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement);
- void setSignature(QUmlTemplateSignature *signature);
-
- // Slots for owned attributes [ClassifierTemplateParameter]
+ // Owned attributes
+ bool allowSubstitutable() const;
void setAllowSubstitutable(bool allowSubstitutable);
- void addConstrainingClassifier(UmlClassifier *constrainingClassifier);
- void removeConstrainingClassifier(UmlClassifier *constrainingClassifier);
+ const QSet<QUmlClassifier *> constrainingClassifier() const;
+ void addConstrainingClassifier(QUmlClassifier *constrainingClassifier);
+ void removeConstrainingClassifier(QUmlClassifier *constrainingClassifier);
+ QUmlClassifier *parameteredElement() const;
void setParameteredElement(QUmlClassifier *parameteredElement);
+
+protected:
+ bool _allowSubstitutable;
+ QSet<QUmlClassifier *> _constrainingClassifier;
+ QUmlClassifier *_parameteredElement;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClassifierTemplateParameter *)
-Q_DECLARE_METATYPE(QList<QUmlClassifierTemplateParameter *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClassifierTemplateParameter *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClassifierTemplateParameter) *)
QT_END_HEADER
diff --git a/src/uml/qumlclause.cpp b/src/uml/qumlclause.cpp
index 1710e582..bea90b3f 100644
--- a/src/uml/qumlclause.cpp
+++ b/src/uml/qumlclause.cpp
@@ -40,191 +40,209 @@
****************************************************************************/
#include "qumlclause.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumlclauseobject_p.h"
+
#include <QtUml/QUmlExecutableNode>
#include <QtUml/QUmlOutputPin>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlClause
+ \class QUmlClause
\inmodule QtUml
\brief 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.
*/
-
-QUmlClause::QUmlClause(QObject *parent) :
- QObject(parent)
+QUmlClause::QUmlClause(bool createQObject) :
+ _decider(0)
{
+ if (createQObject)
+ _qObject = new QUmlClauseObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClause::ownedComment() const
+QUmlClause::~QUmlClause()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ 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.
*/
-const QSet<QUmlElement *> QUmlClause::ownedElement() const
+const QSet<QUmlExecutableNode *>
+QUmlClause::body() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _body;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlClause::owner() const
+void QUmlClause::addBody(QUmlExecutableNode *body)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Clause]
+ if (!_body.contains(body)) {
+ _body.insert(body);
+ if (body->asQObject() && this->asQObject())
+ QObject::connect(body->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeBody(QObject *)));
+ }
+}
-/*!
- 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.
- */
-const QSet<QUmlExecutableNode *> QUmlClause::body() const
+void QUmlClause::removeBody(QUmlExecutableNode *body)
{
- return *(reinterpret_cast<const QSet<QUmlExecutableNode *> *>(&_body));
+ // This is a read-write association end
+
+ if (_body.contains(body)) {
+ _body.remove(body);
+ }
}
/*!
A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node after execution of the clause body.
*/
-const QList<QUmlOutputPin *> QUmlClause::bodyOutput() const
+const QList<QUmlOutputPin *>
+QUmlClause::bodyOutput() const
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_bodyOutput));
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QUmlOutputPin *QUmlClause::decider() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_decider);
+ return _bodyOutput;
}
-/*!
- A set of clauses whose tests must all evaluate false before the current clause can be tested.
- */
-const QSet<QUmlClause *> QUmlClause::predecessorClause() const
+void QUmlClause::addBodyOutput(QUmlOutputPin *bodyOutput)
{
- return *(reinterpret_cast<const QSet<QUmlClause *> *>(&_predecessorClause));
+ // This is a read-write association end
+
+ if (!_bodyOutput.contains(bodyOutput)) {
+ _bodyOutput.append(bodyOutput);
+ if (bodyOutput->asQObject() && this->asQObject())
+ QObject::connect(bodyOutput->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeBodyOutput(QObject *)));
+ }
}
-/*!
- A set of clauses which may not be tested unless the current clause tests false.
- */
-const QSet<QUmlClause *> QUmlClause::successorClause() const
+void QUmlClause::removeBodyOutput(QUmlOutputPin *bodyOutput)
{
- return *(reinterpret_cast<const QSet<QUmlClause *> *>(&_successorClause));
+ // This is a read-write association end
+
+ if (_bodyOutput.contains(bodyOutput)) {
+ _bodyOutput.removeAll(bodyOutput);
+ }
}
/*!
- A nested activity fragment with a designated output pin that specifies the result of the test.
+ 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.
*/
-const QSet<QUmlExecutableNode *> QUmlClause::test() const
+QUmlOutputPin *
+QUmlClause::decider() const
{
- return *(reinterpret_cast<const QSet<QUmlExecutableNode *> *>(&_test));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ return _decider;
+}
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClause::allOwnedElements() const
+void QUmlClause::setDecider(QUmlOutputPin *decider)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write association end
+
+ if (_decider != decider) {
+ _decider = decider;
+ if (decider->asQObject() && this->asQObject())
+ QObject::connect(decider->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDecider()));
+ }
}
/*!
- 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.
+ A set of clauses whose tests must all evaluate false before the current clause can be tested.
*/
-bool QUmlClause::mustBeOwned() const
+const QSet<QUmlClause *>
+QUmlClause::predecessorClause() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlClause::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _predecessorClause;
}
-void QUmlClause::removeOwnedComment(UmlComment *ownedComment)
+void QUmlClause::addPredecessorClause(QUmlClause *predecessorClause)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Clause]
+ // This is a read-write association end
-void QUmlClause::addBody(UmlExecutableNode *body)
-{
- UmlClause::addBody(body);
+ if (!_predecessorClause.contains(predecessorClause)) {
+ _predecessorClause.insert(predecessorClause);
+ if (predecessorClause->asQObject() && this->asQObject())
+ QObject::connect(predecessorClause->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePredecessorClause(QObject *)));
+ }
}
-void QUmlClause::removeBody(UmlExecutableNode *body)
+void QUmlClause::removePredecessorClause(QUmlClause *predecessorClause)
{
- UmlClause::removeBody(body);
-}
+ // This is a read-write association end
-void QUmlClause::addBodyOutput(UmlOutputPin *bodyOutput)
-{
- UmlClause::addBodyOutput(bodyOutput);
+ if (_predecessorClause.contains(predecessorClause)) {
+ _predecessorClause.remove(predecessorClause);
+ }
}
-void QUmlClause::removeBodyOutput(UmlOutputPin *bodyOutput)
+/*!
+ A set of clauses which may not be tested unless the current clause tests false.
+ */
+const QSet<QUmlClause *>
+QUmlClause::successorClause() const
{
- UmlClause::removeBodyOutput(bodyOutput);
-}
+ // This is a read-write association end
-void QUmlClause::setDecider(QUmlOutputPin *decider)
-{
- UmlClause::setDecider(decider);
+ return _successorClause;
}
-void QUmlClause::addPredecessorClause(UmlClause *predecessorClause)
+void QUmlClause::addSuccessorClause(QUmlClause *successorClause)
{
- UmlClause::addPredecessorClause(predecessorClause);
-}
+ // This is a read-write association end
-void QUmlClause::removePredecessorClause(UmlClause *predecessorClause)
-{
- UmlClause::removePredecessorClause(predecessorClause);
+ if (!_successorClause.contains(successorClause)) {
+ _successorClause.insert(successorClause);
+ if (successorClause->asQObject() && this->asQObject())
+ QObject::connect(successorClause->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSuccessorClause(QObject *)));
+ }
}
-void QUmlClause::addSuccessorClause(UmlClause *successorClause)
+void QUmlClause::removeSuccessorClause(QUmlClause *successorClause)
{
- UmlClause::addSuccessorClause(successorClause);
+ // This is a read-write association end
+
+ if (_successorClause.contains(successorClause)) {
+ _successorClause.remove(successorClause);
+ }
}
-void QUmlClause::removeSuccessorClause(UmlClause *successorClause)
+/*!
+ A nested activity fragment with a designated output pin that specifies the result of the test.
+ */
+const QSet<QUmlExecutableNode *>
+QUmlClause::test() const
{
- UmlClause::removeSuccessorClause(successorClause);
+ // This is a read-write association end
+
+ return _test;
}
-void QUmlClause::addTest(UmlExecutableNode *test)
+void QUmlClause::addTest(QUmlExecutableNode *test)
{
- UmlClause::addTest(test);
+ // This is a read-write association end
+
+ if (!_test.contains(test)) {
+ _test.insert(test);
+ if (test->asQObject() && this->asQObject())
+ QObject::connect(test->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTest(QObject *)));
+ }
}
-void QUmlClause::removeTest(UmlExecutableNode *test)
+void QUmlClause::removeTest(QUmlExecutableNode *test)
{
- UmlClause::removeTest(test);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_test.contains(test)) {
+ _test.remove(test);
+ }
+}
diff --git a/src/uml/qumlclause.h b/src/uml/qumlclause.h
index a9bc04b2..0b88247c 100644
--- a/src/uml/qumlclause.h
+++ b/src/uml/qumlclause.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclause_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,73 +52,46 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlExecutableNode;
class QUmlOutputPin;
-class Q_UML_EXPORT QUmlClause : public QObject, public UmlClause
+class Q_UML_EXPORT QUmlClause : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Clause]
- Q_PROPERTY(QSet<QUmlExecutableNode *> body READ body)
- Q_PROPERTY(QList<QUmlOutputPin *> bodyOutput READ bodyOutput)
- Q_PROPERTY(QUmlOutputPin * decider READ decider)
- Q_PROPERTY(QSet<QUmlClause *> predecessorClause READ predecessorClause)
- Q_PROPERTY(QSet<QUmlClause *> successorClause READ successorClause)
- Q_PROPERTY(QSet<QUmlExecutableNode *> test READ test)
-
public:
- Q_INVOKABLE explicit QUmlClause(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Clause]
- Q_INVOKABLE const QSet<QUmlExecutableNode *> body() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> bodyOutput() const;
- Q_INVOKABLE QUmlOutputPin *decider() const;
- Q_INVOKABLE const QSet<QUmlClause *> predecessorClause() const;
- Q_INVOKABLE const QSet<QUmlClause *> successorClause() const;
- Q_INVOKABLE const QSet<QUmlExecutableNode *> test() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Clause]
- void addBody(UmlExecutableNode *body);
- void removeBody(UmlExecutableNode *body);
- void addBodyOutput(UmlOutputPin *bodyOutput);
- void removeBodyOutput(UmlOutputPin *bodyOutput);
+ explicit QUmlClause(bool createQObject = true);
+ virtual ~QUmlClause();
+
+ // Owned attributes
+ const QSet<QUmlExecutableNode *> body() const;
+ void addBody(QUmlExecutableNode *body);
+ void removeBody(QUmlExecutableNode *body);
+ const QList<QUmlOutputPin *> bodyOutput() const;
+ void addBodyOutput(QUmlOutputPin *bodyOutput);
+ void removeBodyOutput(QUmlOutputPin *bodyOutput);
+ QUmlOutputPin *decider() const;
void setDecider(QUmlOutputPin *decider);
- void addPredecessorClause(UmlClause *predecessorClause);
- void removePredecessorClause(UmlClause *predecessorClause);
- void addSuccessorClause(UmlClause *successorClause);
- void removeSuccessorClause(UmlClause *successorClause);
- void addTest(UmlExecutableNode *test);
- void removeTest(UmlExecutableNode *test);
+ const QSet<QUmlClause *> predecessorClause() const;
+ void addPredecessorClause(QUmlClause *predecessorClause);
+ void removePredecessorClause(QUmlClause *predecessorClause);
+ const QSet<QUmlClause *> successorClause() const;
+ void addSuccessorClause(QUmlClause *successorClause);
+ void removeSuccessorClause(QUmlClause *successorClause);
+ const QSet<QUmlExecutableNode *> test() const;
+ void addTest(QUmlExecutableNode *test);
+ void removeTest(QUmlExecutableNode *test);
+
+protected:
+ QSet<QUmlExecutableNode *> _body;
+ QList<QUmlOutputPin *> _bodyOutput;
+ QUmlOutputPin *_decider;
+ QSet<QUmlClause *> _predecessorClause;
+ QSet<QUmlClause *> _successorClause;
+ QSet<QUmlExecutableNode *> _test;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClause *)
-Q_DECLARE_METATYPE(QList<QUmlClause *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClause *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClause) *)
QT_END_HEADER
diff --git a/src/uml/qumlclearassociationaction.cpp b/src/uml/qumlclearassociationaction.cpp
index 4ff4ffed..c87b3123 100644
--- a/src/uml/qumlclearassociationaction.cpp
+++ b/src/uml/qumlclearassociationaction.cpp
@@ -40,526 +40,86 @@
****************************************************************************/
#include "qumlclearassociationaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlclearassociationactionobject_p.h"
+
#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlClearAssociationAction
+ \class QUmlClearAssociationAction
\inmodule QtUml
\brief A clear association action is an action that destroys all links of an association in which a particular object participates.
*/
-
-QUmlClearAssociationAction::QUmlClearAssociationAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClearAssociationAction::ownedComment() const
+QUmlClearAssociationAction::QUmlClearAssociationAction(bool createQObject) :
+ _association(0),
+ _object(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlClearAssociationActionObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlClearAssociationAction::ownedElement() const
+QUmlClearAssociationAction::~QUmlClearAssociationAction()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlClearAssociationAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlClearAssociationAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlClearAssociationAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlClearAssociationAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlClearAssociationAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlClearAssociationAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlClearAssociationAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlClearAssociationAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlClearAssociationAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlClearAssociationAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlClearAssociationAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlClearAssociationAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlClearAssociationAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlClearAssociationAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlClearAssociationAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlClearAssociationAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlClearAssociationAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlClearAssociationAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlClearAssociationAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlClearAssociationAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlClearAssociationAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlClearAssociationAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlClearAssociationAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlClearAssociationAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlClearAssociationAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ClearAssociationAction]
+// OWNED ATTRIBUTES
/*!
Association to be cleared.
*/
-QUmlAssociation *QUmlClearAssociationAction::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(_association);
-}
-
-/*!
- Gives the input pin from which is obtained the object whose participation in the association is to be cleared.
- */
-QUmlInputPin *QUmlClearAssociationAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClearAssociationAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlClearAssociationAction::mustBeOwned() const
+QUmlAssociation *
+QUmlClearAssociationAction::association() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlClearAssociationAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlClearAssociationAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlClearAssociationAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _association;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlClearAssociationAction::separator() const
+void QUmlClearAssociationAction::setAssociation(QUmlAssociation *association)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlClearAssociationAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_association != association) {
+ _association = association;
+ if (association->asQObject() && this->asQObject())
+ QObject::connect(association->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAssociation()));
+ }
}
/*!
- 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.
+ Gives the input pin from which is obtained the object whose participation in the association is to be cleared.
*/
-bool QUmlClearAssociationAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlClearAssociationAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlClearAssociationAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlClearAssociationAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlClearAssociationAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlClearAssociationAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlClearAssociationAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlClearAssociationAction::setVisibility(QtUml::VisibilityKind visibility)
+QUmlInputPin *
+QUmlClearAssociationAction::object() const
{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlClearAssociationAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlClearAssociationAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlClearAssociationAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlClearAssociationAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlClearAssociationAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlClearAssociationAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlClearAssociationAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlClearAssociationAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlClearAssociationAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlClearAssociationAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlClearAssociationAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlClearAssociationAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlClearAssociationAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlClearAssociationAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlClearAssociationAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlClearAssociationAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlClearAssociationAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlClearAssociationAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlClearAssociationAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
+ return _object;
}
-void QUmlClearAssociationAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlClearAssociationAction::setObject(QUmlInputPin *object)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ClearAssociationAction]
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-void QUmlClearAssociationAction::setAssociation(QUmlAssociation *association)
-{
- UmlClearAssociationAction::setAssociation(association);
-}
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-void QUmlClearAssociationAction::setObject(QUmlInputPin *object)
-{
- UmlClearAssociationAction::setObject(object);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlclearassociationaction.h b/src/uml/qumlclearassociationaction.h
index 44927d85..d25ed4d5 100644
--- a/src/uml/qumlclearassociationaction.h
+++ b/src/uml/qumlclearassociationaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclearassociationaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,186 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlClearAssociationAction : public QObject, public UmlClearAssociationAction
+class Q_UML_EXPORT QUmlClearAssociationAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ClearAssociationAction]
- Q_PROPERTY(QUmlAssociation * association READ association)
- Q_PROPERTY(QUmlInputPin * object READ object)
-
public:
- Q_INVOKABLE explicit QUmlClearAssociationAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlClearAssociationAction(bool createQObject = true);
+ virtual ~QUmlClearAssociationAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ClearAssociationAction]
- Q_INVOKABLE QUmlAssociation *association() const;
- Q_INVOKABLE QUmlInputPin *object() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ClearAssociationAction]
+ // Owned attributes
+ QUmlAssociation *association() const;
void setAssociation(QUmlAssociation *association);
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+
+protected:
+ QUmlAssociation *_association;
+ QUmlInputPin *_object;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClearAssociationAction *)
-Q_DECLARE_METATYPE(QList<QUmlClearAssociationAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClearAssociationAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClearAssociationAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlclearstructuralfeatureaction.cpp b/src/uml/qumlclearstructuralfeatureaction.cpp
index 37527801..8201fe6e 100644
--- a/src/uml/qumlclearstructuralfeatureaction.cpp
+++ b/src/uml/qumlclearstructuralfeatureaction.cpp
@@ -40,543 +40,62 @@
****************************************************************************/
#include "qumlclearstructuralfeatureaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuralFeature>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlclearstructuralfeatureactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlClearStructuralFeatureAction
+ \class QUmlClearStructuralFeatureAction
\inmodule QtUml
\brief A clear structural feature action is a structural feature action that removes all values of a structural feature.
*/
-
-QUmlClearStructuralFeatureAction::QUmlClearStructuralFeatureAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClearStructuralFeatureAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlClearStructuralFeatureAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlClearStructuralFeatureAction::owner() const
+QUmlClearStructuralFeatureAction::QUmlClearStructuralFeatureAction(bool createQObject) :
+ _result(0)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlClearStructuralFeatureActionObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlClearStructuralFeatureAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlClearStructuralFeatureAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlClearStructuralFeatureAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlClearStructuralFeatureAction::namespace_() const
+QUmlClearStructuralFeatureAction::~QUmlClearStructuralFeatureAction()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlClearStructuralFeatureAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlClearStructuralFeatureAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlClearStructuralFeatureAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlClearStructuralFeatureAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlClearStructuralFeatureAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlClearStructuralFeatureAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlClearStructuralFeatureAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlClearStructuralFeatureAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlClearStructuralFeatureAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlClearStructuralFeatureAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlClearStructuralFeatureAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlClearStructuralFeatureAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlClearStructuralFeatureAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlClearStructuralFeatureAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlClearStructuralFeatureAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlClearStructuralFeatureAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlClearStructuralFeatureAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlClearStructuralFeatureAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlClearStructuralFeatureAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlClearStructuralFeatureAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [StructuralFeatureAction]
-
-/*!
- Gives the input pin from which the object whose structural feature is to be read or written is obtained.
- */
-QUmlInputPin *QUmlClearStructuralFeatureAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-/*!
- Structural feature to be read.
- */
-QUmlStructuralFeature *QUmlClearStructuralFeatureAction::structuralFeature() const
-{
- return reinterpret_cast<QUmlStructuralFeature *>(_structuralFeature);
-}
-
-// OWNED ATTRIBUTES [ClearStructuralFeatureAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the result is put.
*/
-QUmlOutputPin *QUmlClearStructuralFeatureAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClearStructuralFeatureAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlClearStructuralFeatureAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlClearStructuralFeatureAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlClearStructuralFeatureAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlClearStructuralFeatureAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlClearStructuralFeatureAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlClearStructuralFeatureAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlClearStructuralFeatureAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlClearStructuralFeatureAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlClearStructuralFeatureAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlClearStructuralFeatureAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlClearStructuralFeatureAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlClearStructuralFeatureAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlClearStructuralFeatureAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlClearStructuralFeatureAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlClearStructuralFeatureAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlClearStructuralFeatureAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlClearStructuralFeatureAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlClearStructuralFeatureAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlClearStructuralFeatureAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlClearStructuralFeatureAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlClearStructuralFeatureAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlClearStructuralFeatureAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlClearStructuralFeatureAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlClearStructuralFeatureAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlClearStructuralFeatureAction::removeOutgoing(UmlActivityEdge *outgoing)
+QUmlOutputPin *
+QUmlClearStructuralFeatureAction::result() const
{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlClearStructuralFeatureAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlClearStructuralFeatureAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlClearStructuralFeatureAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlClearStructuralFeatureAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlClearStructuralFeatureAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
+ // This is a read-write association end
-void QUmlClearStructuralFeatureAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlClearStructuralFeatureAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlClearStructuralFeatureAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlClearStructuralFeatureAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ return _result;
}
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
-
-void QUmlClearStructuralFeatureAction::setObject(QUmlInputPin *object)
+void QUmlClearStructuralFeatureAction::setResult(QUmlOutputPin *result)
{
- UmlStructuralFeatureAction::setObject(object);
-}
+ // This is a read-write association end
-void QUmlClearStructuralFeatureAction::setStructuralFeature(QUmlStructuralFeature *structuralFeature)
-{
- UmlStructuralFeatureAction::setStructuralFeature(structuralFeature);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ClearStructuralFeatureAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlClearStructuralFeatureAction::setResult(QUmlOutputPin *result)
-{
- UmlClearStructuralFeatureAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlclearstructuralfeatureaction.h b/src/uml/qumlclearstructuralfeatureaction.h
index e06ba05b..a30a66b1 100644
--- a/src/uml/qumlclearstructuralfeatureaction.h
+++ b/src/uml/qumlclearstructuralfeatureaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclearstructuralfeatureaction_p.h"
+#include <QtUml/QUmlStructuralFeatureAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,195 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuralFeature;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlClearStructuralFeatureAction : public QObject, public UmlClearStructuralFeatureAction
+class Q_UML_EXPORT QUmlClearStructuralFeatureAction : public QUmlStructuralFeatureAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StructuralFeatureAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlStructuralFeature * structuralFeature READ structuralFeature)
-
- // Properties [ClearStructuralFeatureAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlClearStructuralFeatureAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlClearStructuralFeatureAction(bool createQObject = true);
+ virtual ~QUmlClearStructuralFeatureAction();
- // Owned attributes [StructuralFeatureAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlStructuralFeature *structuralFeature() const;
-
- // Owned attributes [ClearStructuralFeatureAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StructuralFeatureAction]
- void setObject(QUmlInputPin *object);
- void setStructuralFeature(QUmlStructuralFeature *structuralFeature);
-
- // Slots for owned attributes [ClearStructuralFeatureAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClearStructuralFeatureAction *)
-Q_DECLARE_METATYPE(QList<QUmlClearStructuralFeatureAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClearStructuralFeatureAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClearStructuralFeatureAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlclearvariableaction.cpp b/src/uml/qumlclearvariableaction.cpp
index 092c4a81..c9ccd1a8 100644
--- a/src/uml/qumlclearvariableaction.cpp
+++ b/src/uml/qumlclearvariableaction.cpp
@@ -40,513 +40,26 @@
****************************************************************************/
#include "qumlclearvariableaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlclearvariableactionobject_p.h"
/*!
- \class UmlClearVariableAction
+ \class QUmlClearVariableAction
\inmodule QtUml
\brief A clear variable action is a variable action that removes all values of a variable.
*/
-
-QUmlClearVariableAction::QUmlClearVariableAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlClearVariableAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlClearVariableAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlClearVariableAction::owner() const
+QUmlClearVariableAction::QUmlClearVariableAction(bool createQObject)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlClearVariableActionObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlClearVariableAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlClearVariableAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlClearVariableAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlClearVariableAction::namespace_() const
+QUmlClearVariableAction::~QUmlClearVariableAction()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlClearVariableAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlClearVariableAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlClearVariableAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlClearVariableAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlClearVariableAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlClearVariableAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlClearVariableAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlClearVariableAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlClearVariableAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlClearVariableAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlClearVariableAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlClearVariableAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlClearVariableAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlClearVariableAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlClearVariableAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlClearVariableAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlClearVariableAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlClearVariableAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlClearVariableAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlClearVariableAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [VariableAction]
-
-/*!
- Variable to be read.
- */
-QUmlVariable *QUmlClearVariableAction::variable() const
-{
- return reinterpret_cast<QUmlVariable *>(_variable);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlClearVariableAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlClearVariableAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlClearVariableAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlClearVariableAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlClearVariableAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlClearVariableAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlClearVariableAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlClearVariableAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlClearVariableAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlClearVariableAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlClearVariableAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlClearVariableAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlClearVariableAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlClearVariableAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlClearVariableAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlClearVariableAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlClearVariableAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlClearVariableAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlClearVariableAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlClearVariableAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlClearVariableAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlClearVariableAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlClearVariableAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlClearVariableAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlClearVariableAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlClearVariableAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlClearVariableAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlClearVariableAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlClearVariableAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlClearVariableAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlClearVariableAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlClearVariableAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlClearVariableAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlClearVariableAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlClearVariableAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
-
-void QUmlClearVariableAction::setVariable(QUmlVariable *variable)
-{
- UmlVariableAction::setVariable(variable);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlclearvariableaction.h b/src/uml/qumlclearvariableaction.h
index 7c9200e2..3d907221 100644
--- a/src/uml/qumlclearvariableaction.h
+++ b/src/uml/qumlclearvariableaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlclearvariableaction_p.h"
+#include <QtUml/QUmlVariableAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,183 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-
-class Q_UML_EXPORT QUmlClearVariableAction : public QObject, public UmlClearVariableAction
+class Q_UML_EXPORT QUmlClearVariableAction : public QUmlVariableAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [VariableAction]
- Q_PROPERTY(QUmlVariable * variable READ variable)
-
public:
- Q_INVOKABLE explicit QUmlClearVariableAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [VariableAction]
- Q_INVOKABLE QUmlVariable *variable() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
+ explicit QUmlClearVariableAction(bool createQObject = true);
+ virtual ~QUmlClearVariableAction();
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
- // Slots for owned attributes [VariableAction]
- void setVariable(QUmlVariable *variable);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlClearVariableAction *)
-Q_DECLARE_METATYPE(QList<QUmlClearVariableAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlClearVariableAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlClearVariableAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcollaboration.cpp b/src/uml/qumlcollaboration.cpp
index d3031acf..af95049e 100644
--- a/src/uml/qumlcollaboration.cpp
+++ b/src/uml/qumlcollaboration.cpp
@@ -40,958 +40,67 @@
****************************************************************************/
#include "qumlcollaboration.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
+#include "private/qumlcollaborationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlConnectableElement>
/*!
- \class UmlCollaboration
+ \class QUmlCollaboration
\inmodule QtUml
\brief A collaboration use represents the application of the pattern described by a collaboration to a specific situation involving specific classes or instances playing the roles of the collaboration.
*/
-
-QUmlCollaboration::QUmlCollaboration(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCollaboration::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCollaboration::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCollaboration::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCollaboration::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCollaboration::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCollaboration::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCollaboration::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCollaboration::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlCollaboration::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlCollaboration::importedMember() const
+QUmlCollaboration::QUmlCollaboration(bool createQObject)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlCollaborationObject(this);
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlCollaboration::member() const
+QUmlCollaboration::~QUmlCollaboration()
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlCollaboration::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlCollaboration::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlCollaboration::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlCollaboration::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlCollaboration::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlCollaboration::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCollaboration::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCollaboration::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCollaboration::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlCollaboration::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlCollaboration::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlCollaboration::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlCollaboration::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlCollaboration::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlCollaboration::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlCollaboration::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCollaboration::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlCollaboration::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlCollaboration::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlCollaboration::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlCollaboration::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlCollaboration::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlCollaboration::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlCollaboration::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlCollaboration::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlCollaboration::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the properties owned by the classifier.
- */
-const QList<QUmlProperty *> QUmlCollaboration::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlCollaboration::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlCollaboration::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlCollaboration::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlCollaboration::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlCollaboration::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlCollaboration::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Collaboration]
+// OWNED ATTRIBUTES
/*!
References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration.
*/
-const QSet<QUmlConnectableElement *> QUmlCollaboration::collaborationRole() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_collaborationRole));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCollaboration::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCollaboration::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCollaboration::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCollaboration::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCollaboration::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCollaboration::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlCollaboration::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlCollaboration::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlCollaboration::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlCollaboration::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlCollaboration::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlCollaboration::isTemplateParameter() const
+const QSet<QUmlConnectableElement *>
+QUmlCollaboration::collaborationRole() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlCollaboration::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlCollaboration::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ return _collaborationRole;
}
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlCollaboration::parameterableElements() const
+void QUmlCollaboration::addCollaborationRole(QUmlConnectableElement *collaborationRole)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (!_collaborationRole.contains(collaborationRole)) {
+ _collaborationRole.insert(collaborationRole);
+ if (collaborationRole->asQObject() && this->asQObject())
+ QObject::connect(collaborationRole->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeCollaborationRole(QObject *)));
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlCollaboration::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
+ // Adjust subsetted properties
+ addRole(collaborationRole);
+ }
}
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlCollaboration::allParents() const
+void QUmlCollaboration::removeCollaborationRole(QUmlConnectableElement *collaborationRole)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlCollaboration::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ if (_collaborationRole.contains(collaborationRole)) {
+ _collaborationRole.remove(collaborationRole);
-/*!
- 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.
- */
-bool QUmlCollaboration::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlCollaboration::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlCollaboration::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlCollaboration::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlCollaboration::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlCollaboration::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCollaboration::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCollaboration::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCollaboration::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCollaboration::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCollaboration::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCollaboration::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlCollaboration::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlCollaboration::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlCollaboration::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlCollaboration::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlCollaboration::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
+ // Adjust subsetted properties
+ removeRole(collaborationRole);
+ }
}
-void QUmlCollaboration::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlCollaboration::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlCollaboration::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlCollaboration::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCollaboration::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlCollaboration::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlCollaboration::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlCollaboration::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlCollaboration::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlCollaboration::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlCollaboration::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlCollaboration::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlCollaboration::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlCollaboration::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlCollaboration::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlCollaboration::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlCollaboration::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlCollaboration::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlCollaboration::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlCollaboration::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlCollaboration::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlCollaboration::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlCollaboration::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlCollaboration::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlCollaboration::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlCollaboration::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlCollaboration::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlCollaboration::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlCollaboration::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlStructuredClassifier::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlCollaboration::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlStructuredClassifier::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlCollaboration::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlCollaboration::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlCollaboration::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlCollaboration::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlCollaboration::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlCollaboration::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlCollaboration::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Collaboration]
-
-void QUmlCollaboration::addCollaborationRole(UmlConnectableElement *collaborationRole)
-{
- UmlCollaboration::addCollaborationRole(collaborationRole);
-}
-
-void QUmlCollaboration::removeCollaborationRole(UmlConnectableElement *collaborationRole)
-{
- UmlCollaboration::removeCollaborationRole(collaborationRole);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcollaboration.h b/src/uml/qumlcollaboration.h
index 2dd221b8..2b4df9bd 100644
--- a/src/uml/qumlcollaboration.h
+++ b/src/uml/qumlcollaboration.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcollaboration_p.h"
+#include <QtUml/QUmlStructuredClassifier>
+#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,305 +53,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlCollaboration : public QObject, public UmlCollaboration
+class Q_UML_EXPORT QUmlCollaboration : public QUmlStructuredClassifier, public QUmlBehavioredClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Collaboration]
- Q_PROPERTY(QSet<QUmlConnectableElement *> collaborationRole READ collaborationRole)
-
public:
- Q_INVOKABLE explicit QUmlCollaboration(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Collaboration]
- Q_INVOKABLE const QSet<QUmlConnectableElement *> collaborationRole() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
+ explicit QUmlCollaboration(bool createQObject = true);
+ virtual ~QUmlCollaboration();
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
+ // Owned attributes
+ const QSet<QUmlConnectableElement *> collaborationRole() const;
+ void addCollaborationRole(QUmlConnectableElement *collaborationRole);
+ void removeCollaborationRole(QUmlConnectableElement *collaborationRole);
- // Slots for owned attributes [Collaboration]
- void addCollaborationRole(UmlConnectableElement *collaborationRole);
- void removeCollaborationRole(UmlConnectableElement *collaborationRole);
+protected:
+ QSet<QUmlConnectableElement *> _collaborationRole;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCollaboration *)
-Q_DECLARE_METATYPE(QList<QUmlCollaboration *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCollaboration *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCollaboration) *)
QT_END_HEADER
diff --git a/src/uml/qumlcollaborationuse.cpp b/src/uml/qumlcollaborationuse.cpp
index a6e18250..5f351d0f 100644
--- a/src/uml/qumlcollaborationuse.cpp
+++ b/src/uml/qumlcollaborationuse.cpp
@@ -40,240 +40,94 @@
****************************************************************************/
#include "qumlcollaborationuse.h"
+#include "private/qumlcollaborationuseobject_p.h"
+
#include <QtUml/QUmlCollaboration>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlCollaborationUse
+ \class QUmlCollaborationUse
\inmodule QtUml
\brief A collaboration use represents one particular use of a collaboration to explain the relationships between the properties of a classifier. A collaboration use shows how the pattern described by a collaboration is applied in a given context, by binding specific entities from that context to the roles of the collaboration. Depending on the context, these entities could be structural features of a classifier, instance specifications, or even roles in some containing collaboration. There may be multiple occurrences of a given collaboration within a classifier, each involving a different set of roles and connectors. A given role or connector may be involved in multiple occurrences of the same or different collaborations. Associated dependencies map features of the collaboration type to features in the classifier. These dependencies indicate which role in the classifier plays which role in the collaboration.
*/
-
-QUmlCollaborationUse::QUmlCollaborationUse(QObject *parent) :
- QObject(parent)
+QUmlCollaborationUse::QUmlCollaborationUse(bool createQObject) :
+ _type(0)
{
+ if (createQObject)
+ _qObject = new QUmlCollaborationUseObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCollaborationUse::ownedComment() const
+QUmlCollaborationUse::~QUmlCollaborationUse()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCollaborationUse::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ A mapping between features of the collaboration type and features of the owning classifier. This mapping indicates which connectable element of the classifier 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).
*/
-QUmlElement *QUmlCollaborationUse::owner() const
+const QSet<QUmlDependency *>
+QUmlCollaborationUse::roleBinding() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCollaborationUse::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _roleBinding;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlCollaborationUse::name() const
+void QUmlCollaborationUse::addRoleBinding(QUmlDependency *roleBinding)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCollaborationUse::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (!_roleBinding.contains(roleBinding)) {
+ _roleBinding.insert(roleBinding);
+ if (roleBinding->asQObject() && this->asQObject())
+ QObject::connect(roleBinding->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRoleBinding(QObject *)));
+ roleBinding->asQObject()->setParent(this->asQObject());
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCollaborationUse::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // Adjust subsetted properties
+ addOwnedElement(roleBinding);
+ }
}
-/*!
- 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.
- */
-QString QUmlCollaborationUse::qualifiedName() const
+void QUmlCollaborationUse::removeRoleBinding(QUmlDependency *roleBinding)
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCollaborationUse::visibility() const
-{
- return _visibility;
-}
+ if (_roleBinding.contains(roleBinding)) {
+ _roleBinding.remove(roleBinding);
+ if (roleBinding->asQObject())
+ roleBinding->asQObject()->setParent(0);
-// OWNED ATTRIBUTES [CollaborationUse]
-
-/*!
- A mapping between features of the collaboration type and features of the owning classifier. This mapping indicates which connectable element of the classifier 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).
- */
-const QSet<QUmlDependency *> QUmlCollaborationUse::roleBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_roleBinding));
+ // Adjust subsetted properties
+ removeOwnedElement(roleBinding);
+ }
}
/*!
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.
*/
-QUmlCollaboration *QUmlCollaborationUse::type() const
+QUmlCollaboration *
+QUmlCollaborationUse::type() const
{
- return reinterpret_cast<QUmlCollaboration *>(_type);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCollaborationUse::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCollaborationUse::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCollaborationUse::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCollaborationUse::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCollaborationUse::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCollaborationUse::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCollaborationUse::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCollaborationUse::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCollaborationUse::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCollaborationUse::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCollaborationUse::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCollaborationUse::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCollaborationUse::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CollaborationUse]
-
-void QUmlCollaborationUse::addRoleBinding(UmlDependency *roleBinding)
-{
- UmlCollaborationUse::addRoleBinding(roleBinding);
-}
-
-void QUmlCollaborationUse::removeRoleBinding(UmlDependency *roleBinding)
-{
- UmlCollaborationUse::removeRoleBinding(roleBinding);
+ return _type;
}
void QUmlCollaborationUse::setType(QUmlCollaboration *type)
{
- UmlCollaborationUse::setType(type);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_type != type) {
+ _type = type;
+ if (type->asQObject() && this->asQObject())
+ QObject::connect(type->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setType()));
+ }
+}
diff --git a/src/uml/qumlcollaborationuse.h b/src/uml/qumlcollaborationuse.h
index ea17b578..c780cc84 100644
--- a/src/uml/qumlcollaborationuse.h
+++ b/src/uml/qumlcollaborationuse.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcollaborationuse_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,89 +53,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlCollaboration;
-class QUmlComment;
class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlCollaborationUse : public QObject, public UmlCollaborationUse
+class Q_UML_EXPORT QUmlCollaborationUse : public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [CollaborationUse]
- Q_PROPERTY(QSet<QUmlDependency *> roleBinding READ roleBinding)
- Q_PROPERTY(QUmlCollaboration * type READ type)
-
public:
- Q_INVOKABLE explicit QUmlCollaborationUse(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [CollaborationUse]
- Q_INVOKABLE const QSet<QUmlDependency *> roleBinding() const;
- Q_INVOKABLE QUmlCollaboration *type() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [CollaborationUse]
- void addRoleBinding(UmlDependency *roleBinding);
- void removeRoleBinding(UmlDependency *roleBinding);
+ explicit QUmlCollaborationUse(bool createQObject = true);
+ virtual ~QUmlCollaborationUse();
+
+ // Owned attributes
+ const QSet<QUmlDependency *> roleBinding() const;
+ void addRoleBinding(QUmlDependency *roleBinding);
+ void removeRoleBinding(QUmlDependency *roleBinding);
+ QUmlCollaboration *type() const;
void setType(QUmlCollaboration *type);
+
+protected:
+ QSet<QUmlDependency *> _roleBinding;
+ QUmlCollaboration *_type;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCollaborationUse *)
-Q_DECLARE_METATYPE(QList<QUmlCollaborationUse *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCollaborationUse *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCollaborationUse) *)
QT_END_HEADER
diff --git a/src/uml/qumlcombinedfragment.cpp b/src/uml/qumlcombinedfragment.cpp
index dc69f16d..0ef6497d 100644
--- a/src/uml/qumlcombinedfragment.cpp
+++ b/src/uml/qumlcombinedfragment.cpp
@@ -40,328 +40,132 @@
****************************************************************************/
#include "qumlcombinedfragment.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
+#include "private/qumlcombinedfragmentobject_p.h"
+
#include <QtUml/QUmlGate>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlCombinedFragment
+ \class QUmlCombinedFragment
\inmodule QtUml
\brief 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 combined fragments the user will be able to describe a number of traces in a compact and concise manner.
*/
-
-QUmlCombinedFragment::QUmlCombinedFragment(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCombinedFragment::ownedComment() const
+QUmlCombinedFragment::QUmlCombinedFragment(bool createQObject) :
+ _interactionOperator(QtUml::InteractionOperatorKindSeq)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlCombinedFragmentObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCombinedFragment::ownedElement() const
+QUmlCombinedFragment::~QUmlCombinedFragment()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCombinedFragment::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCombinedFragment::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCombinedFragment::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCombinedFragment::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCombinedFragment::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+// OWNED ATTRIBUTES
/*!
- A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.
+ Specifies the gates that form the interface between this CombinedFragment and its surroundings
*/
-QString QUmlCombinedFragment::qualifiedName() const
+const QSet<QUmlGate *>
+QUmlCombinedFragment::cfragmentGate() const
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCombinedFragment::visibility() const
-{
- return _visibility;
+ return _cfragmentGate;
}
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlCombinedFragment::covered() const
+void QUmlCombinedFragment::addCfragmentGate(QUmlGate *cfragmentGate)
{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
+ // This is a read-write association end
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlCombinedFragment::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
+ if (!_cfragmentGate.contains(cfragmentGate)) {
+ _cfragmentGate.insert(cfragmentGate);
+ if (cfragmentGate->asQObject() && this->asQObject())
+ QObject::connect(cfragmentGate->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeCfragmentGate(QObject *)));
+ cfragmentGate->asQObject()->setParent(this->asQObject());
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlCombinedFragment::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
+ // Adjust subsetted properties
+ addOwnedElement(cfragmentGate);
+ }
}
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlCombinedFragment::generalOrdering() const
+void QUmlCombinedFragment::removeCfragmentGate(QUmlGate *cfragmentGate)
{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [CombinedFragment]
+ if (_cfragmentGate.contains(cfragmentGate)) {
+ _cfragmentGate.remove(cfragmentGate);
+ if (cfragmentGate->asQObject())
+ cfragmentGate->asQObject()->setParent(0);
-/*!
- Specifies the gates that form the interface between this CombinedFragment and its surroundings
- */
-const QSet<QUmlGate *> QUmlCombinedFragment::cfragmentGate() const
-{
- return *(reinterpret_cast<const QSet<QUmlGate *> *>(&_cfragmentGate));
+ // Adjust subsetted properties
+ removeOwnedElement(cfragmentGate);
+ }
}
/*!
Specifies the operation which defines the semantics of this combination of InteractionFragments.
*/
-QtUml::InteractionOperatorKind QUmlCombinedFragment::interactionOperator() const
-{
- return _interactionOperator;
-}
-
-/*!
- The set of operands of the combined fragment.
- */
-const QList<QUmlInteractionOperand *> QUmlCombinedFragment::operand() const
-{
- return *(reinterpret_cast<const QList<QUmlInteractionOperand *> *>(&_operand));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCombinedFragment::allOwnedElements() const
+QtUml::InteractionOperatorKind
+QUmlCombinedFragment::interactionOperator() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlCombinedFragment::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _interactionOperator;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCombinedFragment::allNamespaces() const
+void QUmlCombinedFragment::setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCombinedFragment::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (_interactionOperator != interactionOperator) {
+ _interactionOperator = interactionOperator;
+ }
}
/*!
- 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.
- */
-bool QUmlCombinedFragment::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The set of operands of the combined fragment.
*/
-QString QUmlCombinedFragment::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCombinedFragment::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCombinedFragment::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCombinedFragment::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCombinedFragment::removeClientDependency(UmlDependency *clientDependency)
+const QList<QUmlInteractionOperand *>
+QUmlCombinedFragment::operand() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlCombinedFragment::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCombinedFragment::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _operand;
}
-void QUmlCombinedFragment::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlCombinedFragment::addCovered(UmlLifeline *covered)
+void QUmlCombinedFragment::addOperand(QUmlInteractionOperand *operand)
{
- UmlInteractionFragment::addCovered(covered);
-}
+ // This is a read-write association end
-void QUmlCombinedFragment::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
+ if (!_operand.contains(operand)) {
+ _operand.append(operand);
+ if (operand->asQObject() && this->asQObject())
+ QObject::connect(operand->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOperand(QObject *)));
+ operand->asQObject()->setParent(this->asQObject());
-void QUmlCombinedFragment::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
+ // Adjust subsetted properties
+ addOwnedElement(operand);
+ }
}
-void QUmlCombinedFragment::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
+void QUmlCombinedFragment::removeOperand(QUmlInteractionOperand *operand)
{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
+ // This is a read-write association end
-void QUmlCombinedFragment::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
+ if (_operand.contains(operand)) {
+ _operand.removeAll(operand);
+ if (operand->asQObject())
+ operand->asQObject()->setParent(0);
-void QUmlCombinedFragment::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
+ // Adjust subsetted properties
+ removeOwnedElement(operand);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [CombinedFragment]
-
-void QUmlCombinedFragment::addCfragmentGate(UmlGate *cfragmentGate)
-{
- UmlCombinedFragment::addCfragmentGate(cfragmentGate);
-}
-
-void QUmlCombinedFragment::removeCfragmentGate(UmlGate *cfragmentGate)
-{
- UmlCombinedFragment::removeCfragmentGate(cfragmentGate);
-}
-
-void QUmlCombinedFragment::setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator)
-{
- UmlCombinedFragment::setInteractionOperator(interactionOperator);
-}
-
-void QUmlCombinedFragment::addOperand(UmlInteractionOperand *operand)
-{
- UmlCombinedFragment::addOperand(operand);
-}
-
-void QUmlCombinedFragment::removeOperand(UmlInteractionOperand *operand)
-{
- UmlCombinedFragment::removeOperand(operand);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcombinedfragment.h b/src/uml/qumlcombinedfragment.h
index 4ae51a8b..c38f1af9 100644
--- a/src/uml/qumlcombinedfragment.h
+++ b/src/uml/qumlcombinedfragment.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcombinedfragment_p.h"
+#include <QtUml/QUmlInteractionFragment>
+
#include <QtUml/QtUmlNamespace>
@@ -54,118 +54,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlGate;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlCombinedFragment : public QObject, public UmlCombinedFragment
+class Q_UML_EXPORT QUmlCombinedFragment : public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [CombinedFragment]
- Q_PROPERTY(QSet<QUmlGate *> cfragmentGate READ cfragmentGate)
- Q_PROPERTY(QtUml::InteractionOperatorKind interactionOperator READ interactionOperator)
- Q_PROPERTY(QList<QUmlInteractionOperand *> operand READ operand)
-
public:
- Q_INVOKABLE explicit QUmlCombinedFragment(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [CombinedFragment]
- Q_INVOKABLE const QSet<QUmlGate *> cfragmentGate() const;
- Q_INVOKABLE QtUml::InteractionOperatorKind interactionOperator() const;
- Q_INVOKABLE const QList<QUmlInteractionOperand *> operand() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [CombinedFragment]
- void addCfragmentGate(UmlGate *cfragmentGate);
- void removeCfragmentGate(UmlGate *cfragmentGate);
+ explicit QUmlCombinedFragment(bool createQObject = true);
+ virtual ~QUmlCombinedFragment();
+
+ // Owned attributes
+ const QSet<QUmlGate *> cfragmentGate() const;
+ void addCfragmentGate(QUmlGate *cfragmentGate);
+ void removeCfragmentGate(QUmlGate *cfragmentGate);
+ QtUml::InteractionOperatorKind interactionOperator() const;
void setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator);
- void addOperand(UmlInteractionOperand *operand);
- void removeOperand(UmlInteractionOperand *operand);
+ const QList<QUmlInteractionOperand *> operand() const;
+ void addOperand(QUmlInteractionOperand *operand);
+ void removeOperand(QUmlInteractionOperand *operand);
+
+protected:
+ QSet<QUmlGate *> _cfragmentGate;
+ QtUml::InteractionOperatorKind _interactionOperator;
+ QList<QUmlInteractionOperand *> _operand;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCombinedFragment *)
-Q_DECLARE_METATYPE(QList<QUmlCombinedFragment *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCombinedFragment *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCombinedFragment) *)
QT_END_HEADER
diff --git a/src/uml/qumlcomment.cpp b/src/uml/qumlcomment.cpp
index 547e5b94..08c72b36 100644
--- a/src/uml/qumlcomment.cpp
+++ b/src/uml/qumlcomment.cpp
@@ -40,116 +40,79 @@
****************************************************************************/
#include "qumlcomment.h"
-#include <QtUml/QUmlElement>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlcommentobject_p.h"
/*!
- \class UmlComment
+ \class QUmlComment
\inmodule QtUml
\brief A comment is a textual annotation that can be attached to a set of elements.
*/
-
-QUmlComment::QUmlComment(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlComment::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlComment::ownedElement() const
+QUmlComment::QUmlComment(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlCommentObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlComment::owner() const
+QUmlComment::~QUmlComment()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Comment]
+// OWNED ATTRIBUTES
/*!
References the Element(s) being commented.
*/
-const QSet<QUmlElement *> QUmlComment::annotatedElement() const
+const QSet<QUmlElement *>
+QUmlComment::annotatedElement() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_annotatedElement));
-}
+ // This is a read-write association end
-/*!
- Specifies a string that is the comment.
- */
-QString QUmlComment::body() const
-{
- return _body;
+ return _annotatedElement;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlComment::allOwnedElements() const
+void QUmlComment::addAnnotatedElement(QUmlElement *annotatedElement)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlComment::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ if (!_annotatedElement.contains(annotatedElement)) {
+ _annotatedElement.insert(annotatedElement);
+ if (annotatedElement->asQObject() && this->asQObject())
+ QObject::connect(annotatedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeAnnotatedElement(QObject *)));
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlComment::addOwnedComment(UmlComment *ownedComment)
+void QUmlComment::removeAnnotatedElement(QUmlElement *annotatedElement)
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlComment::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ if (_annotatedElement.contains(annotatedElement)) {
+ _annotatedElement.remove(annotatedElement);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Comment]
-
-void QUmlComment::addAnnotatedElement(UmlElement *annotatedElement)
+/*!
+ Specifies a string that is the comment.
+ */
+QString
+QUmlComment::body() const
{
- UmlComment::addAnnotatedElement(annotatedElement);
-}
+ // This is a read-write property
-void QUmlComment::removeAnnotatedElement(UmlElement *annotatedElement)
-{
- UmlComment::removeAnnotatedElement(annotatedElement);
+ return _body;
}
void QUmlComment::setBody(QString body)
{
- UmlComment::setBody(body);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_body != body) {
+ _body = body;
+ }
+}
diff --git a/src/uml/qumlcomment.h b/src/uml/qumlcomment.h
index 7e529795..628c0d0f 100644
--- a/src/uml/qumlcomment.h
+++ b/src/uml/qumlcomment.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcomment_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,54 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlElement;
-
-class Q_UML_EXPORT QUmlComment : public QObject, public UmlComment
+class Q_UML_EXPORT QUmlComment : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Comment]
- Q_PROPERTY(QSet<QUmlElement *> annotatedElement READ annotatedElement)
- Q_PROPERTY(QString body READ body)
-
public:
- Q_INVOKABLE explicit QUmlComment(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Comment]
- Q_INVOKABLE const QSet<QUmlElement *> annotatedElement() const;
- Q_INVOKABLE QString body() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Comment]
- void addAnnotatedElement(UmlElement *annotatedElement);
- void removeAnnotatedElement(UmlElement *annotatedElement);
+ explicit QUmlComment(bool createQObject = true);
+ virtual ~QUmlComment();
+
+ // Owned attributes
+ const QSet<QUmlElement *> annotatedElement() const;
+ void addAnnotatedElement(QUmlElement *annotatedElement);
+ void removeAnnotatedElement(QUmlElement *annotatedElement);
+ QString body() const;
void setBody(QString body);
+
+protected:
+ QSet<QUmlElement *> _annotatedElement;
+ QString _body;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlComment *)
-Q_DECLARE_METATYPE(QList<QUmlComment *> *)
-Q_DECLARE_METATYPE(QSet<QUmlComment *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlComment) *)
QT_END_HEADER
diff --git a/src/uml/qumlcommunicationpath.cpp b/src/uml/qumlcommunicationpath.cpp
index 640db182..4641fa11 100644
--- a/src/uml/qumlcommunicationpath.cpp
+++ b/src/uml/qumlcommunicationpath.cpp
@@ -40,914 +40,27 @@
****************************************************************************/
#include "qumlcommunicationpath.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlcommunicationpathobject_p.h"
/*!
- \class UmlCommunicationPath
+ \class QUmlCommunicationPath
\inmodule QtUml
\brief A communication path is an association between two deployment targets, through which they are able to exchange signals and messages.
*/
-
-QUmlCommunicationPath::QUmlCommunicationPath(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCommunicationPath::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCommunicationPath::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCommunicationPath::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCommunicationPath::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCommunicationPath::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCommunicationPath::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCommunicationPath::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCommunicationPath::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlCommunicationPath::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlCommunicationPath::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlCommunicationPath::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlCommunicationPath::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlCommunicationPath::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlCommunicationPath::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlCommunicationPath::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlCommunicationPath::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlCommunicationPath::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCommunicationPath::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCommunicationPath::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCommunicationPath::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlCommunicationPath::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlCommunicationPath::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlCommunicationPath::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlCommunicationPath::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlCommunicationPath::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlCommunicationPath::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlCommunicationPath::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlCommunicationPath::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlCommunicationPath::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlCommunicationPath::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlCommunicationPath::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlCommunicationPath::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlCommunicationPath::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlCommunicationPath::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlCommunicationPath::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlCommunicationPath::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlCommunicationPath::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [Association]
-
-/*!
- References the classifiers that are used as types of the ends of the association.
- */
-const QList<QUmlType *> QUmlCommunicationPath::endType() const
-{
- QList<QUmlType *> r;
- foreach (UmlType *element, UmlAssociation::endType())
- r.append(reinterpret_cast<QUmlType *>(element));
- return r;
-}
-
-/*!
- Specifies whether the association is derived from other model elements such as other associations or constraints.
- */
-bool QUmlCommunicationPath::isDerived() const
-{
- return _isDerived;
-}
-
-/*!
- Each end represents participation of instances of the classifier connected to the end in links of the association.
- */
-const QList<QUmlProperty *> QUmlCommunicationPath::memberEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_memberEnd));
-}
-
-/*!
- The navigable ends that are owned by the association itself.
- */
-const QSet<QUmlProperty *> QUmlCommunicationPath::navigableOwnedEnd() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_navigableOwnedEnd));
-}
-
-/*!
- The ends that are owned by the association itself.
- */
-const QList<QUmlProperty *> QUmlCommunicationPath::ownedEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedEnd));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCommunicationPath::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCommunicationPath::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCommunicationPath::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCommunicationPath::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlCommunicationPath::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlCommunicationPath::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlCommunicationPath::importMembers(QSet<QUmlPackageableElement *> imps) const
+QUmlCommunicationPath::QUmlCommunicationPath(bool createQObject) :
+ QUmlAssociation(false)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlCommunicationPathObject(this);
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlCommunicationPath::membersAreDistinguishable() const
+QUmlCommunicationPath::~QUmlCommunicationPath()
{
- return UmlNamespace::membersAreDistinguishable();
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlCommunicationPath::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlCommunicationPath::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlCommunicationPath::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlCommunicationPath::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlCommunicationPath::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlCommunicationPath::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlCommunicationPath::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlCommunicationPath::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlCommunicationPath::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlCommunicationPath::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCommunicationPath::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCommunicationPath::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCommunicationPath::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCommunicationPath::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCommunicationPath::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCommunicationPath::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlCommunicationPath::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlCommunicationPath::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlCommunicationPath::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlCommunicationPath::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlCommunicationPath::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlCommunicationPath::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlCommunicationPath::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlCommunicationPath::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlCommunicationPath::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCommunicationPath::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlCommunicationPath::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlCommunicationPath::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlCommunicationPath::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlCommunicationPath::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlCommunicationPath::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlCommunicationPath::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlCommunicationPath::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlCommunicationPath::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlCommunicationPath::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlCommunicationPath::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlCommunicationPath::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlCommunicationPath::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlCommunicationPath::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlCommunicationPath::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlCommunicationPath::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlCommunicationPath::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlCommunicationPath::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlCommunicationPath::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlCommunicationPath::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlCommunicationPath::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlCommunicationPath::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlCommunicationPath::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlCommunicationPath::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Association]
-
-void QUmlCommunicationPath::setDerived(bool isDerived)
-{
- UmlAssociation::setDerived(isDerived);
-}
-
-void QUmlCommunicationPath::addMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::addMemberEnd(memberEnd);
-}
-
-void QUmlCommunicationPath::removeMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::removeMemberEnd(memberEnd);
-}
-
-void QUmlCommunicationPath::addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::addNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlCommunicationPath::removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::removeNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlCommunicationPath::addOwnedEnd(UmlProperty *ownedEnd)
-{
- UmlAssociation::addOwnedEnd(ownedEnd);
-}
-
-void QUmlCommunicationPath::removeOwnedEnd(UmlProperty *ownedEnd)
-{
- UmlAssociation::removeOwnedEnd(ownedEnd);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcommunicationpath.h b/src/uml/qumlcommunicationpath.h
index 679b8f5d..e0b3083a 100644
--- a/src/uml/qumlcommunicationpath.h
+++ b/src/uml/qumlcommunicationpath.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcommunicationpath_p.h"
+#include <QtUml/QUmlAssociation>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,287 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlCommunicationPath : public QObject, public UmlCommunicationPath
+class Q_UML_EXPORT QUmlCommunicationPath : public QUmlAssociation
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [Association]
- Q_PROPERTY(QList<QUmlType *> endType READ endType)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(QList<QUmlProperty *> memberEnd READ memberEnd)
- Q_PROPERTY(QSet<QUmlProperty *> navigableOwnedEnd READ navigableOwnedEnd)
- Q_PROPERTY(QList<QUmlProperty *> ownedEnd READ ownedEnd)
-
public:
- Q_INVOKABLE explicit QUmlCommunicationPath(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [Association]
- Q_INVOKABLE const QList<QUmlType *> endType() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE const QList<QUmlProperty *> memberEnd() const;
- Q_INVOKABLE const QSet<QUmlProperty *> navigableOwnedEnd() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedEnd() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ explicit QUmlCommunicationPath(bool createQObject = true);
+ virtual ~QUmlCommunicationPath();
- // Slots for owned attributes [Relationship]
- // Slots for owned attributes [Association]
- void setDerived(bool isDerived);
- void addMemberEnd(UmlProperty *memberEnd);
- void removeMemberEnd(UmlProperty *memberEnd);
- void addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void addOwnedEnd(UmlProperty *ownedEnd);
- void removeOwnedEnd(UmlProperty *ownedEnd);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCommunicationPath *)
-Q_DECLARE_METATYPE(QList<QUmlCommunicationPath *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCommunicationPath *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCommunicationPath) *)
QT_END_HEADER
diff --git a/src/uml/qumlcomponent.cpp b/src/uml/qumlcomponent.cpp
index 2448ccf2..c5ced21a 100644
--- a/src/uml/qumlcomponent.cpp
+++ b/src/uml/qumlcomponent.cpp
@@ -40,803 +40,233 @@
****************************************************************************/
#include "qumlcomponent.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClass>
+#include "private/qumlcomponentobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlComponentRealization>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
#include <QtUml/QUmlInterface>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlComponent
+ \class QUmlComponent
\inmodule QtUml
\brief In the namespace of a component, all model elements that are involved in or related to its definition are either owned or imported explicitly. This may include, for example, use cases and dependencies (e.g. mappings), packages, components, and artifacts.A component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.
*/
-
-QUmlComponent::QUmlComponent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlComponent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlComponent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlComponent::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlComponent::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlComponent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlComponent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlComponent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlComponent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlComponent::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlComponent::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlComponent::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlComponent::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlComponent::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlComponent::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlComponent::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlComponent::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlComponent::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlComponent::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlComponent::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlComponent::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlComponent::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlComponent::attribute() const
+QUmlComponent::QUmlComponent(bool createQObject) :
+ QUmlClass(false),
+ _isIndirectlyInstantiated(true)
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
+ if (createQObject)
+ _qObject = new QUmlComponentObject(this);
}
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlComponent::collaborationUse() const
+QUmlComponent::~QUmlComponent()
{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlComponent::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlComponent::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlComponent::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+// OWNED ATTRIBUTES
/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlComponent::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlComponent::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlComponent::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlComponent::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlComponent::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlComponent::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlComponent::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlComponent::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlComponent::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlComponent::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlComponent::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlComponent::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlComponent::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
+ isIndirectlyInstantiated : Boolean {default = true} 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 run-time (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»).
*/
-QUmlBehavior *QUmlComponent::classifierBehavior() const
+bool
+QUmlComponent::isIndirectlyInstantiated() const
{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
+ // This is a read-write property
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlComponent::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
+ return _isIndirectlyInstantiated;
}
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlComponent::ownedBehavior() const
+void QUmlComponent::setIndirectlyInstantiated(bool isIndirectlyInstantiated)
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
+ // This is a read-write property
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlComponent::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
+ if (_isIndirectlyInstantiated != isIndirectlyInstantiated) {
+ _isIndirectlyInstantiated = isIndirectlyInstantiated;
+ }
}
/*!
- 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.True when a class is abstract.
+ 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.
*/
-bool QUmlComponent::isAbstract() const
+const QSet<QUmlPackageableElement *>
+QUmlComponent::packagedElement() const
{
- return _isAbstract;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlComponent::isActive() const
-{
- return _isActive;
+ return _packagedElement;
}
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlComponent::nestedClassifier() const
+void QUmlComponent::addPackagedElement(QUmlPackageableElement *packagedElement)
{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
+ // This is a read-write association end
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlComponent::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
+ if (!_packagedElement.contains(packagedElement)) {
+ _packagedElement.insert(packagedElement);
+ if (packagedElement->asQObject() && this->asQObject())
+ QObject::connect(packagedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePackagedElement(QObject *)));
+ packagedElement->asQObject()->setParent(this->asQObject());
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlComponent::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
+ // Adjust subsetted properties
+ addOwnedMember(packagedElement);
+ }
}
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlComponent::ownedReception() const
+void QUmlComponent::removePackagedElement(QUmlPackageableElement *packagedElement)
{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
+ // This is a read-write association end
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlComponent::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Component]
+ if (_packagedElement.contains(packagedElement)) {
+ _packagedElement.remove(packagedElement);
+ if (packagedElement->asQObject())
+ packagedElement->asQObject()->setParent(0);
-/*!
- isIndirectlyInstantiated : Boolean {default = true} 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 run-time (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»).
- */
-bool QUmlComponent::isIndirectlyInstantiated() const
-{
- return _isIndirectlyInstantiated;
-}
-
-/*!
- 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.
- */
-const QSet<QUmlPackageableElement *> QUmlComponent::packagedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageableElement *> *>(&_packagedElement));
+ // Adjust subsetted properties
+ removeOwnedMember(packagedElement);
+ }
}
/*!
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.
*/
-const QSet<QUmlInterface *> QUmlComponent::provided() const
+const QSet<QUmlInterface *>
+QUmlComponent::provided() const
{
- QSet<QUmlInterface *> r;
- foreach (UmlInterface *element, UmlComponent::provided())
- r.insert(reinterpret_cast<QUmlInterface *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-const QSet<QUmlComponentRealization *> QUmlComponent::realization() const
-{
- return *(reinterpret_cast<const QSet<QUmlComponentRealization *> *>(&_realization));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlInterface *> QUmlComponent::required() const
-{
- QSet<QUmlInterface *> r;
- foreach (UmlInterface *element, UmlComponent::required())
- r.insert(reinterpret_cast<QUmlInterface *>(element));
- return r;
-}
-
-// OPERATIONS [Element]
+ qWarning("UmlComponent::provided(): to be implemented (this is a derived association end)");
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlComponent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return QSet<QUmlInterface *>();
}
-/*!
- 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.
- */
-bool QUmlComponent::mustBeOwned() const
+void QUmlComponent::addProvided(QUmlInterface *provided)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived association end
-// OPERATIONS [NamedElement]
+ qWarning("UmlComponent::provided(): to be implemented (this is a derived association end)");
+ Q_UNUSED(provided);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlComponent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlComponent::allOwningPackages() const
+void QUmlComponent::removeProvided(QUmlInterface *provided)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlComponent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ qWarning("UmlComponent::provided(): to be implemented (this is a derived association end)");
+ Q_UNUSED(provided);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlComponent::separator() const
-{
- return UmlNamedElement::separator();
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OPERATIONS [Namespace]
-
/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
+ 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.
*/
-QSet<QUmlPackageableElement *> QUmlComponent::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
+const QSet<QUmlComponentRealization *>
+QUmlComponent::realization() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlComponent::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ return _realization;
}
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlComponent::importMembers(QSet<QUmlPackageableElement *> imps) const
+void QUmlComponent::addRealization(QUmlComponentRealization *realization)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlComponent::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
+ if (!_realization.contains(realization)) {
+ _realization.insert(realization);
+ if (realization->asQObject() && this->asQObject())
+ QObject::connect(realization->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRealization(QObject *)));
+ realization->asQObject()->setParent(this->asQObject());
-// OPERATIONS [ParameterableElement]
+ // Adjust subsetted properties
+ addOwnedElement(realization);
-/*!
- 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.
- */
-bool QUmlComponent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (realization) {
+ realization->setAbstraction(this);
+ }
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlComponent::isTemplateParameter() const
+void QUmlComponent::removeRealization(QUmlComponentRealization *realization)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (_realization.contains(realization)) {
+ _realization.remove(realization);
+ if (realization->asQObject())
+ realization->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlComponent::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
+ // Adjust subsetted properties
+ removeOwnedElement(realization);
-/*!
- 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.
- */
-bool QUmlComponent::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // Adjust opposite properties
+ if (realization) {
+ realization->setAbstraction(0);
+ }
+ }
}
-// OPERATIONS [TemplateableElement]
-
/*!
- 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.
+ 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.
*/
-QSet<QUmlParameterableElement *> QUmlComponent::parameterableElements() const
+const QSet<QUmlInterface *>
+QUmlComponent::required() const
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-only derived association end
-// OPERATIONS [Classifier]
+ qWarning("UmlComponent::required(): to be implemented (this is a derived association end)");
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlComponent::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
+ return QSet<QUmlInterface *>();
}
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlComponent::allParents() const
+void QUmlComponent::addRequired(QUmlInterface *required)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlComponent::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ qWarning("UmlComponent::required(): to be implemented (this is a derived association end)");
+ Q_UNUSED(required);
-/*!
- 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.
- */
-bool QUmlComponent::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlComponent::inheritableMembers(QUmlClassifier *c) const
+void QUmlComponent::removeRequired(QUmlInterface *required)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlComponent::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ qWarning("UmlComponent::required(): to be implemented (this is a derived association end)");
+ Q_UNUSED(required);
-/*!
- 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.
- */
-bool QUmlComponent::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlComponent::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlComponent::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// OPERATIONS [Component]
+// OPERATIONS
/*!
Utility returning the set of realized interfaces of a component.
*/
QSet<QUmlInterface *> QUmlComponent::realizedInterfaces(QUmlClassifier *classifier) const
{
- QSet<QUmlInterface *> r;
- foreach (UmlInterface *element, UmlComponent::realizedInterfaces(classifier))
- r.insert(reinterpret_cast<QUmlInterface *>(element));
- return r;
+ qWarning("UmlComponent::realizedInterfaces(): to be implemented (operation)");
+
+ Q_UNUSED(classifier);
+ return QSet<QUmlInterface *> ();
}
/*!
@@ -844,337 +274,9 @@ QSet<QUmlInterface *> QUmlComponent::realizedInterfaces(QUmlClassifier *classifi
*/
QSet<QUmlInterface *> QUmlComponent::usedInterfaces(QUmlClassifier *classifier) const
{
- QSet<QUmlInterface *> r;
- foreach (UmlInterface *element, UmlComponent::usedInterfaces(classifier))
- r.insert(reinterpret_cast<QUmlInterface *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlComponent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlComponent::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlComponent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlComponent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlComponent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlComponent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlComponent::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlComponent::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlComponent::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlComponent::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlComponent::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlComponent::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlComponent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlComponent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlComponent::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlComponent::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlComponent::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlComponent::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlComponent::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlComponent::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlComponent::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlComponent::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlComponent::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlComponent::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlComponent::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlComponent::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlComponent::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlComponent::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlComponent::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlComponent::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlComponent::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlComponent::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlComponent::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlComponent::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
+ qWarning("UmlComponent::usedInterfaces(): to be implemented (operation)");
-void QUmlComponent::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlComponent::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlComponent::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlComponent::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlComponent::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
+ Q_UNUSED(classifier);
+ return QSet<QUmlInterface *> ();
}
-void QUmlComponent::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlComponent::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlComponent::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlComponent::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlComponent::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlComponent::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlComponent::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlComponent::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlComponent::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlComponent::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlComponent::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlComponent::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlComponent::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlComponent::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlComponent::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlComponent::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Component]
-
-void QUmlComponent::setIndirectlyInstantiated(bool isIndirectlyInstantiated)
-{
- UmlComponent::setIndirectlyInstantiated(isIndirectlyInstantiated);
-}
-
-void QUmlComponent::addPackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlComponent::addPackagedElement(packagedElement);
-}
-
-void QUmlComponent::removePackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlComponent::removePackagedElement(packagedElement);
-}
-
-void QUmlComponent::addRealization(UmlComponentRealization *realization)
-{
- UmlComponent::addRealization(realization);
-}
-
-void QUmlComponent::removeRealization(UmlComponentRealization *realization)
-{
- UmlComponent::removeRealization(realization);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcomponent.h b/src/uml/qumlcomponent.h
index 328ba879..03f82831 100644
--- a/src/uml/qumlcomponent.h
+++ b/src/uml/qumlcomponent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcomponent_p.h"
+#include <QtUml/QUmlClass>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,360 +52,46 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClass;
class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
class QUmlComponentRealization;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
class QUmlInterface;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlComponent : public QObject, public UmlComponent
+class Q_UML_EXPORT QUmlComponent : public QUmlClass
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Component]
- Q_PROPERTY(bool isIndirectlyInstantiated READ isIndirectlyInstantiated)
- Q_PROPERTY(QSet<QUmlPackageableElement *> packagedElement READ packagedElement)
- Q_PROPERTY(QSet<QUmlInterface *> provided READ provided)
- Q_PROPERTY(QSet<QUmlComponentRealization *> realization READ realization)
- Q_PROPERTY(QSet<QUmlInterface *> required READ required)
-
public:
- Q_INVOKABLE explicit QUmlComponent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Component]
- Q_INVOKABLE bool isIndirectlyInstantiated() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> packagedElement() const;
- Q_INVOKABLE const QSet<QUmlInterface *> provided() const;
- Q_INVOKABLE const QSet<QUmlComponentRealization *> realization() const;
- Q_INVOKABLE const QSet<QUmlInterface *> required() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
- // Operations [Component]
- Q_INVOKABLE QSet<QUmlInterface *> realizedInterfaces(QUmlClassifier *classifier) const;
- Q_INVOKABLE QSet<QUmlInterface *> usedInterfaces(QUmlClassifier *classifier) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ explicit QUmlComponent(bool createQObject = true);
+ virtual ~QUmlComponent();
- // Slots for owned attributes [Component]
+ // Owned attributes
+ bool isIndirectlyInstantiated() const;
void setIndirectlyInstantiated(bool isIndirectlyInstantiated);
- void addPackagedElement(UmlPackageableElement *packagedElement);
- void removePackagedElement(UmlPackageableElement *packagedElement);
- void addRealization(UmlComponentRealization *realization);
- void removeRealization(UmlComponentRealization *realization);
+ const QSet<QUmlPackageableElement *> packagedElement() const;
+ void addPackagedElement(QUmlPackageableElement *packagedElement);
+ void removePackagedElement(QUmlPackageableElement *packagedElement);
+ const QSet<QUmlInterface *> provided() const;
+ Q_DECL_HIDDEN void addProvided(QUmlInterface *provided);
+ Q_DECL_HIDDEN void removeProvided(QUmlInterface *provided);
+ const QSet<QUmlComponentRealization *> realization() const;
+ void addRealization(QUmlComponentRealization *realization);
+ void removeRealization(QUmlComponentRealization *realization);
+ const QSet<QUmlInterface *> required() const;
+ Q_DECL_HIDDEN void addRequired(QUmlInterface *required);
+ Q_DECL_HIDDEN void removeRequired(QUmlInterface *required);
+
+ // Operations
+ QSet<QUmlInterface *> realizedInterfaces(QUmlClassifier *classifier) const;
+ QSet<QUmlInterface *> usedInterfaces(QUmlClassifier *classifier) const;
+
+protected:
+ bool _isIndirectlyInstantiated;
+ QSet<QUmlPackageableElement *> _packagedElement;
+ QSet<QUmlComponentRealization *> _realization;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlComponent *)
-Q_DECLARE_METATYPE(QList<QUmlComponent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlComponent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlComponent) *)
QT_END_HEADER
diff --git a/src/uml/qumlcomponentrealization.cpp b/src/uml/qumlcomponentrealization.cpp
index 98801842..37b33800 100644
--- a/src/uml/qumlcomponentrealization.cpp
+++ b/src/uml/qumlcomponentrealization.cpp
@@ -40,383 +40,101 @@
****************************************************************************/
#include "qumlcomponentrealization.h"
+#include "private/qumlcomponentrealizationobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlComponent>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOpaqueExpression>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlComponentRealization
+ \class QUmlComponentRealization
\inmodule QtUml
\brief The realization concept is specialized to (optionally) define the classifiers that realize the contract offered by a component in terms of its provided and required interfaces. The component forms an abstraction from these various classifiers.
*/
-
-QUmlComponentRealization::QUmlComponentRealization(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlComponentRealization::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlComponentRealization::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlComponentRealization::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlComponentRealization::owningTemplateParameter() const
+QUmlComponentRealization::QUmlComponentRealization(bool createQObject) :
+ QUmlRealization(false),
+ _abstraction(0)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlComponentRealizationObject(this);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlComponentRealization::templateParameter() const
+QUmlComponentRealization::~QUmlComponentRealization()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlComponentRealization::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlComponentRealization::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlComponentRealization::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlComponentRealization::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlComponentRealization::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlComponentRealization::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlComponentRealization::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlComponentRealization::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlComponentRealization::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlComponentRealization::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlComponentRealization::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Abstraction]
-
-/*!
- 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.
- */
-QUmlOpaqueExpression *QUmlComponentRealization::mapping() const
-{
- return reinterpret_cast<QUmlOpaqueExpression *>(_mapping);
-}
-
-// OWNED ATTRIBUTES [ComponentRealization]
+// OWNED ATTRIBUTES
/*!
The Component that owns this ComponentRealization and which is implemented by its realizing classifiers.
*/
-QUmlComponent *QUmlComponentRealization::abstraction() const
-{
- return reinterpret_cast<QUmlComponent *>(_abstraction);
-}
-
-/*!
- The classifiers that are involved in the implementation of the Component that owns this Realization.
- */
-const QSet<QUmlClassifier *> QUmlComponentRealization::realizingClassifier() const
+QUmlComponent *
+QUmlComponentRealization::abstraction() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_realizingClassifier));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlComponentRealization::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlComponentRealization::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlComponentRealization::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _abstraction;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlComponentRealization::isTemplateParameter() const
+void QUmlComponentRealization::setAbstraction(QUmlComponent *abstraction)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_abstraction != abstraction) {
+ // Adjust subsetted properties
+ removeSupplier(_abstraction);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlComponentRealization::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlComponentRealization::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ _abstraction = abstraction;
+ if (abstraction->asQObject() && this->asQObject())
+ QObject::connect(abstraction->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAbstraction()));
-/*!
- 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.
- */
-bool QUmlComponentRealization::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ if (abstraction) {
+ addSupplier(abstraction);
+ }
+ setOwner(abstraction);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The classifiers that are involved in the implementation of the Component that owns this Realization.
*/
-QString QUmlComponentRealization::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlComponentRealization::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlComponentRealization::removeOwnedComment(UmlComment *ownedComment)
+const QSet<QUmlClassifier *>
+QUmlComponentRealization::realizingClassifier() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlComponentRealization::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
+ return _realizingClassifier;
}
-void QUmlComponentRealization::setTemplateParameter(QUmlTemplateParameter *templateParameter)
+void QUmlComponentRealization::addRealizingClassifier(QUmlClassifier *realizingClassifier)
{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_realizingClassifier.contains(realizingClassifier)) {
+ _realizingClassifier.insert(realizingClassifier);
+ if (realizingClassifier->asQObject() && this->asQObject())
+ QObject::connect(realizingClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRealizingClassifier(QObject *)));
-void QUmlComponentRealization::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ addClient(realizingClassifier);
+ }
}
-void QUmlComponentRealization::removeClientDependency(UmlDependency *clientDependency)
+void QUmlComponentRealization::removeRealizingClassifier(QUmlClassifier *realizingClassifier)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlComponentRealization::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (_realizingClassifier.contains(realizingClassifier)) {
+ _realizingClassifier.remove(realizingClassifier);
-void QUmlComponentRealization::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlComponentRealization::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlComponentRealization::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlComponentRealization::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
+ // Adjust subsetted properties
+ removeClient(realizingClassifier);
+ }
}
-void QUmlComponentRealization::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
-}
-
-void QUmlComponentRealization::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
-
-void QUmlComponentRealization::setMapping(QUmlOpaqueExpression *mapping)
-{
- UmlAbstraction::setMapping(mapping);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ComponentRealization]
-
-void QUmlComponentRealization::setAbstraction(QUmlComponent *abstraction)
-{
- UmlComponentRealization::setAbstraction(abstraction);
-}
-
-void QUmlComponentRealization::addRealizingClassifier(UmlClassifier *realizingClassifier)
-{
- UmlComponentRealization::addRealizingClassifier(realizingClassifier);
-}
-
-void QUmlComponentRealization::removeRealizingClassifier(UmlClassifier *realizingClassifier)
-{
- UmlComponentRealization::removeRealizingClassifier(realizingClassifier);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcomponentrealization.h b/src/uml/qumlcomponentrealization.h
index 0fd36a10..3bad4749 100644
--- a/src/uml/qumlcomponentrealization.h
+++ b/src/uml/qumlcomponentrealization.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcomponentrealization_p.h"
+#include <QtUml/QUmlRealization>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,156 +53,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
class QUmlComponent;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOpaqueExpression;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlComponentRealization : public QObject, public UmlComponentRealization
+class Q_UML_EXPORT QUmlComponentRealization : public QUmlRealization
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Abstraction]
- Q_PROPERTY(QUmlOpaqueExpression * mapping READ mapping)
-
- // Properties [ComponentRealization]
- Q_PROPERTY(QUmlComponent * abstraction READ abstraction)
- Q_PROPERTY(QSet<QUmlClassifier *> realizingClassifier READ realizingClassifier)
-
public:
- Q_INVOKABLE explicit QUmlComponentRealization(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
+ explicit QUmlComponentRealization(bool createQObject = true);
+ virtual ~QUmlComponentRealization();
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Abstraction]
- Q_INVOKABLE QUmlOpaqueExpression *mapping() const;
-
- // Owned attributes [ComponentRealization]
- Q_INVOKABLE QUmlComponent *abstraction() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> realizingClassifier() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
- // Slots for owned attributes [Abstraction]
- void setMapping(QUmlOpaqueExpression *mapping);
-
- // Slots for owned attributes [ComponentRealization]
+ // Owned attributes
+ QUmlComponent *abstraction() const;
void setAbstraction(QUmlComponent *abstraction);
- void addRealizingClassifier(UmlClassifier *realizingClassifier);
- void removeRealizingClassifier(UmlClassifier *realizingClassifier);
+ const QSet<QUmlClassifier *> realizingClassifier() const;
+ void addRealizingClassifier(QUmlClassifier *realizingClassifier);
+ void removeRealizingClassifier(QUmlClassifier *realizingClassifier);
+
+protected:
+ QUmlComponent *_abstraction;
+ QSet<QUmlClassifier *> _realizingClassifier;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlComponentRealization *)
-Q_DECLARE_METATYPE(QList<QUmlComponentRealization *> *)
-Q_DECLARE_METATYPE(QSet<QUmlComponentRealization *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlComponentRealization) *)
QT_END_HEADER
diff --git a/src/uml/qumlconditionalnode.cpp b/src/uml/qumlconditionalnode.cpp
index 0fd5b5e8..dd82c5df 100644
--- a/src/uml/qumlconditionalnode.cpp
+++ b/src/uml/qumlconditionalnode.cpp
@@ -40,813 +40,148 @@
****************************************************************************/
#include "qumlconditionalnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
+#include "private/qumlconditionalnodeobject_p.h"
+
#include <QtUml/QUmlClause>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlConditionalNode
+ \class QUmlConditionalNode
\inmodule QtUml
\brief A conditional node is a structured activity node that represents an exclusive choice among some number of alternatives.
*/
-
-QUmlConditionalNode::QUmlConditionalNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConditionalNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConditionalNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlConditionalNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlConditionalNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlConditionalNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlConditionalNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlConditionalNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlConditionalNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlConditionalNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlConditionalNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlConditionalNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlConditionalNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlConditionalNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlConditionalNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlConditionalNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlConditionalNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlConditionalNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlConditionalNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlConditionalNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlConditionalNode::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlConditionalNode::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlConditionalNode::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlConditionalNode::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlConditionalNode::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlConditionalNode::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlConditionalNode::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlConditionalNode::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlConditionalNode::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlConditionalNode::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlConditionalNode::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlConditionalNode::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlConditionalNode::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ActivityGroup]
-
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlConditionalNode::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
-}
-
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlConditionalNode::containedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
-
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlConditionalNode::subgroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
-}
-
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlConditionalNode::superGroup() const
-{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
-}
-
-// OWNED ATTRIBUTES [StructuredActivityNode]
-
-/*!
- Activity immediately containing the node.
- */
-QUmlActivity *QUmlConditionalNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Edges immediately contained in the structured node.
- */
-const QSet<QUmlActivityEdge *> QUmlConditionalNode::edge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
-
-/*!
- If true, then the actions in the node execute in isolation from actions outside the node.
- */
-bool QUmlConditionalNode::mustIsolate() const
-{
- return _mustIsolate;
-}
-
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlConditionalNode::node() const
+QUmlConditionalNode::QUmlConditionalNode(bool createQObject) :
+ QUmlStructuredActivityNode(false),
+ _isAssured(false),
+ _isDeterminate(false)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
+ if (createQObject)
+ _qObject = new QUmlConditionalNodeObject(this);
}
-const QSet<QUmlInputPin *> QUmlConditionalNode::structuredNodeInput() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_structuredNodeInput));
-}
-
-/*!
- A variable defined in the scope of the structured activity node. It has no value and may not be accessed
- */
-const QSet<QUmlVariable *> QUmlConditionalNode::variable() const
+QUmlConditionalNode::~QUmlConditionalNode()
{
- return *(reinterpret_cast<const QSet<QUmlVariable *> *>(&_variable));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ConditionalNode]
+// OWNED ATTRIBUTES
/*!
Set of clauses composing the conditional.
*/
-const QSet<QUmlClause *> QUmlConditionalNode::clause() const
+const QSet<QUmlClause *>
+QUmlConditionalNode::clause() const
{
- return *(reinterpret_cast<const QSet<QUmlClause *> *>(&_clause));
-}
+ // This is a read-write association end
-/*!
- If true, the modeler asserts that at least one test will succeed.
- */
-bool QUmlConditionalNode::isAssured() const
-{
- return _isAssured;
+ return _clause;
}
-/*!
- If true, the modeler asserts that at most one test will succeed.
- */
-bool QUmlConditionalNode::isDeterminate() const
+void QUmlConditionalNode::addClause(QUmlClause *clause)
{
- return _isDeterminate;
-}
+ // This is a read-write association end
-/*!
- A list of output pins that constitute the data flow outputs of the conditional.
- */
-const QList<QUmlOutputPin *> QUmlConditionalNode::result() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_result));
-}
-
-// OPERATIONS [Element]
+ if (!_clause.contains(clause)) {
+ _clause.insert(clause);
+ if (clause->asQObject() && this->asQObject())
+ QObject::connect(clause->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeClause(QObject *)));
+ clause->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConditionalNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedElement(clause);
+ }
}
-/*!
- 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.
- */
-bool QUmlConditionalNode::mustBeOwned() const
+void QUmlConditionalNode::removeClause(QUmlClause *clause)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_clause.contains(clause)) {
+ _clause.remove(clause);
+ if (clause->asQObject())
+ clause->asQObject()->setParent(0);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlConditionalNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedElement(clause);
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ If true, the modeler asserts that at least one test will succeed.
*/
-QSet<QUmlPackage *> QUmlConditionalNode::allOwningPackages() const
+bool
+QUmlConditionalNode::isAssured() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlConditionalNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isAssured;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlConditionalNode::separator() const
+void QUmlConditionalNode::setAssured(bool isAssured)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlConditionalNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_isAssured != isAssured) {
+ _isAssured = isAssured;
+ }
}
/*!
- 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.
+ If true, the modeler asserts that at most one test will succeed.
*/
-bool QUmlConditionalNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+bool
+QUmlConditionalNode::isDeterminate() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [Namespace]
+ // This is a read-write property
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlConditionalNode::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _isDeterminate;
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlConditionalNode::getNamesOfMember(QUmlNamedElement *element) const
+void QUmlConditionalNode::setDeterminate(bool isDeterminate)
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write property
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlConditionalNode::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (_isDeterminate != isDeterminate) {
+ _isDeterminate = isDeterminate;
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ A list of output pins that constitute the data flow outputs of the conditional.
*/
-bool QUmlConditionalNode::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConditionalNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlConditionalNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlConditionalNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlConditionalNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlConditionalNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlConditionalNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlConditionalNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlConditionalNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlConditionalNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlConditionalNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlConditionalNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlConditionalNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlConditionalNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
+const QList<QUmlOutputPin *>
+QUmlConditionalNode::result() const
{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlConditionalNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlConditionalNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlConditionalNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
+ return _result;
}
-void QUmlConditionalNode::removeOutgoing(UmlActivityEdge *outgoing)
+void QUmlConditionalNode::addResult(QUmlOutputPin *result)
{
- UmlActivityNode::removeOutgoing(outgoing);
-}
+ // This is a read-write association end
-void QUmlConditionalNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
+ if (!_result.contains(result)) {
+ _result.append(result);
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeResult(QObject *)));
+ result->asQObject()->setParent(this->asQObject());
+ }
}
-void QUmlConditionalNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
+void QUmlConditionalNode::removeResult(QUmlOutputPin *result)
{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlConditionalNode::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
+ if (_result.contains(result)) {
+ _result.removeAll(result);
+ if (result->asQObject())
+ result->asQObject()->setParent(0);
+ }
}
-void QUmlConditionalNode::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlConditionalNode::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlConditionalNode::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlConditionalNode::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlConditionalNode::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlConditionalNode::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlConditionalNode::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlConditionalNode::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlConditionalNode::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlConditionalNode::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlConditionalNode::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlConditionalNode::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
-
-void QUmlConditionalNode::setActivity(QUmlActivity *activity)
-{
- UmlStructuredActivityNode::setActivity(activity);
-}
-
-void QUmlConditionalNode::addEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::addEdge(edge);
-}
-
-void QUmlConditionalNode::removeEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::removeEdge(edge);
-}
-
-void QUmlConditionalNode::setMustIsolate(bool mustIsolate)
-{
- UmlStructuredActivityNode::setMustIsolate(mustIsolate);
-}
-
-void QUmlConditionalNode::addNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::addNode(node);
-}
-
-void QUmlConditionalNode::removeNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::removeNode(node);
-}
-
-void QUmlConditionalNode::addStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::addStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlConditionalNode::removeStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::removeStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlConditionalNode::addVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::addVariable(variable);
-}
-
-void QUmlConditionalNode::removeVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::removeVariable(variable);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ConditionalNode]
-
-void QUmlConditionalNode::addClause(UmlClause *clause)
-{
- UmlConditionalNode::addClause(clause);
-}
-
-void QUmlConditionalNode::removeClause(UmlClause *clause)
-{
- UmlConditionalNode::removeClause(clause);
-}
-
-void QUmlConditionalNode::setAssured(bool isAssured)
-{
- UmlConditionalNode::setAssured(isAssured);
-}
-
-void QUmlConditionalNode::setDeterminate(bool isDeterminate)
-{
- UmlConditionalNode::setDeterminate(isDeterminate);
-}
-
-void QUmlConditionalNode::addResult(UmlOutputPin *result)
-{
- UmlConditionalNode::addResult(result);
-}
-
-void QUmlConditionalNode::removeResult(UmlOutputPin *result)
-{
- UmlConditionalNode::removeResult(result);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlconditionalnode.h b/src/uml/qumlconditionalnode.h
index 5f3cfd70..1c33f235 100644
--- a/src/uml/qumlconditionalnode.h
+++ b/src/uml/qumlconditionalnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconditionalnode_p.h"
+#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,267 +52,37 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
class QUmlClause;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlConditionalNode : public QObject, public UmlConditionalNode
+class Q_UML_EXPORT QUmlConditionalNode : public QUmlStructuredActivityNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [StructuredActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(bool mustIsolate READ mustIsolate)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
- Q_PROPERTY(QSet<QUmlInputPin *> structuredNodeInput READ structuredNodeInput)
- Q_PROPERTY(QSet<QUmlVariable *> variable READ variable)
-
- // Properties [ConditionalNode]
- Q_PROPERTY(QSet<QUmlClause *> clause READ clause)
- Q_PROPERTY(bool isAssured READ isAssured)
- Q_PROPERTY(bool isDeterminate READ isDeterminate)
- Q_PROPERTY(QList<QUmlOutputPin *> result READ result)
-
public:
- Q_INVOKABLE explicit QUmlConditionalNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [StructuredActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE bool mustIsolate() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> structuredNodeInput() const;
- Q_INVOKABLE const QSet<QUmlVariable *> variable() const;
-
- // Owned attributes [ConditionalNode]
- Q_INVOKABLE const QSet<QUmlClause *> clause() const;
- Q_INVOKABLE bool isAssured() const;
- Q_INVOKABLE bool isDeterminate() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ActivityGroup]
-
- // Slots for owned attributes [StructuredActivityNode]
- void setActivity(QUmlActivity *activity);
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- void setMustIsolate(bool mustIsolate);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- void addStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void removeStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
-
- // Slots for owned attributes [ConditionalNode]
- void addClause(UmlClause *clause);
- void removeClause(UmlClause *clause);
+ explicit QUmlConditionalNode(bool createQObject = true);
+ virtual ~QUmlConditionalNode();
+
+ // Owned attributes
+ const QSet<QUmlClause *> clause() const;
+ void addClause(QUmlClause *clause);
+ void removeClause(QUmlClause *clause);
+ bool isAssured() const;
void setAssured(bool isAssured);
+ bool isDeterminate() const;
void setDeterminate(bool isDeterminate);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
+ const QList<QUmlOutputPin *> result() const;
+ void addResult(QUmlOutputPin *result);
+ void removeResult(QUmlOutputPin *result);
+
+protected:
+ QSet<QUmlClause *> _clause;
+ bool _isAssured;
+ bool _isDeterminate;
+ QList<QUmlOutputPin *> _result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConditionalNode *)
-Q_DECLARE_METATYPE(QList<QUmlConditionalNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConditionalNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConditionalNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlconnectableelement.cpp b/src/uml/qumlconnectableelement.cpp
index d1c11b52..f97e8ef9 100644
--- a/src/uml/qumlconnectableelement.cpp
+++ b/src/uml/qumlconnectableelement.cpp
@@ -40,287 +40,93 @@
****************************************************************************/
#include "qumlconnectableelement.h"
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConnectableElementTemplateParameter>
#include <QtUml/QUmlConnectorEnd>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlConnectableElement
+ \class QUmlConnectableElement
\inmodule QtUml
\brief 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.A connectable element may be exposed as a connectable element template parameter.
*/
-
-QUmlConnectableElement::QUmlConnectableElement(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConnectableElement::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConnectableElement::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlConnectableElement::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlConnectableElement::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlConnectableElement::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlConnectableElement::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlConnectableElement::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlConnectableElement::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlConnectableElement::visibility() const
+QUmlConnectableElement::QUmlConnectableElement() :
+ _templateParameter(0)
{
- return _visibility;
}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlConnectableElement::type() const
+QUmlConnectableElement::~QUmlConnectableElement()
{
- return reinterpret_cast<QUmlType *>(_type);
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlConnectableElement::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [ConnectableElement]
+// OWNED ATTRIBUTES
/*!
Denotes a set of connector ends that attaches to this connectable element.
*/
-const QList<QUmlConnectorEnd *> QUmlConnectableElement::end() const
-{
- QList<QUmlConnectorEnd *> r;
- foreach (UmlConnectorEnd *element, UmlConnectableElement::end())
- r.append(reinterpret_cast<QUmlConnectorEnd *>(element));
- return r;
-}
-
-/*!
- The ConnectableElementTemplateParameter for this ConnectableElement parameter.
- */
-QUmlConnectableElementTemplateParameter *QUmlConnectableElement::templateParameter() const
+const QList<QUmlConnectorEnd *>
+QUmlConnectableElement::end() const
{
- return reinterpret_cast<QUmlConnectableElementTemplateParameter *>(_templateParameter);
-}
+ // This is a read-only derived association end
-// OPERATIONS [Element]
+ qWarning("UmlConnectableElement::end(): to be implemented (this is a derived association end)");
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConnectableElement::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return QList<QUmlConnectorEnd *>();
}
-/*!
- 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.
- */
-bool QUmlConnectableElement::mustBeOwned() const
+void QUmlConnectableElement::addEnd(QUmlConnectorEnd *end)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived association end
-// OPERATIONS [NamedElement]
+ qWarning("UmlConnectableElement::end(): to be implemented (this is a derived association end)");
+ Q_UNUSED(end);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlConnectableElement::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlConnectableElement::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (end) {
+ end->setRole(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlConnectableElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlConnectableElement::removeEnd(QUmlConnectorEnd *end)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-only derived association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlConnectableElement::separator() const
-{
- return UmlNamedElement::separator();
-}
+ qWarning("UmlConnectableElement::end(): to be implemented (this is a derived association end)");
+ Q_UNUSED(end);
-// OPERATIONS [ParameterableElement]
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- 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.
- */
-bool QUmlConnectableElement::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (end) {
+ end->setRole(0);
+ }
+ }
}
/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ The ConnectableElementTemplateParameter for this ConnectableElement parameter.
*/
-bool QUmlConnectableElement::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConnectableElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlConnectableElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlConnectableElement::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlConnectableElement::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlConnectableElement::setName(QString name)
+QUmlConnectableElementTemplateParameter *
+QUmlConnectableElement::templateParameter() const
{
- UmlNamedElement::setName(name);
-}
-
-void QUmlConnectableElement::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlConnectableElement::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _templateParameter;
}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlConnectableElement::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlConnectableElement::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
-
void QUmlConnectableElement::setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter)
{
- UmlConnectableElement::setTemplateParameter(templateParameter);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_templateParameter != templateParameter) {
+ _templateParameter = templateParameter;
+ if (templateParameter->asQObject() && this->asQObject())
+ QObject::connect(templateParameter->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTemplateParameter()));
+ }
+}
diff --git a/src/uml/qumlconnectableelement.h b/src/uml/qumlconnectableelement.h
index 14fa6902..c102b8be 100644
--- a/src/uml/qumlconnectableelement.h
+++ b/src/uml/qumlconnectableelement.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconnectableelement_p.h"
+#include <QtUml/QUmlTypedElement>
+#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,114 +53,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConnectableElementTemplateParameter;
class QUmlConnectorEnd;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlConnectableElement : public QObject, public UmlConnectableElement
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [ConnectableElement]
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QUmlConnectableElementTemplateParameter * templateParameter READ templateParameter)
+class Q_UML_EXPORT QUmlConnectableElement : public virtual QUmlTypedElement, public QUmlParameterableElement
+{
public:
- Q_DECL_HIDDEN explicit QUmlConnectableElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
+ virtual ~QUmlConnectableElement();
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [ConnectableElement]
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QUmlConnectableElementTemplateParameter *templateParameter() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
+ // Owned attributes
+ const QList<QUmlConnectorEnd *> end() const;
+ Q_DECL_HIDDEN void addEnd(QUmlConnectorEnd *end);
+ Q_DECL_HIDDEN void removeEnd(QUmlConnectorEnd *end);
+ QUmlConnectableElementTemplateParameter *templateParameter() const;
+ void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
+protected:
+ explicit QUmlConnectableElement();
- // Slots for owned attributes [ConnectableElement]
- void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
+ QUmlConnectableElementTemplateParameter *_templateParameter;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConnectableElement *)
-Q_DECLARE_METATYPE(QList<QUmlConnectableElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConnectableElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConnectableElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlconnectableelementtemplateparameter.cpp b/src/uml/qumlconnectableelementtemplateparameter.cpp
index 618b0f73..0a1c56bb 100644
--- a/src/uml/qumlconnectableelementtemplateparameter.cpp
+++ b/src/uml/qumlconnectableelementtemplateparameter.cpp
@@ -40,158 +40,54 @@
****************************************************************************/
#include "qumlconnectableelementtemplateparameter.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlTemplateSignature>
+#include "private/qumlconnectableelementtemplateparameterobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlConnectableElement>
/*!
- \class UmlConnectableElementTemplateParameter
+ \class QUmlConnectableElementTemplateParameter
\inmodule QtUml
\brief A connectable element template parameter exposes a connectable element as a formal parameter for a template.
*/
-
-QUmlConnectableElementTemplateParameter::QUmlConnectableElementTemplateParameter(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConnectableElementTemplateParameter::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConnectableElementTemplateParameter::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlConnectableElementTemplateParameter::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [TemplateParameter]
-
-/*!
- The element that is the default for this formal template parameter.
- */
-QUmlParameterableElement *QUmlConnectableElementTemplateParameter::default_() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_default_);
-}
-
-/*!
- The element that is owned by this template parameter for the purpose of providing a default.
- */
-QUmlParameterableElement *QUmlConnectableElementTemplateParameter::ownedDefault() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedDefault);
-}
-
-/*!
- The element that is owned by this template parameter.
- */
-QUmlParameterableElement *QUmlConnectableElementTemplateParameter::ownedParameteredElement() const
+QUmlConnectableElementTemplateParameter::QUmlConnectableElementTemplateParameter(bool createQObject) :
+ QUmlTemplateParameter(false),
+ _parameteredElement(0)
{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedParameteredElement);
+ if (createQObject)
+ _qObject = new QUmlConnectableElementTemplateParameterObject(this);
}
-/*!
- The template signature that owns this template parameter.
- */
-QUmlTemplateSignature *QUmlConnectableElementTemplateParameter::signature() const
+QUmlConnectableElementTemplateParameter::~QUmlConnectableElementTemplateParameter()
{
- return reinterpret_cast<QUmlTemplateSignature *>(_signature);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ConnectableElementTemplateParameter]
+// OWNED ATTRIBUTES
/*!
The ConnectableElement for this template parameter.
*/
-QUmlConnectableElement *QUmlConnectableElementTemplateParameter::parameteredElement() const
-{
- return reinterpret_cast<QUmlConnectableElement *>(_parameteredElement);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConnectableElementTemplateParameter::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConnectableElementTemplateParameter::mustBeOwned() const
+QUmlConnectableElement *
+QUmlConnectableElementTemplateParameter::parameteredElement() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConnectableElementTemplateParameter::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _parameteredElement;
}
-void QUmlConnectableElementTemplateParameter::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
-
-void QUmlConnectableElementTemplateParameter::setDefault(QUmlParameterableElement *default_)
-{
- UmlTemplateParameter::setDefault(default_);
-}
-
-void QUmlConnectableElementTemplateParameter::setOwnedDefault(QUmlParameterableElement *ownedDefault)
-{
- UmlTemplateParameter::setOwnedDefault(ownedDefault);
-}
-
-void QUmlConnectableElementTemplateParameter::setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement)
-{
- UmlTemplateParameter::setOwnedParameteredElement(ownedParameteredElement);
-}
-
-void QUmlConnectableElementTemplateParameter::setSignature(QUmlTemplateSignature *signature)
-{
- UmlTemplateParameter::setSignature(signature);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElementTemplateParameter]
-
void QUmlConnectableElementTemplateParameter::setParameteredElement(QUmlConnectableElement *parameteredElement)
{
- UmlConnectableElementTemplateParameter::setParameteredElement(parameteredElement);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_parameteredElement != parameteredElement) {
+ _parameteredElement = parameteredElement;
+ if (parameteredElement->asQObject() && this->asQObject())
+ QObject::connect(parameteredElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setParameteredElement()));
+ }
+}
diff --git a/src/uml/qumlconnectableelementtemplateparameter.h b/src/uml/qumlconnectableelementtemplateparameter.h
index 66628c18..94cccdd0 100644
--- a/src/uml/qumlconnectableelementtemplateparameter.h
+++ b/src/uml/qumlconnectableelementtemplateparameter.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconnectableelementtemplateparameter_p.h"
+#include <QtUml/QUmlTemplateParameter>
+
QT_BEGIN_HEADER
@@ -52,72 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConnectableElement;
-class QUmlElement;
-class QUmlParameterableElement;
-class QUmlTemplateSignature;
-class Q_UML_EXPORT QUmlConnectableElementTemplateParameter : public QObject, public UmlConnectableElementTemplateParameter
+class Q_UML_EXPORT QUmlConnectableElementTemplateParameter : public QUmlTemplateParameter
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateParameter]
- Q_PROPERTY(QUmlParameterableElement * default_ READ default_)
- Q_PROPERTY(QUmlParameterableElement * ownedDefault READ ownedDefault)
- Q_PROPERTY(QUmlParameterableElement * ownedParameteredElement READ ownedParameteredElement)
- Q_PROPERTY(QUmlTemplateSignature * signature READ signature)
-
- // Properties [ConnectableElementTemplateParameter]
- Q_PROPERTY(QUmlConnectableElement * parameteredElement READ parameteredElement)
-
public:
- Q_INVOKABLE explicit QUmlConnectableElementTemplateParameter(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [TemplateParameter]
- Q_INVOKABLE QUmlParameterableElement *default_() const;
- Q_INVOKABLE QUmlParameterableElement *ownedDefault() const;
- Q_INVOKABLE QUmlParameterableElement *ownedParameteredElement() const;
- Q_INVOKABLE QUmlTemplateSignature *signature() const;
+ explicit QUmlConnectableElementTemplateParameter(bool createQObject = true);
+ virtual ~QUmlConnectableElementTemplateParameter();
- // Owned attributes [ConnectableElementTemplateParameter]
- Q_INVOKABLE QUmlConnectableElement *parameteredElement() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateParameter]
- void setDefault(QUmlParameterableElement *default_);
- void setOwnedDefault(QUmlParameterableElement *ownedDefault);
- void setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement);
- void setSignature(QUmlTemplateSignature *signature);
-
- // Slots for owned attributes [ConnectableElementTemplateParameter]
+ // Owned attributes
+ QUmlConnectableElement *parameteredElement() const;
void setParameteredElement(QUmlConnectableElement *parameteredElement);
+
+protected:
+ QUmlConnectableElement *_parameteredElement;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConnectableElementTemplateParameter *)
-Q_DECLARE_METATYPE(QList<QUmlConnectableElementTemplateParameter *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConnectableElementTemplateParameter *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConnectableElementTemplateParameter) *)
QT_END_HEADER
diff --git a/src/uml/qumlconnectionpointreference.cpp b/src/uml/qumlconnectionpointreference.cpp
index 4c7934a1..67faa499 100644
--- a/src/uml/qumlconnectionpointreference.cpp
+++ b/src/uml/qumlconnectionpointreference.cpp
@@ -40,311 +40,121 @@
****************************************************************************/
#include "qumlconnectionpointreference.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
+#include "private/qumlconnectionpointreferenceobject_p.h"
+
#include <QtUml/QUmlPseudostate>
-#include <QtUml/QUmlRegion>
#include <QtUml/QUmlState>
-#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTransition>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlConnectionPointReference
+ \class QUmlConnectionPointReference
\inmodule QtUml
\brief A connection point reference represents a usage (as part of a submachine state) of an entry/exit point defined in the statemachine reference by the submachine state.
*/
-
-QUmlConnectionPointReference::QUmlConnectionPointReference(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConnectionPointReference::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConnectionPointReference::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlConnectionPointReference::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlConnectionPointReference::clientDependency() const
+QUmlConnectionPointReference::QUmlConnectionPointReference(bool createQObject) :
+ _state(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlConnectionPointReferenceObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlConnectionPointReference::name() const
+QUmlConnectionPointReference::~QUmlConnectionPointReference()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlConnectionPointReference::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+// OWNED ATTRIBUTES
/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlConnectionPointReference::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
+ The entryPoint kind pseudo states corresponding to this connection point.
*/
-QString QUmlConnectionPointReference::qualifiedName() const
+const QSet<QUmlPseudostate *>
+QUmlConnectionPointReference::entry() const
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlConnectionPointReference::visibility() const
-{
- return _visibility;
+ return _entry;
}
-// OWNED ATTRIBUTES [Vertex]
-
-/*!
- The region that contains this vertex.
- */
-QUmlRegion *QUmlConnectionPointReference::container() const
+void QUmlConnectionPointReference::addEntry(QUmlPseudostate *entry)
{
- return reinterpret_cast<QUmlRegion *>(_container);
-}
+ // This is a read-write association end
-/*!
- Specifies the transitions entering this vertex.
- */
-const QSet<QUmlTransition *> QUmlConnectionPointReference::incoming() const
-{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::incoming())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
+ if (!_entry.contains(entry)) {
+ _entry.insert(entry);
+ if (entry->asQObject() && this->asQObject())
+ QObject::connect(entry->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEntry(QObject *)));
+ }
}
-/*!
- Specifies the transitions departing from this vertex.
- */
-const QSet<QUmlTransition *> QUmlConnectionPointReference::outgoing() const
+void QUmlConnectionPointReference::removeEntry(QUmlPseudostate *entry)
{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::outgoing())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [ConnectionPointReference]
+ // This is a read-write association end
-/*!
- The entryPoint kind pseudo states corresponding to this connection point.
- */
-const QSet<QUmlPseudostate *> QUmlConnectionPointReference::entry() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_entry));
+ if (_entry.contains(entry)) {
+ _entry.remove(entry);
+ }
}
/*!
The exitPoints kind pseudo states corresponding to this connection point.
*/
-const QSet<QUmlPseudostate *> QUmlConnectionPointReference::exit() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_exit));
-}
-
-/*!
- The State in which the connection point refreshens are defined.
- */
-QUmlState *QUmlConnectionPointReference::state() const
-{
- return reinterpret_cast<QUmlState *>(_state);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConnectionPointReference::allOwnedElements() const
+const QSet<QUmlPseudostate *>
+QUmlConnectionPointReference::exit() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlConnectionPointReference::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _exit;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlConnectionPointReference::allNamespaces() const
+void QUmlConnectionPointReference::addExit(QUmlPseudostate *exit)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlConnectionPointReference::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (!_exit.contains(exit)) {
+ _exit.insert(exit);
+ if (exit->asQObject() && this->asQObject())
+ QObject::connect(exit->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExit(QObject *)));
+ }
}
-/*!
- 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.
- */
-bool QUmlConnectionPointReference::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlConnectionPointReference::removeExit(QUmlPseudostate *exit)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlConnectionPointReference::separator() const
-{
- return UmlNamedElement::separator();
+ if (_exit.contains(exit)) {
+ _exit.remove(exit);
+ }
}
-// OPERATIONS [Vertex]
-
/*!
- The operation containingStateMachine() returns the state machine in which this Vertex is defined
+ The State in which the connection point refreshens are defined.
*/
-QUmlStateMachine *QUmlConnectionPointReference::containingStateMachine() const
+QUmlState *
+QUmlConnectionPointReference::state() const
{
- return reinterpret_cast<QUmlStateMachine *>(UmlVertex::containingStateMachine());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConnectionPointReference::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlConnectionPointReference::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _state;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlConnectionPointReference::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlConnectionPointReference::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlConnectionPointReference::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlConnectionPointReference::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlConnectionPointReference::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Vertex]
-
-void QUmlConnectionPointReference::setContainer(QUmlRegion *container)
-{
- UmlVertex::setContainer(container);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ConnectionPointReference]
-
-void QUmlConnectionPointReference::addEntry(UmlPseudostate *entry)
+void QUmlConnectionPointReference::setState(QUmlState *state)
{
- UmlConnectionPointReference::addEntry(entry);
-}
+ // This is a read-write association end
-void QUmlConnectionPointReference::removeEntry(UmlPseudostate *entry)
-{
- UmlConnectionPointReference::removeEntry(entry);
-}
+ if (_state != state) {
+ // Adjust subsetted properties
-void QUmlConnectionPointReference::addExit(UmlPseudostate *exit)
-{
- UmlConnectionPointReference::addExit(exit);
-}
+ _state = state;
+ if (state->asQObject() && this->asQObject())
+ QObject::connect(state->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setState()));
-void QUmlConnectionPointReference::removeExit(UmlPseudostate *exit)
-{
- UmlConnectionPointReference::removeExit(exit);
+ // Adjust subsetted properties
+ setNamespace(state);
+ }
}
-void QUmlConnectionPointReference::setState(QUmlState *state)
-{
- UmlConnectionPointReference::setState(state);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlconnectionpointreference.h b/src/uml/qumlconnectionpointreference.h
index cd3a724e..2653530d 100644
--- a/src/uml/qumlconnectionpointreference.h
+++ b/src/uml/qumlconnectionpointreference.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconnectionpointreference_p.h"
+#include <QtUml/QUmlVertex>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,114 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlPseudostate;
-class QUmlRegion;
class QUmlState;
-class QUmlStateMachine;
-class QUmlStringExpression;
-class QUmlTransition;
-class Q_UML_EXPORT QUmlConnectionPointReference : public QObject, public UmlConnectionPointReference
+class Q_UML_EXPORT QUmlConnectionPointReference : public QUmlVertex
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Vertex]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QSet<QUmlTransition *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlTransition *> outgoing READ outgoing)
-
- // Properties [ConnectionPointReference]
- Q_PROPERTY(QSet<QUmlPseudostate *> entry READ entry)
- Q_PROPERTY(QSet<QUmlPseudostate *> exit READ exit)
- Q_PROPERTY(QUmlState * state READ state)
-
public:
- Q_INVOKABLE explicit QUmlConnectionPointReference(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Vertex]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE const QSet<QUmlTransition *> incoming() const;
- Q_INVOKABLE const QSet<QUmlTransition *> outgoing() const;
-
- // Owned attributes [ConnectionPointReference]
- Q_INVOKABLE const QSet<QUmlPseudostate *> entry() const;
- Q_INVOKABLE const QSet<QUmlPseudostate *> exit() const;
- Q_INVOKABLE QUmlState *state() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Vertex]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Vertex]
- void setContainer(QUmlRegion *container);
-
- // Slots for owned attributes [ConnectionPointReference]
- void addEntry(UmlPseudostate *entry);
- void removeEntry(UmlPseudostate *entry);
- void addExit(UmlPseudostate *exit);
- void removeExit(UmlPseudostate *exit);
+ explicit QUmlConnectionPointReference(bool createQObject = true);
+ virtual ~QUmlConnectionPointReference();
+
+ // Owned attributes
+ const QSet<QUmlPseudostate *> entry() const;
+ void addEntry(QUmlPseudostate *entry);
+ void removeEntry(QUmlPseudostate *entry);
+ const QSet<QUmlPseudostate *> exit() const;
+ void addExit(QUmlPseudostate *exit);
+ void removeExit(QUmlPseudostate *exit);
+ QUmlState *state() const;
void setState(QUmlState *state);
+
+protected:
+ QSet<QUmlPseudostate *> _entry;
+ QSet<QUmlPseudostate *> _exit;
+ QUmlState *_state;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConnectionPointReference *)
-Q_DECLARE_METATYPE(QList<QUmlConnectionPointReference *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConnectionPointReference *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConnectionPointReference) *)
QT_END_HEADER
diff --git a/src/uml/qumlconnector.cpp b/src/uml/qumlconnector.cpp
index d4629c40..5af1de42 100644
--- a/src/uml/qumlconnector.cpp
+++ b/src/uml/qumlconnector.cpp
@@ -40,364 +40,188 @@
****************************************************************************/
#include "qumlconnector.h"
+#include "private/qumlconnectorobject_p.h"
+
#include <QtUml/QUmlAssociation>
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConnectorEnd>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlConnector
+ \class QUmlConnector
\inmodule QtUml
\brief A delegation connector is a connector that links the external contract of a component (as specified by its ports) to the realization of that behavior. It represents the forwarding of events (operation requests and events): a signal that arrives at a port that has a delegation connector to one or more parts or ports on parts will be passed on to those targets for handling. An assembly connector is a connector between two or more parts or ports on parts that defines that one or more parts provide the services that other parts use.Specifies a link that enables communication between two or more instances. This link may be an instance of an association, or it may represent the possibility of the instances being able to communicate because their identities are known by virtue of being passed in as parameters, held in variables or slots, or because the communicating instances are the same instance. The link may be realized by something as simple as a pointer or by something as complex as a network connection. In contrast to associations, which specify links between any instance of the associated classifiers, connectors specify links between instances playing the connected parts only.
*/
-
-QUmlConnector::QUmlConnector(QObject *parent) :
- QObject(parent)
+QUmlConnector::QUmlConnector(bool createQObject) :
+ _type(0)
{
+ if (createQObject)
+ _qObject = new QUmlConnectorObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConnector::ownedComment() const
+QUmlConnector::~QUmlConnector()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConnector::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The set of Behaviors that specify the valid interaction patterns across the connector.
*/
-QUmlElement *QUmlConnector::owner() const
+const QSet<QUmlBehavior *>
+QUmlConnector::contract() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlConnector::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _contract;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlConnector::name() const
+void QUmlConnector::addContract(QUmlBehavior *contract)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlConnector::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (!_contract.contains(contract)) {
+ _contract.insert(contract);
+ if (contract->asQObject() && this->asQObject())
+ QObject::connect(contract->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeContract(QObject *)));
+ }
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlConnector::namespace_() const
+void QUmlConnector::removeContract(QUmlBehavior *contract)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlConnector::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ if (_contract.contains(contract)) {
+ _contract.remove(contract);
+ }
}
/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
+ 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.
*/
-QtUml::VisibilityKind QUmlConnector::visibility() const
+const QList<QUmlConnectorEnd *>
+QUmlConnector::end() const
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlConnector::isLeaf() const
-{
- return _isLeaf;
+ return _end;
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlConnector::redefinedElement() const
+void QUmlConnector::addEnd(QUmlConnectorEnd *end)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
+ // This is a read-write association end
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlConnector::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ if (!_end.contains(end)) {
+ _end.append(end);
+ if (end->asQObject() && this->asQObject())
+ QObject::connect(end->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEnd(QObject *)));
+ end->asQObject()->setParent(this->asQObject());
-// OWNED ATTRIBUTES [Feature]
-
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlConnector::featuringClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
+ // Adjust subsetted properties
+ addOwnedElement(end);
+ }
}
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlConnector::isStatic() const
+void QUmlConnector::removeEnd(QUmlConnectorEnd *end)
{
- return _isStatic;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Connector]
+ if (_end.contains(end)) {
+ _end.removeAll(end);
+ if (end->asQObject())
+ end->asQObject()->setParent(0);
-/*!
- The set of Behaviors that specify the valid interaction patterns across the connector.
- */
-const QSet<QUmlBehavior *> QUmlConnector::contract() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_contract));
-}
-
-/*!
- 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.
- */
-const QList<QUmlConnectorEnd *> QUmlConnector::end() const
-{
- return *(reinterpret_cast<const QList<QUmlConnectorEnd *> *>(&_end));
+ // Adjust subsetted properties
+ removeOwnedElement(end);
+ }
}
/*!
Indicates the kind of connector. This is derived: a connector with one or more ends connected to a Port which is not on a Part and which is not a behavior port is a delegation; otherwise it is an assembly.
*/
-QtUml::ConnectorKind QUmlConnector::kind() const
-{
- return UmlConnector::kind();
-}
-
-/*!
- A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced.
- */
-const QSet<QUmlConnector *> QUmlConnector::redefinedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_redefinedConnector));
-}
-
-/*!
- An optional association that specifies the link corresponding to this connector.
- */
-QUmlAssociation *QUmlConnector::type() const
-{
- return reinterpret_cast<QUmlAssociation *>(_type);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConnector::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConnector::mustBeOwned() const
+QtUml::ConnectorKind
+QUmlConnector::kind() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-only derived property
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlConnector::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlConnector::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ qWarning("UmlConnector::kind(): to be implemented (this is a derived property)");
-/*!
- 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.
- */
-bool QUmlConnector::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return QtUml::ConnectorKind();
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlConnector::separator() const
+void QUmlConnector::setKind(QtUml::ConnectorKind kind)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-only derived property
-// OPERATIONS [RedefinableElement]
+ qWarning("UmlConnector::kind(): to be implemented (this is a derived property)");
+ Q_UNUSED(kind);
-/*!
- 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.
- */
-bool QUmlConnector::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.
+ A connector may be redefined when its containing classifier is specialized. The redefining connector may have a type that specializes the type of the redefined connector. The types of the connector ends of the redefining connector may specialize the types of the connector ends of the redefined connector. The properties of the connector ends of the redefining connector may be replaced.
*/
-bool QUmlConnector::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+const QSet<QUmlConnector *>
+QUmlConnector::redefinedConnector() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConnector::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _redefinedConnector;
}
-void QUmlConnector::removeOwnedComment(UmlComment *ownedComment)
+void QUmlConnector::addRedefinedConnector(QUmlConnector *redefinedConnector)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_redefinedConnector.contains(redefinedConnector)) {
+ _redefinedConnector.insert(redefinedConnector);
+ if (redefinedConnector->asQObject() && this->asQObject())
+ QObject::connect(redefinedConnector->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedConnector(QObject *)));
-void QUmlConnector::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ addRedefinedElement(redefinedConnector);
+ }
}
-void QUmlConnector::removeClientDependency(UmlDependency *clientDependency)
+void QUmlConnector::removeRedefinedConnector(QUmlConnector *redefinedConnector)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlConnector::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlConnector::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlConnector::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+ if (_redefinedConnector.contains(redefinedConnector)) {
+ _redefinedConnector.remove(redefinedConnector);
-void QUmlConnector::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ // Adjust subsetted properties
+ removeRedefinedElement(redefinedConnector);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlConnector::setStatic(bool isStatic)
-{
- UmlFeature::setStatic(isStatic);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Connector]
-
-void QUmlConnector::addContract(UmlBehavior *contract)
-{
- UmlConnector::addContract(contract);
-}
-
-void QUmlConnector::removeContract(UmlBehavior *contract)
-{
- UmlConnector::removeContract(contract);
-}
-
-void QUmlConnector::addEnd(UmlConnectorEnd *end)
-{
- UmlConnector::addEnd(end);
-}
-
-void QUmlConnector::removeEnd(UmlConnectorEnd *end)
-{
- UmlConnector::removeEnd(end);
-}
-
-void QUmlConnector::addRedefinedConnector(UmlConnector *redefinedConnector)
+/*!
+ An optional association that specifies the link corresponding to this connector.
+ */
+QUmlAssociation *
+QUmlConnector::type() const
{
- UmlConnector::addRedefinedConnector(redefinedConnector);
-}
+ // This is a read-write association end
-void QUmlConnector::removeRedefinedConnector(UmlConnector *redefinedConnector)
-{
- UmlConnector::removeRedefinedConnector(redefinedConnector);
+ return _type;
}
void QUmlConnector::setType(QUmlAssociation *type)
{
- UmlConnector::setType(type);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_type != type) {
+ _type = type;
+ if (type->asQObject() && this->asQObject())
+ QObject::connect(type->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setType()));
+ }
+}
diff --git a/src/uml/qumlconnector.h b/src/uml/qumlconnector.h
index ab4bc80f..593a7139 100644
--- a/src/uml/qumlconnector.h
+++ b/src/uml/qumlconnector.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconnector_p.h"
+#include <QtUml/QUmlFeature>
+
#include <QtUml/QtUmlNamespace>
@@ -56,130 +56,39 @@ QT_MODULE(QtUml)
class QUmlAssociation;
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
class QUmlConnectorEnd;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlConnector : public QObject, public UmlConnector
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [Connector]
- Q_PROPERTY(QSet<QUmlBehavior *> contract READ contract)
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QtUml::ConnectorKind kind READ kind)
- Q_PROPERTY(QSet<QUmlConnector *> redefinedConnector READ redefinedConnector)
- Q_PROPERTY(QUmlAssociation * type READ type)
+class Q_UML_EXPORT QUmlConnector : public QUmlFeature
+{
public:
- Q_INVOKABLE explicit QUmlConnector(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [Connector]
- Q_INVOKABLE const QSet<QUmlBehavior *> contract() const;
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QtUml::ConnectorKind kind() const;
- Q_INVOKABLE const QSet<QUmlConnector *> redefinedConnector() const;
- Q_INVOKABLE QUmlAssociation *type() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [Connector]
- void addContract(UmlBehavior *contract);
- void removeContract(UmlBehavior *contract);
- void addEnd(UmlConnectorEnd *end);
- void removeEnd(UmlConnectorEnd *end);
- void addRedefinedConnector(UmlConnector *redefinedConnector);
- void removeRedefinedConnector(UmlConnector *redefinedConnector);
+ explicit QUmlConnector(bool createQObject = true);
+ virtual ~QUmlConnector();
+
+ // Owned attributes
+ const QSet<QUmlBehavior *> contract() const;
+ void addContract(QUmlBehavior *contract);
+ void removeContract(QUmlBehavior *contract);
+ const QList<QUmlConnectorEnd *> end() const;
+ void addEnd(QUmlConnectorEnd *end);
+ void removeEnd(QUmlConnectorEnd *end);
+ QtUml::ConnectorKind kind() const;
+ Q_DECL_HIDDEN void setKind(QtUml::ConnectorKind kind);
+ const QSet<QUmlConnector *> redefinedConnector() const;
+ void addRedefinedConnector(QUmlConnector *redefinedConnector);
+ void removeRedefinedConnector(QUmlConnector *redefinedConnector);
+ QUmlAssociation *type() const;
void setType(QUmlAssociation *type);
+
+protected:
+ QSet<QUmlBehavior *> _contract;
+ QList<QUmlConnectorEnd *> _end;
+ QSet<QUmlConnector *> _redefinedConnector;
+ QUmlAssociation *_type;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConnector *)
-Q_DECLARE_METATYPE(QList<QUmlConnector *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConnector *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConnector) *)
QT_END_HEADER
diff --git a/src/uml/qumlconnectorend.cpp b/src/uml/qumlconnectorend.cpp
index c8166d3c..0f0239f3 100644
--- a/src/uml/qumlconnectorend.cpp
+++ b/src/uml/qumlconnectorend.cpp
@@ -40,264 +40,102 @@
****************************************************************************/
#include "qumlconnectorend.h"
-#include <QtUml/QUmlComment>
+#include "private/qumlconnectorendobject_p.h"
+
#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlMultiplicityElement>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlConnectorEnd
+ \class QUmlConnectorEnd
\inmodule QtUml
\brief 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.
*/
-
-QUmlConnectorEnd::QUmlConnectorEnd(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConnectorEnd::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConnectorEnd::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlConnectorEnd::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlConnectorEnd::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlConnectorEnd::isUnique() const
+QUmlConnectorEnd::QUmlConnectorEnd(bool createQObject) :
+ _partWithPort(0),
+ _role(0)
{
- return _isUnique;
+ if (createQObject)
+ _qObject = new QUmlConnectorEndObject(this);
}
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlConnectorEnd::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlConnectorEnd::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlConnectorEnd::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlConnectorEnd::upperValue() const
+QUmlConnectorEnd::~QUmlConnectorEnd()
{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ConnectorEnd]
+// OWNED ATTRIBUTES
/*!
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.
*/
-QUmlProperty *QUmlConnectorEnd::definingEnd() const
+QUmlProperty *
+QUmlConnectorEnd::definingEnd() const
{
- return reinterpret_cast<QUmlProperty *>(UmlConnectorEnd::definingEnd());
-}
+ // This is a read-only derived association end
-/*!
- Indicates the role of the internal structure of a classifier with the port to which the connector end is attached.
- */
-QUmlProperty *QUmlConnectorEnd::partWithPort() const
-{
- return reinterpret_cast<QUmlProperty *>(_partWithPort);
-}
+ qWarning("UmlConnectorEnd::definingEnd(): to be implemented (this is a derived association end)");
-/*!
- The connectable element attached at this connector end. When an instance of the containing classifier is created, a link may (depending on the multiplicities) be created to an instance of the classifier that types this connectable element.
- */
-QUmlConnectableElement *QUmlConnectorEnd::role() const
-{
- return reinterpret_cast<QUmlConnectableElement *>(_role);
+ return 0;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConnectorEnd::allOwnedElements() const
+void QUmlConnectorEnd::setDefiningEnd(QUmlProperty *definingEnd)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConnectorEnd::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived association end
-// OPERATIONS [MultiplicityElement]
+ qWarning("UmlConnectorEnd::definingEnd(): to be implemented (this is a derived association end)");
+ Q_UNUSED(definingEnd);
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlConnectorEnd::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlConnectorEnd::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
+ Indicates the role of the internal structure of a classifier with the port to which the connector end is attached.
*/
-bool QUmlConnectorEnd::includesMultiplicity(QUmlMultiplicityElement *M) const
+QUmlProperty *
+QUmlConnectorEnd::partWithPort() const
{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
+ // This is a read-write association end
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlConnectorEnd::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
+ return _partWithPort;
}
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlConnectorEnd::isMultivalued() const
+void QUmlConnectorEnd::setPartWithPort(QUmlProperty *partWithPort)
{
- return UmlMultiplicityElement::isMultivalued();
-}
+ // This is a read-write association end
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlConnectorEnd::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
+ if (_partWithPort != partWithPort) {
+ _partWithPort = partWithPort;
+ if (partWithPort->asQObject() && this->asQObject())
+ QObject::connect(partWithPort->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setPartWithPort()));
+ }
}
/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
+ 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.
*/
-int QUmlConnectorEnd::upperBound() const
+QUmlConnectableElement *
+QUmlConnectorEnd::role() const
{
- return UmlMultiplicityElement::upperBound();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlConnectorEnd::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlConnectorEnd::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlConnectorEnd::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlConnectorEnd::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlConnectorEnd::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlConnectorEnd::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlConnectorEnd::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlConnectorEnd::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ConnectorEnd]
-
-void QUmlConnectorEnd::setPartWithPort(QUmlProperty *partWithPort)
-{
- UmlConnectorEnd::setPartWithPort(partWithPort);
+ return _role;
}
void QUmlConnectorEnd::setRole(QUmlConnectableElement *role)
{
- UmlConnectorEnd::setRole(role);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_role != role) {
+ _role = role;
+ if (role->asQObject() && this->asQObject())
+ QObject::connect(role->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRole()));
+ }
+}
diff --git a/src/uml/qumlconnectorend.h b/src/uml/qumlconnectorend.h
index 3638dd75..0defec7b 100644
--- a/src/uml/qumlconnectorend.h
+++ b/src/uml/qumlconnectorend.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconnectorend_p.h"
+#include <QtUml/QUmlMultiplicityElement>
+
QT_BEGIN_HEADER
@@ -52,93 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConnectableElement;
-class QUmlElement;
-class QUmlMultiplicityElement;
class QUmlProperty;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlConnectorEnd : public QObject, public UmlConnectorEnd
+class Q_UML_EXPORT QUmlConnectorEnd : public QUmlMultiplicityElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [ConnectorEnd]
- Q_PROPERTY(QUmlProperty * definingEnd READ definingEnd)
- Q_PROPERTY(QUmlProperty * partWithPort READ partWithPort)
- Q_PROPERTY(QUmlConnectableElement * role READ role)
-
public:
- Q_INVOKABLE explicit QUmlConnectorEnd(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
+ explicit QUmlConnectorEnd(bool createQObject = true);
+ virtual ~QUmlConnectorEnd();
- // Owned attributes [ConnectorEnd]
- Q_INVOKABLE QUmlProperty *definingEnd() const;
- Q_INVOKABLE QUmlProperty *partWithPort() const;
- Q_INVOKABLE QUmlConnectableElement *role() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [ConnectorEnd]
+ // Owned attributes
+ QUmlProperty *definingEnd() const;
+ Q_DECL_HIDDEN void setDefiningEnd(QUmlProperty *definingEnd);
+ QUmlProperty *partWithPort() const;
void setPartWithPort(QUmlProperty *partWithPort);
+ QUmlConnectableElement *role() const;
void setRole(QUmlConnectableElement *role);
+
+protected:
+ QUmlProperty *_partWithPort;
+ QUmlConnectableElement *_role;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConnectorEnd *)
-Q_DECLARE_METATYPE(QList<QUmlConnectorEnd *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConnectorEnd *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConnectorEnd) *)
QT_END_HEADER
diff --git a/src/uml/qumlconsiderignorefragment.cpp b/src/uml/qumlconsiderignorefragment.cpp
index f54073af..a23c5eeb 100644
--- a/src/uml/qumlconsiderignorefragment.cpp
+++ b/src/uml/qumlconsiderignorefragment.cpp
@@ -40,350 +40,62 @@
****************************************************************************/
#include "qumlconsiderignorefragment.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGate>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
+#include "private/qumlconsiderignorefragmentobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlNamedElement>
/*!
- \class UmlConsiderIgnoreFragment
+ \class QUmlConsiderIgnoreFragment
\inmodule QtUml
\brief A consider ignore fragment is a kind of combined fragment that is used for the consider and ignore cases, which require lists of pertinent messages to be specified.
*/
-
-QUmlConsiderIgnoreFragment::QUmlConsiderIgnoreFragment(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConsiderIgnoreFragment::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConsiderIgnoreFragment::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlConsiderIgnoreFragment::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlConsiderIgnoreFragment::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlConsiderIgnoreFragment::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlConsiderIgnoreFragment::nameExpression() const
+QUmlConsiderIgnoreFragment::QUmlConsiderIgnoreFragment(bool createQObject) :
+ QUmlCombinedFragment(false)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlConsiderIgnoreFragmentObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlConsiderIgnoreFragment::namespace_() const
+QUmlConsiderIgnoreFragment::~QUmlConsiderIgnoreFragment()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlConsiderIgnoreFragment::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlConsiderIgnoreFragment::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlConsiderIgnoreFragment::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlConsiderIgnoreFragment::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlConsiderIgnoreFragment::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlConsiderIgnoreFragment::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [CombinedFragment]
-
-/*!
- Specifies the gates that form the interface between this CombinedFragment and its surroundings
- */
-const QSet<QUmlGate *> QUmlConsiderIgnoreFragment::cfragmentGate() const
-{
- return *(reinterpret_cast<const QSet<QUmlGate *> *>(&_cfragmentGate));
-}
-
-/*!
- Specifies the operation which defines the semantics of this combination of InteractionFragments.
- */
-QtUml::InteractionOperatorKind QUmlConsiderIgnoreFragment::interactionOperator() const
-{
- return _interactionOperator;
-}
-
-/*!
- The set of operands of the combined fragment.
- */
-const QList<QUmlInteractionOperand *> QUmlConsiderIgnoreFragment::operand() const
-{
- return *(reinterpret_cast<const QList<QUmlInteractionOperand *> *>(&_operand));
-}
-
-// OWNED ATTRIBUTES [ConsiderIgnoreFragment]
+// OWNED ATTRIBUTES
/*!
The set of messages that apply to this fragment
*/
-const QSet<QUmlNamedElement *> QUmlConsiderIgnoreFragment::message() const
+const QSet<QUmlNamedElement *>
+QUmlConsiderIgnoreFragment::message() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_message));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConsiderIgnoreFragment::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConsiderIgnoreFragment::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlConsiderIgnoreFragment::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlConsiderIgnoreFragment::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConsiderIgnoreFragment::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlConsiderIgnoreFragment::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConsiderIgnoreFragment::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlConsiderIgnoreFragment::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlConsiderIgnoreFragment::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlConsiderIgnoreFragment::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlConsiderIgnoreFragment::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlConsiderIgnoreFragment::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlConsiderIgnoreFragment::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlConsiderIgnoreFragment::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
+ return _message;
}
-void QUmlConsiderIgnoreFragment::removeCovered(UmlLifeline *covered)
+void QUmlConsiderIgnoreFragment::addMessage(QUmlNamedElement *message)
{
- UmlInteractionFragment::removeCovered(covered);
-}
+ // This is a read-write association end
-void QUmlConsiderIgnoreFragment::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
+ if (!_message.contains(message)) {
+ _message.insert(message);
+ if (message->asQObject() && this->asQObject())
+ QObject::connect(message->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMessage(QObject *)));
+ }
}
-void QUmlConsiderIgnoreFragment::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
+void QUmlConsiderIgnoreFragment::removeMessage(QUmlNamedElement *message)
{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
+ // This is a read-write association end
-void QUmlConsiderIgnoreFragment::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
+ if (_message.contains(message)) {
+ _message.remove(message);
+ }
}
-void QUmlConsiderIgnoreFragment::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CombinedFragment]
-
-void QUmlConsiderIgnoreFragment::addCfragmentGate(UmlGate *cfragmentGate)
-{
- UmlCombinedFragment::addCfragmentGate(cfragmentGate);
-}
-
-void QUmlConsiderIgnoreFragment::removeCfragmentGate(UmlGate *cfragmentGate)
-{
- UmlCombinedFragment::removeCfragmentGate(cfragmentGate);
-}
-
-void QUmlConsiderIgnoreFragment::setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator)
-{
- UmlCombinedFragment::setInteractionOperator(interactionOperator);
-}
-
-void QUmlConsiderIgnoreFragment::addOperand(UmlInteractionOperand *operand)
-{
- UmlCombinedFragment::addOperand(operand);
-}
-
-void QUmlConsiderIgnoreFragment::removeOperand(UmlInteractionOperand *operand)
-{
- UmlCombinedFragment::removeOperand(operand);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ConsiderIgnoreFragment]
-
-void QUmlConsiderIgnoreFragment::addMessage(UmlNamedElement *message)
-{
- UmlConsiderIgnoreFragment::addMessage(message);
-}
-
-void QUmlConsiderIgnoreFragment::removeMessage(UmlNamedElement *message)
-{
- UmlConsiderIgnoreFragment::removeMessage(message);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlconsiderignorefragment.h b/src/uml/qumlconsiderignorefragment.h
index d971a300..f280ac11 100644
--- a/src/uml/qumlconsiderignorefragment.h
+++ b/src/uml/qumlconsiderignorefragment.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconsiderignorefragment_p.h"
+#include <QtUml/QUmlCombinedFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,128 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGate;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlConsiderIgnoreFragment : public QObject, public UmlConsiderIgnoreFragment
+class Q_UML_EXPORT QUmlConsiderIgnoreFragment : public QUmlCombinedFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [CombinedFragment]
- Q_PROPERTY(QSet<QUmlGate *> cfragmentGate READ cfragmentGate)
- Q_PROPERTY(QtUml::InteractionOperatorKind interactionOperator READ interactionOperator)
- Q_PROPERTY(QList<QUmlInteractionOperand *> operand READ operand)
-
- // Properties [ConsiderIgnoreFragment]
- Q_PROPERTY(QSet<QUmlNamedElement *> message READ message)
-
public:
- Q_INVOKABLE explicit QUmlConsiderIgnoreFragment(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [CombinedFragment]
- Q_INVOKABLE const QSet<QUmlGate *> cfragmentGate() const;
- Q_INVOKABLE QtUml::InteractionOperatorKind interactionOperator() const;
- Q_INVOKABLE const QList<QUmlInteractionOperand *> operand() const;
-
- // Owned attributes [ConsiderIgnoreFragment]
- Q_INVOKABLE const QSet<QUmlNamedElement *> message() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
+ explicit QUmlConsiderIgnoreFragment(bool createQObject = true);
+ virtual ~QUmlConsiderIgnoreFragment();
- // Slots for owned attributes [CombinedFragment]
- void addCfragmentGate(UmlGate *cfragmentGate);
- void removeCfragmentGate(UmlGate *cfragmentGate);
- void setInteractionOperator(QtUml::InteractionOperatorKind interactionOperator);
- void addOperand(UmlInteractionOperand *operand);
- void removeOperand(UmlInteractionOperand *operand);
+ // Owned attributes
+ const QSet<QUmlNamedElement *> message() const;
+ void addMessage(QUmlNamedElement *message);
+ void removeMessage(QUmlNamedElement *message);
- // Slots for owned attributes [ConsiderIgnoreFragment]
- void addMessage(UmlNamedElement *message);
- void removeMessage(UmlNamedElement *message);
+protected:
+ QSet<QUmlNamedElement *> _message;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConsiderIgnoreFragment *)
-Q_DECLARE_METATYPE(QList<QUmlConsiderIgnoreFragment *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConsiderIgnoreFragment *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConsiderIgnoreFragment) *)
QT_END_HEADER
diff --git a/src/uml/qumlconstraint.cpp b/src/uml/qumlconstraint.cpp
index e35e0948..05c2de72 100644
--- a/src/uml/qumlconstraint.cpp
+++ b/src/uml/qumlconstraint.cpp
@@ -40,305 +40,123 @@
****************************************************************************/
#include "qumlconstraint.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
+#include "private/qumlconstraintobject_p.h"
+
#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlConstraint
+ \class QUmlConstraint
\inmodule QtUml
\brief A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.
*/
-
-QUmlConstraint::QUmlConstraint(QObject *parent) :
- QObject(parent)
+QUmlConstraint::QUmlConstraint(bool createQObject) :
+ _context(0),
+ _specification(0)
{
+ if (createQObject)
+ _qObject = new QUmlConstraintObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlConstraint::ownedComment() const
+QUmlConstraint::~QUmlConstraint()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlConstraint::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The ordered set of Elements referenced by this Constraint.
*/
-QUmlElement *QUmlConstraint::owner() const
+const QList<QUmlElement *>
+QUmlConstraint::constrainedElement() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
+ // This is a read-write association end
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlConstraint::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ return _constrainedElement;
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlConstraint::templateParameter() const
+void QUmlConstraint::addConstrainedElement(QUmlElement *constrainedElement)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlConstraint::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (!_constrainedElement.contains(constrainedElement)) {
+ _constrainedElement.append(constrainedElement);
+ if (constrainedElement->asQObject() && this->asQObject())
+ QObject::connect(constrainedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConstrainedElement(QObject *)));
+ }
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlConstraint::name() const
+void QUmlConstraint::removeConstrainedElement(QUmlElement *constrainedElement)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlConstraint::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (_constrainedElement.contains(constrainedElement)) {
+ _constrainedElement.removeAll(constrainedElement);
+ }
}
/*!
Specifies the namespace that owns the NamedElement.
*/
-QUmlNamespace *QUmlConstraint::namespace_() const
+QUmlNamespace *
+QUmlConstraint::context() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlConstraint::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _context;
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlConstraint::visibility() const
+void QUmlConstraint::setContext(QUmlNamespace *context)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Constraint]
+ if (_context != context) {
+ // Adjust subsetted properties
-/*!
- The ordered set of Elements referenced by this Constraint.
- */
-const QList<QUmlElement *> QUmlConstraint::constrainedElement() const
-{
- return *(reinterpret_cast<const QList<QUmlElement *> *>(&_constrainedElement));
-}
+ _context = context;
+ if (context->asQObject() && this->asQObject())
+ QObject::connect(context->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setContext()));
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlConstraint::context() const
-{
- return reinterpret_cast<QUmlNamespace *>(_context);
+ // Adjust subsetted properties
+ setNamespace(context);
+ }
}
/*!
A condition that must be true when evaluated in order for the constraint to be satisfied.
*/
-QUmlValueSpecification *QUmlConstraint::specification() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_specification);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlConstraint::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConstraint::mustBeOwned() const
+QUmlValueSpecification *
+QUmlConstraint::specification() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlConstraint::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _specification;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlConstraint::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlConstraint::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlConstraint::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlConstraint::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlConstraint::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlConstraint::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlConstraint::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlConstraint::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlConstraint::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlConstraint::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlConstraint::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlConstraint::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlConstraint::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlConstraint::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Constraint]
-
-void QUmlConstraint::addConstrainedElement(UmlElement *constrainedElement)
+void QUmlConstraint::setSpecification(QUmlValueSpecification *specification)
{
- UmlConstraint::addConstrainedElement(constrainedElement);
-}
+ // This is a read-write association end
-void QUmlConstraint::removeConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::removeConstrainedElement(constrainedElement);
-}
+ if (_specification != specification) {
+ // Adjust subsetted properties
+ removeOwnedElement(_specification);
-void QUmlConstraint::setContext(QUmlNamespace *context)
-{
- UmlConstraint::setContext(context);
-}
+ _specification = specification;
+ if (specification->asQObject() && this->asQObject())
+ QObject::connect(specification->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecification()));
+ specification->asQObject()->setParent(this->asQObject());
-void QUmlConstraint::setSpecification(QUmlValueSpecification *specification)
-{
- UmlConstraint::setSpecification(specification);
+ // Adjust subsetted properties
+ if (specification) {
+ addOwnedElement(specification);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlconstraint.h b/src/uml/qumlconstraint.h
index a70151b4..01b7b099 100644
--- a/src/uml/qumlconstraint.h
+++ b/src/uml/qumlconstraint.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlconstraint_p.h"
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,117 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
class QUmlElement;
-class QUmlNamedElement;
class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlConstraint : public QObject, public UmlConstraint
+class Q_UML_EXPORT QUmlConstraint : public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Constraint]
- Q_PROPERTY(QList<QUmlElement *> constrainedElement READ constrainedElement)
- Q_PROPERTY(QUmlNamespace * context READ context)
- Q_PROPERTY(QUmlValueSpecification * specification READ specification)
-
public:
- Q_INVOKABLE explicit QUmlConstraint(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Constraint]
- Q_INVOKABLE const QList<QUmlElement *> constrainedElement() const;
- Q_INVOKABLE QUmlNamespace *context() const;
- Q_INVOKABLE QUmlValueSpecification *specification() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Constraint]
- void addConstrainedElement(UmlElement *constrainedElement);
- void removeConstrainedElement(UmlElement *constrainedElement);
+ explicit QUmlConstraint(bool createQObject = true);
+ virtual ~QUmlConstraint();
+
+ // Owned attributes
+ const QList<QUmlElement *> constrainedElement() const;
+ void addConstrainedElement(QUmlElement *constrainedElement);
+ void removeConstrainedElement(QUmlElement *constrainedElement);
+ QUmlNamespace *context() const;
void setContext(QUmlNamespace *context);
+ QUmlValueSpecification *specification() const;
void setSpecification(QUmlValueSpecification *specification);
+
+protected:
+ QList<QUmlElement *> _constrainedElement;
+ QUmlNamespace *_context;
+ QUmlValueSpecification *_specification;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlConstraint *)
-Q_DECLARE_METATYPE(QList<QUmlConstraint *> *)
-Q_DECLARE_METATYPE(QSet<QUmlConstraint *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlConstraint) *)
QT_END_HEADER
diff --git a/src/uml/qumlcontinuation.cpp b/src/uml/qumlcontinuation.cpp
index 8321525a..c9950614 100644
--- a/src/uml/qumlcontinuation.cpp
+++ b/src/uml/qumlcontinuation.cpp
@@ -40,291 +40,49 @@
****************************************************************************/
#include "qumlcontinuation.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlcontinuationobject_p.h"
/*!
- \class UmlContinuation
+ \class QUmlContinuation
\inmodule QtUml
\brief A continuation is a syntactic way to define continuations of different branches of an alternative combined fragment. Continuations is intuitively similar to labels representing intermediate points in a flow of control.
*/
-
-QUmlContinuation::QUmlContinuation(QObject *parent) :
- QObject(parent)
+QUmlContinuation::QUmlContinuation(bool createQObject) :
+ _setting(true)
{
+ if (createQObject)
+ _qObject = new QUmlContinuationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlContinuation::ownedComment() const
+QUmlContinuation::~QUmlContinuation()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlContinuation::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlContinuation::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlContinuation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlContinuation::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlContinuation::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlContinuation::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlContinuation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlContinuation::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlContinuation::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlContinuation::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlContinuation::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlContinuation::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [Continuation]
+// OWNED ATTRIBUTES
/*!
True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning.
*/
-bool QUmlContinuation::setting() const
+bool
+QUmlContinuation::setting() const
{
- return _setting;
-}
+ // This is a read-write property
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlContinuation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlContinuation::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlContinuation::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlContinuation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlContinuation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlContinuation::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlContinuation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlContinuation::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlContinuation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlContinuation::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlContinuation::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlContinuation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlContinuation::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlContinuation::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlContinuation::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlContinuation::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlContinuation::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlContinuation::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlContinuation::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
+ return _setting;
}
-// SLOTS FOR OWNED ATTRIBUTES [Continuation]
-
void QUmlContinuation::setSetting(bool setting)
{
- UmlContinuation::setSetting(setting);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_setting != setting) {
+ _setting = setting;
+ }
+}
diff --git a/src/uml/qumlcontinuation.h b/src/uml/qumlcontinuation.h
index b99205cf..30f1f6da 100644
--- a/src/uml/qumlcontinuation.h
+++ b/src/uml/qumlcontinuation.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcontinuation_p.h"
+#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,109 +52,23 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlContinuation : public QObject, public UmlContinuation
+class Q_UML_EXPORT QUmlContinuation : public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [Continuation]
- Q_PROPERTY(bool setting READ setting)
-
public:
- Q_INVOKABLE explicit QUmlContinuation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
+ explicit QUmlContinuation(bool createQObject = true);
+ virtual ~QUmlContinuation();
- // Owned attributes [Continuation]
- Q_INVOKABLE bool setting() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [Continuation]
+ // Owned attributes
+ bool setting() const;
void setSetting(bool setting);
+
+protected:
+ bool _setting;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlContinuation *)
-Q_DECLARE_METATYPE(QList<QUmlContinuation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlContinuation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlContinuation) *)
QT_END_HEADER
diff --git a/src/uml/qumlcontrolflow.cpp b/src/uml/qumlcontrolflow.cpp
index 56e35db1..42ec1ce7 100644
--- a/src/uml/qumlcontrolflow.cpp
+++ b/src/uml/qumlcontrolflow.cpp
@@ -40,404 +40,26 @@
****************************************************************************/
#include "qumlcontrolflow.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlcontrolflowobject_p.h"
/*!
- \class UmlControlFlow
+ \class QUmlControlFlow
\inmodule QtUml
\brief A control flow is an edge that starts an activity node after the previous one is finished.
*/
-
-QUmlControlFlow::QUmlControlFlow(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlControlFlow::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlControlFlow::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlControlFlow::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlControlFlow::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlControlFlow::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlControlFlow::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlControlFlow::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlControlFlow::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlControlFlow::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlControlFlow::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlControlFlow::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlControlFlow::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityEdge]
-
-/*!
- Activity containing the edge.
- */
-QUmlActivity *QUmlControlFlow::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Specification evaluated at runtime to determine if the edge can be traversed.
- */
-QUmlValueSpecification *QUmlControlFlow::guard() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_guard);
-}
-
-/*!
- Groups containing the edge.
- */
-const QSet<QUmlActivityGroup *> QUmlControlFlow::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Partitions containing the edge.
- */
-const QSet<QUmlActivityPartition *> QUmlControlFlow::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the edge.
- */
-QUmlStructuredActivityNode *QUmlControlFlow::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Region that the edge can interrupt.
- */
-QUmlInterruptibleActivityRegion *QUmlControlFlow::interrupts() const
-{
- return reinterpret_cast<QUmlInterruptibleActivityRegion *>(_interrupts);
-}
-
-/*!
- Inherited edges replaced by this edge in a specialization of the activity.
- */
-const QSet<QUmlActivityEdge *> QUmlControlFlow::redefinedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_redefinedEdge));
-}
-
-/*!
- Node from which tokens are taken when they traverse the edge.
- */
-QUmlActivityNode *QUmlControlFlow::source() const
-{
- return reinterpret_cast<QUmlActivityNode *>(_source);
-}
-
-/*!
- Node to which tokens are put when they traverse the edge.
- */
-QUmlActivityNode *QUmlControlFlow::target() const
-{
- return reinterpret_cast<QUmlActivityNode *>(_target);
-}
-
-/*!
- The minimum number of tokens that must traverse the edge at the same time.
- */
-QUmlValueSpecification *QUmlControlFlow::weight() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_weight);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlControlFlow::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlControlFlow::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlControlFlow::allNamespaces() const
+QUmlControlFlow::QUmlControlFlow(bool createQObject)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlControlFlowObject(this);
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlControlFlow::allOwningPackages() const
+QUmlControlFlow::~QUmlControlFlow()
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-bool QUmlControlFlow::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlControlFlow::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlControlFlow::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlControlFlow::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlControlFlow::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlControlFlow::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlControlFlow::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlControlFlow::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlControlFlow::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlControlFlow::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlControlFlow::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlControlFlow::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityEdge]
-
-void QUmlControlFlow::setActivity(QUmlActivity *activity)
-{
- UmlActivityEdge::setActivity(activity);
-}
-
-void QUmlControlFlow::setGuard(QUmlValueSpecification *guard)
-{
- UmlActivityEdge::setGuard(guard);
-}
-
-void QUmlControlFlow::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityEdge::addInPartition(inPartition);
-}
-
-void QUmlControlFlow::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityEdge::removeInPartition(inPartition);
-}
-
-void QUmlControlFlow::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityEdge::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlControlFlow::setInterrupts(QUmlInterruptibleActivityRegion *interrupts)
-{
- UmlActivityEdge::setInterrupts(interrupts);
-}
-
-void QUmlControlFlow::addRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- UmlActivityEdge::addRedefinedEdge(redefinedEdge);
-}
-
-void QUmlControlFlow::removeRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- UmlActivityEdge::removeRedefinedEdge(redefinedEdge);
-}
-
-void QUmlControlFlow::setSource(QUmlActivityNode *source)
-{
- UmlActivityEdge::setSource(source);
-}
-
-void QUmlControlFlow::setTarget(QUmlActivityNode *target)
-{
- UmlActivityEdge::setTarget(target);
-}
-
-void QUmlControlFlow::setWeight(QUmlValueSpecification *weight)
-{
- UmlActivityEdge::setWeight(weight);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcontrolflow.h b/src/uml/qumlcontrolflow.h
index eef77b9f..c32014e5 100644
--- a/src/uml/qumlcontrolflow.h
+++ b/src/uml/qumlcontrolflow.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcontrolflow_p.h"
+#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,140 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlControlFlow : public QObject, public UmlControlFlow
+class Q_UML_EXPORT QUmlControlFlow : public QUmlActivityEdge
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityEdge]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QUmlValueSpecification * guard READ guard)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QUmlInterruptibleActivityRegion * interrupts READ interrupts)
- Q_PROPERTY(QSet<QUmlActivityEdge *> redefinedEdge READ redefinedEdge)
- Q_PROPERTY(QUmlActivityNode * source READ source)
- Q_PROPERTY(QUmlActivityNode * target READ target)
- Q_PROPERTY(QUmlValueSpecification * weight READ weight)
-
public:
- Q_INVOKABLE explicit QUmlControlFlow(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityEdge]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE QUmlValueSpecification *guard() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE QUmlInterruptibleActivityRegion *interrupts() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> redefinedEdge() const;
- Q_INVOKABLE QUmlActivityNode *source() const;
- Q_INVOKABLE QUmlActivityNode *target() const;
- Q_INVOKABLE QUmlValueSpecification *weight() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlControlFlow(bool createQObject = true);
+ virtual ~QUmlControlFlow();
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
- // Slots for owned attributes [ActivityEdge]
- void setActivity(QUmlActivity *activity);
- void setGuard(QUmlValueSpecification *guard);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void setInterrupts(QUmlInterruptibleActivityRegion *interrupts);
- void addRedefinedEdge(UmlActivityEdge *redefinedEdge);
- void removeRedefinedEdge(UmlActivityEdge *redefinedEdge);
- void setSource(QUmlActivityNode *source);
- void setTarget(QUmlActivityNode *target);
- void setWeight(QUmlValueSpecification *weight);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlControlFlow *)
-Q_DECLARE_METATYPE(QList<QUmlControlFlow *> *)
-Q_DECLARE_METATYPE(QSet<QUmlControlFlow *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlControlFlow) *)
QT_END_HEADER
diff --git a/src/uml/qumlcontrolnode.cpp b/src/uml/qumlcontrolnode.cpp
index e6c85296..345a06bd 100644
--- a/src/uml/qumlcontrolnode.cpp
+++ b/src/uml/qumlcontrolnode.cpp
@@ -40,392 +40,18 @@
****************************************************************************/
#include "qumlcontrolnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlControlNode
+ \class QUmlControlNode
\inmodule QtUml
\brief A control node is an abstract activity node that coordinates flows in an activity.
*/
-
-QUmlControlNode::QUmlControlNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlControlNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlControlNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlControlNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlControlNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlControlNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlControlNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlControlNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlControlNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlControlNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlControlNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlControlNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlControlNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlControlNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlControlNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlControlNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlControlNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlControlNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlControlNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlControlNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlControlNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlControlNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlControlNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlControlNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlControlNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlControlNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlControlNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlControlNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlControlNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlControlNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlControlNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlControlNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlControlNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlControlNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlControlNode::setNameExpression(QUmlStringExpression *nameExpression)
+QUmlControlNode::QUmlControlNode()
{
- UmlNamedElement::setNameExpression(nameExpression);
}
-void QUmlControlNode::setVisibility(QtUml::VisibilityKind visibility)
+QUmlControlNode::~QUmlControlNode()
{
- UmlNamedElement::setVisibility(visibility);
}
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlControlNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlControlNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlControlNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlControlNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlControlNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlControlNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlControlNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlControlNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlControlNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlControlNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlControlNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlControlNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlControlNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcontrolnode.h b/src/uml/qumlcontrolnode.h
index 59e13076..81101ba5 100644
--- a/src/uml/qumlcontrolnode.h
+++ b/src/uml/qumlcontrolnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcontrolnode_p.h"
+#include <QtUml/QUmlActivityNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlControlNode : public QObject, public UmlControlNode
+class Q_UML_EXPORT QUmlControlNode : public QUmlActivityNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_DECL_HIDDEN explicit QUmlControlNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ virtual ~QUmlControlNode();
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
+protected:
+ explicit QUmlControlNode();
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlControlNode *)
-Q_DECLARE_METATYPE(QList<QUmlControlNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlControlNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlControlNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlcreatelinkaction.cpp b/src/uml/qumlcreatelinkaction.cpp
index 55c6309c..e411427a 100644
--- a/src/uml/qumlcreatelinkaction.cpp
+++ b/src/uml/qumlcreatelinkaction.cpp
@@ -40,552 +40,64 @@
****************************************************************************/
#include "qumlcreatelinkaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlLinkEndCreationData>
-#include <QtUml/QUmlLinkEndData>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlcreatelinkactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlLinkEndCreationData>
/*!
- \class UmlCreateLinkAction
+ \class QUmlCreateLinkAction
\inmodule QtUml
\brief A create link action is a write link action for creating links.
*/
-
-QUmlCreateLinkAction::QUmlCreateLinkAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCreateLinkAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCreateLinkAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCreateLinkAction::owner() const
+QUmlCreateLinkAction::QUmlCreateLinkAction(bool createQObject)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlCreateLinkActionObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCreateLinkAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCreateLinkAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCreateLinkAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCreateLinkAction::namespace_() const
+QUmlCreateLinkAction::~QUmlCreateLinkAction()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlCreateLinkAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCreateLinkAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCreateLinkAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCreateLinkAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCreateLinkAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCreateLinkAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCreateLinkAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCreateLinkAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCreateLinkAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCreateLinkAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCreateLinkAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCreateLinkAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCreateLinkAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlCreateLinkAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlCreateLinkAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlCreateLinkAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlCreateLinkAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlCreateLinkAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlCreateLinkAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlCreateLinkAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [LinkAction]
-
-/*!
- Pins taking end objects and qualifier values as input.
- */
-const QSet<QUmlInputPin *> QUmlCreateLinkAction::inputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
-}
-
-// OWNED ATTRIBUTES [CreateLinkAction]
+// OWNED ATTRIBUTES
/*!
Specifies ends of association and inputs.
*/
-const QSet<QUmlLinkEndCreationData *> QUmlCreateLinkAction::endData() const
-{
- return *(reinterpret_cast<const QSet<QUmlLinkEndCreationData *> *>(&_endData));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCreateLinkAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCreateLinkAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCreateLinkAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCreateLinkAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCreateLinkAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCreateLinkAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlCreateLinkAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlCreateLinkAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [LinkAction]
-
-/*!
- The association operates on LinkAction. It returns the association of the action.
- */
-QUmlAssociation *QUmlCreateLinkAction::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(UmlLinkAction::association());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCreateLinkAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCreateLinkAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCreateLinkAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCreateLinkAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCreateLinkAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCreateLinkAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCreateLinkAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCreateLinkAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCreateLinkAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlCreateLinkAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCreateLinkAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCreateLinkAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlCreateLinkAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlCreateLinkAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCreateLinkAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlCreateLinkAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCreateLinkAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlCreateLinkAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCreateLinkAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCreateLinkAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlCreateLinkAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlCreateLinkAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlCreateLinkAction::setLocallyReentrant(bool isLocallyReentrant)
+const QSet<QUmlLinkEndCreationData *>
+QUmlCreateLinkAction::endData() const
{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlCreateLinkAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlCreateLinkAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlCreateLinkAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlCreateLinkAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ return _endData;
}
-// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
-
-void QUmlCreateLinkAction::addInputValue(UmlInputPin *inputValue)
+void QUmlCreateLinkAction::addEndData(QUmlLinkEndCreationData *endData)
{
- UmlLinkAction::addInputValue(inputValue);
-}
+ // This is a read-write association end
-void QUmlCreateLinkAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::removeInputValue(inputValue);
+ if (!_endData.contains(endData)) {
+ _endData.insert(endData);
+ if (endData->asQObject() && this->asQObject())
+ QObject::connect(endData->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEndData(QObject *)));
+ endData->asQObject()->setParent(this->asQObject());
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [CreateLinkAction]
-
-void QUmlCreateLinkAction::addEndData(UmlLinkEndCreationData *endData)
+void QUmlCreateLinkAction::removeEndData(QUmlLinkEndCreationData *endData)
{
- UmlCreateLinkAction::addEndData(endData);
-}
+ // This is a read-write association end
-void QUmlCreateLinkAction::removeEndData(UmlLinkEndCreationData *endData)
-{
- UmlCreateLinkAction::removeEndData(endData);
+ if (_endData.contains(endData)) {
+ _endData.remove(endData);
+ if (endData->asQObject())
+ endData->asQObject()->setParent(0);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcreatelinkaction.h b/src/uml/qumlcreatelinkaction.h
index 901209bb..4a9f36a0 100644
--- a/src/uml/qumlcreatelinkaction.h
+++ b/src/uml/qumlcreatelinkaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcreatelinkaction_p.h"
+#include <QtUml/QUmlWriteLinkAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,199 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
class QUmlLinkEndCreationData;
-class QUmlLinkEndData;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlCreateLinkAction : public QObject, public UmlCreateLinkAction
+class Q_UML_EXPORT QUmlCreateLinkAction : public QUmlWriteLinkAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [LinkAction]
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
-
- // Properties [CreateLinkAction]
- Q_PROPERTY(QSet<QUmlLinkEndCreationData *> endData READ endData)
-
public:
- Q_INVOKABLE explicit QUmlCreateLinkAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [LinkAction]
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
-
- // Owned attributes [CreateLinkAction]
- Q_INVOKABLE const QSet<QUmlLinkEndCreationData *> endData() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [LinkAction]
- Q_INVOKABLE QUmlAssociation *association() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+ explicit QUmlCreateLinkAction(bool createQObject = true);
+ virtual ~QUmlCreateLinkAction();
- // Slots for owned attributes [LinkAction]
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
+ // Owned attributes
+ const QSet<QUmlLinkEndCreationData *> endData() const;
+ void addEndData(QUmlLinkEndCreationData *endData);
+ void removeEndData(QUmlLinkEndCreationData *endData);
- // Slots for owned attributes [CreateLinkAction]
- void addEndData(UmlLinkEndCreationData *endData);
- void removeEndData(UmlLinkEndCreationData *endData);
+protected:
+ QSet<QUmlLinkEndCreationData *> _endData;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCreateLinkAction *)
-Q_DECLARE_METATYPE(QList<QUmlCreateLinkAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCreateLinkAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCreateLinkAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcreatelinkobjectaction.cpp b/src/uml/qumlcreatelinkobjectaction.cpp
index 4dcc8dce..52c9f18d 100644
--- a/src/uml/qumlcreatelinkobjectaction.cpp
+++ b/src/uml/qumlcreatelinkobjectaction.cpp
@@ -40,569 +40,63 @@
****************************************************************************/
#include "qumlcreatelinkobjectaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlLinkEndCreationData>
-#include <QtUml/QUmlLinkEndData>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlcreatelinkobjectactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlCreateLinkObjectAction
+ \class QUmlCreateLinkObjectAction
\inmodule QtUml
\brief A create link object action creates a link object.
*/
-
-QUmlCreateLinkObjectAction::QUmlCreateLinkObjectAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCreateLinkObjectAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCreateLinkObjectAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCreateLinkObjectAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCreateLinkObjectAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCreateLinkObjectAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCreateLinkObjectAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCreateLinkObjectAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCreateLinkObjectAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCreateLinkObjectAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCreateLinkObjectAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCreateLinkObjectAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCreateLinkObjectAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCreateLinkObjectAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCreateLinkObjectAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCreateLinkObjectAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCreateLinkObjectAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCreateLinkObjectAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCreateLinkObjectAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCreateLinkObjectAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCreateLinkObjectAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlCreateLinkObjectAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlCreateLinkObjectAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlCreateLinkObjectAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlCreateLinkObjectAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlCreateLinkObjectAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlCreateLinkObjectAction::localPrecondition() const
+QUmlCreateLinkObjectAction::QUmlCreateLinkObjectAction(bool createQObject) :
+ QUmlCreateLinkAction(false),
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
+ if (createQObject)
+ _qObject = new QUmlCreateLinkObjectActionObject(this);
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlCreateLinkObjectAction::output() const
+QUmlCreateLinkObjectAction::~QUmlCreateLinkObjectAction()
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [LinkAction]
-
-/*!
- Pins taking end objects and qualifier values as input.
- */
-const QSet<QUmlInputPin *> QUmlCreateLinkObjectAction::inputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
-}
-
-// OWNED ATTRIBUTES [CreateLinkAction]
-
-/*!
- Specifies ends of association and inputs.
- */
-const QSet<QUmlLinkEndCreationData *> QUmlCreateLinkObjectAction::endData() const
-{
- return *(reinterpret_cast<const QSet<QUmlLinkEndCreationData *> *>(&_endData));
-}
-
-// OWNED ATTRIBUTES [CreateLinkObjectAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the result is put.
*/
-QUmlOutputPin *QUmlCreateLinkObjectAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCreateLinkObjectAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCreateLinkObjectAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCreateLinkObjectAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCreateLinkObjectAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCreateLinkObjectAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCreateLinkObjectAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlCreateLinkObjectAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlCreateLinkObjectAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [LinkAction]
-
-/*!
- The association operates on LinkAction. It returns the association of the action.
- */
-QUmlAssociation *QUmlCreateLinkObjectAction::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(UmlLinkAction::association());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCreateLinkObjectAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCreateLinkObjectAction::removeOwnedComment(UmlComment *ownedComment)
+QUmlOutputPin *
+QUmlCreateLinkObjectAction::result() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCreateLinkObjectAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlCreateLinkObjectAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCreateLinkObjectAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCreateLinkObjectAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCreateLinkObjectAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCreateLinkObjectAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return _result;
}
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCreateLinkObjectAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlCreateLinkObjectAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCreateLinkObjectAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCreateLinkObjectAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlCreateLinkObjectAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlCreateLinkObjectAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCreateLinkObjectAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlCreateLinkObjectAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCreateLinkObjectAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlCreateLinkObjectAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCreateLinkObjectAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCreateLinkObjectAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlCreateLinkObjectAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlCreateLinkObjectAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlCreateLinkObjectAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlCreateLinkObjectAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlCreateLinkObjectAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlCreateLinkObjectAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlCreateLinkObjectAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
-
-void QUmlCreateLinkObjectAction::addInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::addInputValue(inputValue);
-}
-
-void QUmlCreateLinkObjectAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::removeInputValue(inputValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CreateLinkAction]
-
-void QUmlCreateLinkObjectAction::addEndData(UmlLinkEndCreationData *endData)
+void QUmlCreateLinkObjectAction::setResult(QUmlOutputPin *result)
{
- UmlCreateLinkAction::addEndData(endData);
-}
+ // This is a read-write association end
-void QUmlCreateLinkObjectAction::removeEndData(UmlLinkEndCreationData *endData)
-{
- UmlCreateLinkAction::removeEndData(endData);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [CreateLinkObjectAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlCreateLinkObjectAction::setResult(QUmlOutputPin *result)
-{
- UmlCreateLinkObjectAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcreatelinkobjectaction.h b/src/uml/qumlcreatelinkobjectaction.h
index 34dacc1f..f60ea25f 100644
--- a/src/uml/qumlcreatelinkobjectaction.h
+++ b/src/uml/qumlcreatelinkobjectaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcreatelinkobjectaction_p.h"
+#include <QtUml/QUmlCreateLinkAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,208 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlLinkEndCreationData;
-class QUmlLinkEndData;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlCreateLinkObjectAction : public QObject, public UmlCreateLinkObjectAction
+class Q_UML_EXPORT QUmlCreateLinkObjectAction : public QUmlCreateLinkAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [LinkAction]
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
-
- // Properties [CreateLinkAction]
- Q_PROPERTY(QSet<QUmlLinkEndCreationData *> endData READ endData)
-
- // Properties [CreateLinkObjectAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlCreateLinkObjectAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [LinkAction]
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
+ explicit QUmlCreateLinkObjectAction(bool createQObject = true);
+ virtual ~QUmlCreateLinkObjectAction();
- // Owned attributes [CreateLinkAction]
- Q_INVOKABLE const QSet<QUmlLinkEndCreationData *> endData() const;
-
- // Owned attributes [CreateLinkObjectAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [LinkAction]
- Q_INVOKABLE QUmlAssociation *association() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [LinkAction]
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
-
- // Slots for owned attributes [CreateLinkAction]
- void addEndData(UmlLinkEndCreationData *endData);
- void removeEndData(UmlLinkEndCreationData *endData);
-
- // Slots for owned attributes [CreateLinkObjectAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCreateLinkObjectAction *)
-Q_DECLARE_METATYPE(QList<QUmlCreateLinkObjectAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCreateLinkObjectAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCreateLinkObjectAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlcreateobjectaction.cpp b/src/uml/qumlcreateobjectaction.cpp
index bbb125e0..73496e9a 100644
--- a/src/uml/qumlcreateobjectaction.cpp
+++ b/src/uml/qumlcreateobjectaction.cpp
@@ -40,525 +40,86 @@
****************************************************************************/
#include "qumlcreateobjectaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlcreateobjectactionobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlCreateObjectAction
+ \class QUmlCreateObjectAction
\inmodule QtUml
\brief A create object action is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime.
*/
-
-QUmlCreateObjectAction::QUmlCreateObjectAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlCreateObjectAction::ownedComment() const
+QUmlCreateObjectAction::QUmlCreateObjectAction(bool createQObject) :
+ _classifier(0),
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlCreateObjectActionObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlCreateObjectAction::ownedElement() const
+QUmlCreateObjectAction::~QUmlCreateObjectAction()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlCreateObjectAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlCreateObjectAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlCreateObjectAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlCreateObjectAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlCreateObjectAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlCreateObjectAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlCreateObjectAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlCreateObjectAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlCreateObjectAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlCreateObjectAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlCreateObjectAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlCreateObjectAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlCreateObjectAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlCreateObjectAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlCreateObjectAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlCreateObjectAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlCreateObjectAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlCreateObjectAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlCreateObjectAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlCreateObjectAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlCreateObjectAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlCreateObjectAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlCreateObjectAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlCreateObjectAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlCreateObjectAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [CreateObjectAction]
+// OWNED ATTRIBUTES
/*!
Classifier to be instantiated.
*/
-QUmlClassifier *QUmlCreateObjectAction::classifier() const
-{
- return reinterpret_cast<QUmlClassifier *>(_classifier);
-}
-
-/*!
- Gives the output pin on which the result is put.
- */
-QUmlOutputPin *QUmlCreateObjectAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlCreateObjectAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCreateObjectAction::mustBeOwned() const
+QUmlClassifier *
+QUmlCreateObjectAction::classifier() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlCreateObjectAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlCreateObjectAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlCreateObjectAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _classifier;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlCreateObjectAction::separator() const
+void QUmlCreateObjectAction::setClassifier(QUmlClassifier *classifier)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlCreateObjectAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_classifier != classifier) {
+ _classifier = classifier;
+ if (classifier->asQObject() && this->asQObject())
+ QObject::connect(classifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClassifier()));
+ }
}
/*!
- 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.
+ Gives the output pin on which the result is put.
*/
-bool QUmlCreateObjectAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlCreateObjectAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlCreateObjectAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlCreateObjectAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlCreateObjectAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlCreateObjectAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlCreateObjectAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlCreateObjectAction::setVisibility(QtUml::VisibilityKind visibility)
+QUmlOutputPin *
+QUmlCreateObjectAction::result() const
{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlCreateObjectAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlCreateObjectAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlCreateObjectAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCreateObjectAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlCreateObjectAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlCreateObjectAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlCreateObjectAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlCreateObjectAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlCreateObjectAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlCreateObjectAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlCreateObjectAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlCreateObjectAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlCreateObjectAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlCreateObjectAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlCreateObjectAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlCreateObjectAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlCreateObjectAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlCreateObjectAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlCreateObjectAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
+ return _result;
}
-void QUmlCreateObjectAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlCreateObjectAction::setResult(QUmlOutputPin *result)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [CreateObjectAction]
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-void QUmlCreateObjectAction::setClassifier(QUmlClassifier *classifier)
-{
- UmlCreateObjectAction::setClassifier(classifier);
-}
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlCreateObjectAction::setResult(QUmlOutputPin *result)
-{
- UmlCreateObjectAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlcreateobjectaction.h b/src/uml/qumlcreateobjectaction.h
index 645df860..f8258076 100644
--- a/src/uml/qumlcreateobjectaction.h
+++ b/src/uml/qumlcreateobjectaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlcreateobjectaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,185 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlCreateObjectAction : public QObject, public UmlCreateObjectAction
+class Q_UML_EXPORT QUmlCreateObjectAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [CreateObjectAction]
- Q_PROPERTY(QUmlClassifier * classifier READ classifier)
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlCreateObjectAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlCreateObjectAction(bool createQObject = true);
+ virtual ~QUmlCreateObjectAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [CreateObjectAction]
- Q_INVOKABLE QUmlClassifier *classifier() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [CreateObjectAction]
+ // Owned attributes
+ QUmlClassifier *classifier() const;
void setClassifier(QUmlClassifier *classifier);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlClassifier *_classifier;
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlCreateObjectAction *)
-Q_DECLARE_METATYPE(QList<QUmlCreateObjectAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlCreateObjectAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlCreateObjectAction) *)
QT_END_HEADER
diff --git a/src/uml/qumldatastorenode.cpp b/src/uml/qumldatastorenode.cpp
index aeeb0619..ef73c620 100644
--- a/src/uml/qumldatastorenode.cpp
+++ b/src/uml/qumldatastorenode.cpp
@@ -40,487 +40,27 @@
****************************************************************************/
#include "qumldatastorenode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumldatastorenodeobject_p.h"
/*!
- \class UmlDataStoreNode
+ \class QUmlDataStoreNode
\inmodule QtUml
\brief A data store node is a central buffer node for non-transient information.
*/
-
-QUmlDataStoreNode::QUmlDataStoreNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDataStoreNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDataStoreNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDataStoreNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDataStoreNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDataStoreNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDataStoreNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDataStoreNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDataStoreNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDataStoreNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDataStoreNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDataStoreNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDataStoreNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlDataStoreNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlDataStoreNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlDataStoreNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlDataStoreNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlDataStoreNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlDataStoreNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlDataStoreNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlDataStoreNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlDataStoreNode::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlDataStoreNode::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlDataStoreNode::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlDataStoreNode::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlDataStoreNode::selection() const
+QUmlDataStoreNode::QUmlDataStoreNode(bool createQObject) :
+ QUmlCentralBufferNode(false)
{
- return reinterpret_cast<QUmlBehavior *>(_selection);
+ if (createQObject)
+ _qObject = new QUmlDataStoreNodeObject(this);
}
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlDataStoreNode::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDataStoreNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDataStoreNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDataStoreNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDataStoreNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDataStoreNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDataStoreNode::separator() const
+QUmlDataStoreNode::~QUmlDataStoreNode()
{
- return UmlNamedElement::separator();
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlDataStoreNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlDataStoreNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDataStoreNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDataStoreNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDataStoreNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDataStoreNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDataStoreNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDataStoreNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDataStoreNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDataStoreNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlDataStoreNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlDataStoreNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDataStoreNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDataStoreNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlDataStoreNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlDataStoreNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlDataStoreNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlDataStoreNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlDataStoreNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlDataStoreNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlDataStoreNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlDataStoreNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlDataStoreNode::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlDataStoreNode::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlDataStoreNode::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlDataStoreNode::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlDataStoreNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlDataStoreNode::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlDataStoreNode::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldatastorenode.h b/src/uml/qumldatastorenode.h
index 11ed2060..791e736f 100644
--- a/src/uml/qumldatastorenode.h
+++ b/src/uml/qumldatastorenode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldatastorenode_p.h"
+#include <QtUml/QUmlCentralBufferNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,171 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlDataStoreNode : public QObject, public UmlDataStoreNode
+class Q_UML_EXPORT QUmlDataStoreNode : public QUmlCentralBufferNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
public:
- Q_INVOKABLE explicit QUmlDataStoreNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+ explicit QUmlDataStoreNode(bool createQObject = true);
+ virtual ~QUmlDataStoreNode();
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDataStoreNode *)
-Q_DECLARE_METATYPE(QList<QUmlDataStoreNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDataStoreNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDataStoreNode) *)
QT_END_HEADER
diff --git a/src/uml/qumldatatype.cpp b/src/uml/qumldatatype.cpp
index d41c3653..545dbb04 100644
--- a/src/uml/qumldatatype.cpp
+++ b/src/uml/qumldatatype.cpp
@@ -40,863 +40,149 @@
****************************************************************************/
#include "qumldatatype.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
+#include "private/qumldatatypeobject_p.h"
+
#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlDataType
+ \class QUmlDataType
\inmodule QtUml
\brief A data type is a type whose instances are identified only by their value. A data type may contain attributes to support the modeling of structured data types.
*/
-
-QUmlDataType::QUmlDataType(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDataType::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDataType::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDataType::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDataType::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDataType::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDataType::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDataType::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDataType::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlDataType::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlDataType::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlDataType::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlDataType::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlDataType::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlDataType::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDataType::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDataType::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlDataType::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDataType::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDataType::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDataType::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlDataType::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlDataType::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlDataType::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlDataType::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlDataType::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlDataType::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlDataType::inheritedMember() const
+QUmlDataType::QUmlDataType(bool createQObject)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlDataTypeObject(this);
}
-/*!
- 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.
- */
-bool QUmlDataType::isAbstract() const
+QUmlDataType::~QUmlDataType()
{
- return _isAbstract;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlDataType::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlDataType::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlDataType::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlDataType::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlDataType::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlDataType::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlDataType::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlDataType::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlDataType::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [DataType]
+// OWNED ATTRIBUTES
/*!
The Attributes owned by the DataType.
*/
-const QList<QUmlProperty *> QUmlDataType::ownedAttribute() const
+const QList<QUmlProperty *>
+QUmlDataType::ownedAttribute() const
{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
+ // This is a read-write association end
-/*!
- The Operations owned by the DataType.
- */
-const QList<QUmlOperation *> QUmlDataType::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
+ return _ownedAttribute;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDataType::allOwnedElements() const
+void QUmlDataType::addOwnedAttribute(QUmlProperty *ownedAttribute)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlDataType::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (!_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.append(ownedAttribute);
+ if (ownedAttribute->asQObject() && this->asQObject())
+ QObject::connect(ownedAttribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedAttribute(QObject *)));
+ ownedAttribute->asQObject()->setParent(this->asQObject());
-// OPERATIONS [NamedElement]
+ // Adjust subsetted properties
+ addOwnedMember(ownedAttribute);
+ addAttribute(ownedAttribute);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDataType::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedAttribute) {
+ ownedAttribute->setDatatype(this);
+ }
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDataType::allOwningPackages() const
+void QUmlDataType::removeOwnedAttribute(QUmlProperty *ownedAttribute)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlDataType::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDataType::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
+ if (_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.removeAll(ownedAttribute);
+ if (ownedAttribute->asQObject())
+ ownedAttribute->asQObject()->setParent(0);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlDataType::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedMember(ownedAttribute);
+ removeAttribute(ownedAttribute);
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlDataType::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ // Adjust opposite properties
+ if (ownedAttribute) {
+ ownedAttribute->setDatatype(0);
+ }
+ }
}
/*!
- 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.
+ The Operations owned by the DataType.
*/
-QSet<QUmlPackageableElement *> QUmlDataType::importMembers(QSet<QUmlPackageableElement *> imps) const
+const QList<QUmlOperation *>
+QUmlDataType::ownedOperation() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlDataType::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
+ return _ownedOperation;
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlDataType::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDataType::isTemplateParameter() const
+void QUmlDataType::addOwnedOperation(QUmlOperation *ownedOperation)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (!_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.append(ownedOperation);
+ if (ownedOperation->asQObject() && this->asQObject())
+ QObject::connect(ownedOperation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedOperation(QObject *)));
+ ownedOperation->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlDataType::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
+ // Adjust subsetted properties
+ addFeature(ownedOperation);
+ addOwnedMember(ownedOperation);
-/*!
- 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.
- */
-bool QUmlDataType::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // Adjust opposite properties
+ if (ownedOperation) {
+ ownedOperation->setDatatype(this);
+ }
+ }
}
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlDataType::parameterableElements() const
+void QUmlDataType::removeOwnedOperation(QUmlOperation *ownedOperation)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.removeAll(ownedOperation);
+ if (ownedOperation->asQObject())
+ ownedOperation->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlDataType::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeFeature(ownedOperation);
+ removeOwnedMember(ownedOperation);
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlDataType::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedOperation) {
+ ownedOperation->setDatatype(0);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlDataType::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlDataType::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlDataType::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlDataType::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlDataType::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlDataType::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [DataType]
+// OPERATIONS
/*!
The inherit operation is overridden to exclude redefined properties.
*/
QSet<QUmlNamedElement *> QUmlDataType::inherit(QSet<QUmlNamedElement *> inhs) const
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlDataType::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDataType::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ qWarning("UmlDataType::inherit(): to be implemented (operation)");
-void QUmlDataType::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDataType::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDataType::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDataType::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDataType::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlDataType::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlDataType::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlDataType::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlDataType::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
+ Q_UNUSED(inhs);
+ return QSet<QUmlNamedElement *> ();
}
-void QUmlDataType::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlDataType::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDataType::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDataType::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlDataType::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDataType::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlDataType::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlDataType::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlDataType::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlDataType::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlDataType::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlDataType::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlDataType::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlDataType::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlDataType::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlDataType::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlDataType::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlDataType::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlDataType::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlDataType::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlDataType::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlDataType::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlDataType::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlDataType::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlDataType::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlDataType::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlDataType::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlDataType::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlDataType::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DataType]
-
-void QUmlDataType::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlDataType::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlDataType::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlDataType::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlDataType::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlDataType::addOwnedOperation(ownedOperation);
-}
-
-void QUmlDataType::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlDataType::removeOwnedOperation(ownedOperation);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldatatype.h b/src/uml/qumldatatype.h
index 387071bc..e1ebc978 100644
--- a/src/uml/qumldatatype.h
+++ b/src/uml/qumldatatype.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldatatype_p.h"
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,273 +52,35 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlDataType : public QObject, public UmlDataType
+class Q_UML_EXPORT QUmlDataType : public QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [DataType]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
-
public:
- Q_INVOKABLE explicit QUmlDataType(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [DataType]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [DataType]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [DataType]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
+ explicit QUmlDataType(bool createQObject = true);
+ virtual ~QUmlDataType();
+
+ // Owned attributes
+ const QList<QUmlProperty *> ownedAttribute() const;
+ void addOwnedAttribute(QUmlProperty *ownedAttribute);
+ void removeOwnedAttribute(QUmlProperty *ownedAttribute);
+ const QList<QUmlOperation *> ownedOperation() const;
+ void addOwnedOperation(QUmlOperation *ownedOperation);
+ void removeOwnedOperation(QUmlOperation *ownedOperation);
+
+ // Operations
+ QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
+
+protected:
+ QList<QUmlProperty *> _ownedAttribute;
+ QList<QUmlOperation *> _ownedOperation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDataType *)
-Q_DECLARE_METATYPE(QList<QUmlDataType *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDataType *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDataType) *)
QT_END_HEADER
diff --git a/src/uml/qumldecisionnode.cpp b/src/uml/qumldecisionnode.cpp
index 89a46411..cb1d6773 100644
--- a/src/uml/qumldecisionnode.cpp
+++ b/src/uml/qumldecisionnode.cpp
@@ -40,424 +40,77 @@
****************************************************************************/
#include "qumldecisionnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumldecisionnodeobject_p.h"
+
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlObjectFlow>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlDecisionNode
+ \class QUmlDecisionNode
\inmodule QtUml
\brief A decision node is a control node that chooses between outgoing flows.
*/
-
-QUmlDecisionNode::QUmlDecisionNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDecisionNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDecisionNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDecisionNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDecisionNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDecisionNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDecisionNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDecisionNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDecisionNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDecisionNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDecisionNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDecisionNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDecisionNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlDecisionNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlDecisionNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlDecisionNode::inInterruptibleRegion() const
+QUmlDecisionNode::QUmlDecisionNode(bool createQObject) :
+ _decisionInput(0),
+ _decisionInputFlow(0)
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
+ if (createQObject)
+ _qObject = new QUmlDecisionNodeObject(this);
}
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlDecisionNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlDecisionNode::inStructuredNode() const
+QUmlDecisionNode::~QUmlDecisionNode()
{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlDecisionNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlDecisionNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlDecisionNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [DecisionNode]
+// OWNED ATTRIBUTES
/*!
Provides input to guard specifications on edges outgoing from the decision node.
*/
-QUmlBehavior *QUmlDecisionNode::decisionInput() const
+QUmlBehavior *
+QUmlDecisionNode::decisionInput() const
{
- return reinterpret_cast<QUmlBehavior *>(_decisionInput);
-}
+ // This is a read-write association end
-/*!
- An additional edge incoming to the decision node that provides a decision input value.
- */
-QUmlObjectFlow *QUmlDecisionNode::decisionInputFlow() const
-{
- return reinterpret_cast<QUmlObjectFlow *>(_decisionInputFlow);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDecisionNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDecisionNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDecisionNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDecisionNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDecisionNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _decisionInput;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDecisionNode::separator() const
+void QUmlDecisionNode::setDecisionInput(QUmlBehavior *decisionInput)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlDecisionNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_decisionInput != decisionInput) {
+ _decisionInput = decisionInput;
+ if (decisionInput->asQObject() && this->asQObject())
+ QObject::connect(decisionInput->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDecisionInput()));
+ }
}
/*!
- 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.
+ An additional edge incoming to the decision node that provides a decision input value.
*/
-bool QUmlDecisionNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlObjectFlow *
+QUmlDecisionNode::decisionInputFlow() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDecisionNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDecisionNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDecisionNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDecisionNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDecisionNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDecisionNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDecisionNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDecisionNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlDecisionNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlDecisionNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDecisionNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDecisionNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlDecisionNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlDecisionNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlDecisionNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlDecisionNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlDecisionNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlDecisionNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlDecisionNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlDecisionNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DecisionNode]
-
-void QUmlDecisionNode::setDecisionInput(QUmlBehavior *decisionInput)
-{
- UmlDecisionNode::setDecisionInput(decisionInput);
+ return _decisionInputFlow;
}
void QUmlDecisionNode::setDecisionInputFlow(QUmlObjectFlow *decisionInputFlow)
{
- UmlDecisionNode::setDecisionInputFlow(decisionInputFlow);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_decisionInputFlow != decisionInputFlow) {
+ _decisionInputFlow = decisionInputFlow;
+ if (decisionInputFlow->asQObject() && this->asQObject())
+ QObject::connect(decisionInputFlow->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDecisionInputFlow()));
+ }
+}
diff --git a/src/uml/qumldecisionnode.h b/src/uml/qumldecisionnode.h
index b3ed6c5a..6815b48b 100644
--- a/src/uml/qumldecisionnode.h
+++ b/src/uml/qumldecisionnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldecisionnode_p.h"
+#include <QtUml/QUmlControlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,150 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlObjectFlow;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlDecisionNode : public QObject, public UmlDecisionNode
+class Q_UML_EXPORT QUmlDecisionNode : public QUmlControlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [DecisionNode]
- Q_PROPERTY(QUmlBehavior * decisionInput READ decisionInput)
- Q_PROPERTY(QUmlObjectFlow * decisionInputFlow READ decisionInputFlow)
-
public:
- Q_INVOKABLE explicit QUmlDecisionNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
+ explicit QUmlDecisionNode(bool createQObject = true);
+ virtual ~QUmlDecisionNode();
- // Owned attributes [DecisionNode]
- Q_INVOKABLE QUmlBehavior *decisionInput() const;
- Q_INVOKABLE QUmlObjectFlow *decisionInputFlow() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [DecisionNode]
+ // Owned attributes
+ QUmlBehavior *decisionInput() const;
void setDecisionInput(QUmlBehavior *decisionInput);
+ QUmlObjectFlow *decisionInputFlow() const;
void setDecisionInputFlow(QUmlObjectFlow *decisionInputFlow);
+
+protected:
+ QUmlBehavior *_decisionInput;
+ QUmlObjectFlow *_decisionInputFlow;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDecisionNode *)
-Q_DECLARE_METATYPE(QList<QUmlDecisionNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDecisionNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDecisionNode) *)
QT_END_HEADER
diff --git a/src/uml/qumldependency.cpp b/src/uml/qumldependency.cpp
index 97191672..2e57403f 100644
--- a/src/uml/qumldependency.cpp
+++ b/src/uml/qumldependency.cpp
@@ -40,327 +40,114 @@
****************************************************************************/
#include "qumldependency.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumldependencyobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlNamedElement>
/*!
- \class UmlDependency
+ \class QUmlDependency
\inmodule QtUml
\brief 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).
*/
-
-QUmlDependency::QUmlDependency(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDependency::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDependency::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDependency::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDependency::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlDependency::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDependency::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDependency::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDependency::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDependency::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDependency::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDependency::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlDependency::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlDependency::source() const
+QUmlDependency::QUmlDependency(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
+ if (createQObject)
+ _qObject = new QUmlDependencyObject(this);
}
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlDependency::target() const
+QUmlDependency::~QUmlDependency()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Dependency]
+// OWNED ATTRIBUTES
/*!
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.
*/
-const QSet<QUmlNamedElement *> QUmlDependency::client() const
+const QSet<QUmlNamedElement *>
+QUmlDependency::client() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlDependency::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
+ return _client;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDependency::allOwnedElements() const
+void QUmlDependency::addClient(QUmlNamedElement *client)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlDependency::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (!_client.contains(client)) {
+ _client.insert(client);
+ if (client->asQObject() && this->asQObject())
+ QObject::connect(client->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeClient(QObject *)));
-// OPERATIONS [ParameterableElement]
+ // Adjust subsetted properties
+ addSource(client);
-/*!
- 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.
- */
-bool QUmlDependency::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (client) {
+ client->addClientDependency(this);
+ }
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDependency::isTemplateParameter() const
+void QUmlDependency::removeClient(QUmlNamedElement *client)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_client.contains(client)) {
+ _client.remove(client);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDependency::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeSource(client);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDependency::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (client) {
+ client->removeClientDependency(this);
+ }
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlDependency::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+const QSet<QUmlNamedElement *>
+QUmlDependency::supplier() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDependency::separator() const
-{
- return UmlNamedElement::separator();
+ return _supplier;
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDependency::addOwnedComment(UmlComment *ownedComment)
+void QUmlDependency::addSupplier(QUmlNamedElement *supplier)
{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDependency::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDependency::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlDependency::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_supplier.contains(supplier)) {
+ _supplier.insert(supplier);
+ if (supplier->asQObject() && this->asQObject())
+ QObject::connect(supplier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSupplier(QObject *)));
-void QUmlDependency::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ addTarget(supplier);
+ }
}
-void QUmlDependency::removeClientDependency(UmlDependency *clientDependency)
+void QUmlDependency::removeSupplier(QUmlNamedElement *supplier)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlDependency::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (_supplier.contains(supplier)) {
+ _supplier.remove(supplier);
-void QUmlDependency::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ // Adjust subsetted properties
+ removeTarget(supplier);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDependency::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlDependency::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlDependency::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
-
-void QUmlDependency::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
-}
-
-void QUmlDependency::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-QT_END_NAMESPACE
diff --git a/src/uml/qumldependency.h b/src/uml/qumldependency.h
index 9cac7671..fb7f8653 100644
--- a/src/uml/qumldependency.h
+++ b/src/uml/qumldependency.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldependency_p.h"
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlDirectedRelationship>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,131 +53,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlDependency : public QObject, public UmlDependency
+class Q_UML_EXPORT QUmlDependency : public QUmlPackageableElement, public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
public:
- Q_INVOKABLE explicit QUmlDependency(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
+ explicit QUmlDependency(bool createQObject = true);
+ virtual ~QUmlDependency();
+
+ // Owned attributes
+ const QSet<QUmlNamedElement *> client() const;
+ void addClient(QUmlNamedElement *client);
+ void removeClient(QUmlNamedElement *client);
+ const QSet<QUmlNamedElement *> supplier() const;
+ void addSupplier(QUmlNamedElement *supplier);
+ void removeSupplier(QUmlNamedElement *supplier);
+
+protected:
+ QSet<QUmlNamedElement *> _client;
+ QSet<QUmlNamedElement *> _supplier;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDependency *)
-Q_DECLARE_METATYPE(QList<QUmlDependency *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDependency *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDependency) *)
QT_END_HEADER
diff --git a/src/uml/qumldeployedartifact.cpp b/src/uml/qumldeployedartifact.cpp
index 364fab9b..5fcc7d19 100644
--- a/src/uml/qumldeployedartifact.cpp
+++ b/src/uml/qumldeployedartifact.cpp
@@ -40,204 +40,18 @@
****************************************************************************/
#include "qumldeployedartifact.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlDeployedArtifact
+ \class QUmlDeployedArtifact
\inmodule QtUml
\brief A deployed artifact is an artifact or artifact instance that has been deployed to a deployment target.
*/
-
-QUmlDeployedArtifact::QUmlDeployedArtifact(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDeployedArtifact::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDeployedArtifact::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDeployedArtifact::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDeployedArtifact::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDeployedArtifact::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDeployedArtifact::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDeployedArtifact::namespace_() const
+QUmlDeployedArtifact::QUmlDeployedArtifact()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
}
-/*!
- 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.
- */
-QString QUmlDeployedArtifact::qualifiedName() const
+QUmlDeployedArtifact::~QUmlDeployedArtifact()
{
- return UmlNamedElement::qualifiedName();
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDeployedArtifact::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDeployedArtifact::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDeployedArtifact::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDeployedArtifact::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDeployedArtifact::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDeployedArtifact::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDeployedArtifact::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDeployedArtifact::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDeployedArtifact::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDeployedArtifact::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDeployedArtifact::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDeployedArtifact::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDeployedArtifact::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDeployedArtifact::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldeployedartifact.h b/src/uml/qumldeployedartifact.h
index 1a9a1b82..818949d5 100644
--- a/src/uml/qumldeployedartifact.h
+++ b/src/uml/qumldeployedartifact.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldeployedartifact_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,76 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlDeployedArtifact : public QObject, public UmlDeployedArtifact
+class Q_UML_EXPORT QUmlDeployedArtifact : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_DECL_HIDDEN explicit QUmlDeployedArtifact(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
+ virtual ~QUmlDeployedArtifact();
-public Q_SLOTS:
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+protected:
+ explicit QUmlDeployedArtifact();
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDeployedArtifact *)
-Q_DECLARE_METATYPE(QList<QUmlDeployedArtifact *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDeployedArtifact *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDeployedArtifact) *)
QT_END_HEADER
diff --git a/src/uml/qumldeployment.cpp b/src/uml/qumldeployment.cpp
index 7a7df373..c53bb063 100644
--- a/src/uml/qumldeployment.cpp
+++ b/src/uml/qumldeployment.cpp
@@ -40,384 +40,152 @@
****************************************************************************/
#include "qumldeployment.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
+#include "private/qumldeploymentobject_p.h"
+
#include <QtUml/QUmlDeployedArtifact>
#include <QtUml/QUmlDeploymentSpecification>
#include <QtUml/QUmlDeploymentTarget>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlDeployment
+ \class QUmlDeployment
\inmodule QtUml
\brief A deployment is the allocation of an artifact or artifact instance to a deployment target.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.
*/
-
-QUmlDeployment::QUmlDeployment(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDeployment::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDeployment::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDeployment::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDeployment::owningTemplateParameter() const
+QUmlDeployment::QUmlDeployment(bool createQObject) :
+ QUmlDependency(false),
+ _location(0)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlDeploymentObject(this);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlDeployment::templateParameter() const
+QUmlDeployment::~QUmlDeployment()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDeployment::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDeployment::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDeployment::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+// OWNED ATTRIBUTES
/*!
- Specifies the namespace that owns the NamedElement.
+ The specification of properties that parameterize the deployment and execution of one or more Artifacts.
*/
-QUmlNamespace *QUmlDeployment::namespace_() const
+const QSet<QUmlDeploymentSpecification *>
+QUmlDeployment::configuration() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlDeployment::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _configuration;
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDeployment::visibility() const
+void QUmlDeployment::addConfiguration(QUmlDeploymentSpecification *configuration)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Relationship]
+ if (!_configuration.contains(configuration)) {
+ _configuration.insert(configuration);
+ if (configuration->asQObject() && this->asQObject())
+ QObject::connect(configuration->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConfiguration(QObject *)));
+ configuration->asQObject()->setParent(this->asQObject());
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlDeployment::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
+ // Adjust subsetted properties
+ addOwnedElement(configuration);
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlDeployment::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
+ // Adjust opposite properties
+ if (configuration) {
+ configuration->setDeployment(this);
+ }
+ }
}
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlDeployment::target() const
+void QUmlDeployment::removeConfiguration(QUmlDeploymentSpecification *configuration)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Dependency]
+ if (_configuration.contains(configuration)) {
+ _configuration.remove(configuration);
+ if (configuration->asQObject())
+ configuration->asQObject()->setParent(0);
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlDeployment::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlDeployment::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Deployment]
+ // Adjust subsetted properties
+ removeOwnedElement(configuration);
-/*!
- The specification of properties that parameterize the deployment and execution of one or more Artifacts.
- */
-const QSet<QUmlDeploymentSpecification *> QUmlDeployment::configuration() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeploymentSpecification *> *>(&_configuration));
+ // Adjust opposite properties
+ if (configuration) {
+ configuration->setDeployment(0);
+ }
+ }
}
/*!
The Artifacts that are deployed onto a Node. This association specializes the supplier association.
*/
-const QSet<QUmlDeployedArtifact *> QUmlDeployment::deployedArtifact() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployedArtifact *> *>(&_deployedArtifact));
-}
-
-/*!
- The DeployedTarget which is the target of a Deployment.
- */
-QUmlDeploymentTarget *QUmlDeployment::location() const
+const QSet<QUmlDeployedArtifact *>
+QUmlDeployment::deployedArtifact() const
{
- return reinterpret_cast<QUmlDeploymentTarget *>(_location);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDeployment::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _deployedArtifact;
}
-/*!
- 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.
- */
-bool QUmlDeployment::mustBeOwned() const
+void QUmlDeployment::addDeployedArtifact(QUmlDeployedArtifact *deployedArtifact)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_deployedArtifact.contains(deployedArtifact)) {
+ _deployedArtifact.insert(deployedArtifact);
+ if (deployedArtifact->asQObject() && this->asQObject())
+ QObject::connect(deployedArtifact->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeDeployedArtifact(QObject *)));
-/*!
- 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.
- */
-bool QUmlDeployment::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust subsetted properties
+ addSupplier(deployedArtifact);
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDeployment::isTemplateParameter() const
+void QUmlDeployment::removeDeployedArtifact(QUmlDeployedArtifact *deployedArtifact)
{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDeployment::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDeployment::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (_deployedArtifact.contains(deployedArtifact)) {
+ _deployedArtifact.remove(deployedArtifact);
-/*!
- 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.
- */
-bool QUmlDeployment::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ removeSupplier(deployedArtifact);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The DeployedTarget which is the target of a Deployment.
*/
-QString QUmlDeployment::separator() const
+QUmlDeploymentTarget *
+QUmlDeployment::location() const
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDeployment::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDeployment::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _location;
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDeployment::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlDeployment::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDeployment::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDeployment::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDeployment::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDeployment::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDeployment::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlDeployment::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlDeployment::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
-
-void QUmlDeployment::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
-}
-
-void QUmlDeployment::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Deployment]
-
-void QUmlDeployment::addConfiguration(UmlDeploymentSpecification *configuration)
-{
- UmlDeployment::addConfiguration(configuration);
-}
-
-void QUmlDeployment::removeConfiguration(UmlDeploymentSpecification *configuration)
+void QUmlDeployment::setLocation(QUmlDeploymentTarget *location)
{
- UmlDeployment::removeConfiguration(configuration);
-}
+ // This is a read-write association end
-void QUmlDeployment::addDeployedArtifact(UmlDeployedArtifact *deployedArtifact)
-{
- UmlDeployment::addDeployedArtifact(deployedArtifact);
-}
+ if (_location != location) {
+ // Adjust subsetted properties
+ removeClient(_location);
-void QUmlDeployment::removeDeployedArtifact(UmlDeployedArtifact *deployedArtifact)
-{
- UmlDeployment::removeDeployedArtifact(deployedArtifact);
-}
+ _location = location;
+ if (location->asQObject() && this->asQObject())
+ QObject::connect(location->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setLocation()));
-void QUmlDeployment::setLocation(QUmlDeploymentTarget *location)
-{
- UmlDeployment::setLocation(location);
+ // Adjust subsetted properties
+ setOwner(location);
+ if (location) {
+ addClient(location);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldeployment.h b/src/uml/qumldeployment.h
index 5a303c62..8501af88 100644
--- a/src/uml/qumldeployment.h
+++ b/src/uml/qumldeployment.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldeployment_p.h"
+#include <QtUml/QUmlDependency>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,152 +52,35 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
class QUmlDeployedArtifact;
class QUmlDeploymentSpecification;
class QUmlDeploymentTarget;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlDeployment : public QObject, public UmlDeployment
+class Q_UML_EXPORT QUmlDeployment : public QUmlDependency
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Deployment]
- Q_PROPERTY(QSet<QUmlDeploymentSpecification *> configuration READ configuration)
- Q_PROPERTY(QSet<QUmlDeployedArtifact *> deployedArtifact READ deployedArtifact)
- Q_PROPERTY(QUmlDeploymentTarget * location READ location)
-
public:
- Q_INVOKABLE explicit QUmlDeployment(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Deployment]
- Q_INVOKABLE const QSet<QUmlDeploymentSpecification *> configuration() const;
- Q_INVOKABLE const QSet<QUmlDeployedArtifact *> deployedArtifact() const;
- Q_INVOKABLE QUmlDeploymentTarget *location() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
- // Slots for owned attributes [Deployment]
- void addConfiguration(UmlDeploymentSpecification *configuration);
- void removeConfiguration(UmlDeploymentSpecification *configuration);
- void addDeployedArtifact(UmlDeployedArtifact *deployedArtifact);
- void removeDeployedArtifact(UmlDeployedArtifact *deployedArtifact);
+ explicit QUmlDeployment(bool createQObject = true);
+ virtual ~QUmlDeployment();
+
+ // Owned attributes
+ const QSet<QUmlDeploymentSpecification *> configuration() const;
+ void addConfiguration(QUmlDeploymentSpecification *configuration);
+ void removeConfiguration(QUmlDeploymentSpecification *configuration);
+ const QSet<QUmlDeployedArtifact *> deployedArtifact() const;
+ void addDeployedArtifact(QUmlDeployedArtifact *deployedArtifact);
+ void removeDeployedArtifact(QUmlDeployedArtifact *deployedArtifact);
+ QUmlDeploymentTarget *location() const;
void setLocation(QUmlDeploymentTarget *location);
+
+protected:
+ QSet<QUmlDeploymentSpecification *> _configuration;
+ QSet<QUmlDeployedArtifact *> _deployedArtifact;
+ QUmlDeploymentTarget *_location;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDeployment *)
-Q_DECLARE_METATYPE(QList<QUmlDeployment *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDeployment *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDeployment) *)
QT_END_HEADER
diff --git a/src/uml/qumldeploymentspecification.cpp b/src/uml/qumldeploymentspecification.cpp
index 450def9e..48537c3b 100644
--- a/src/uml/qumldeploymentspecification.cpp
+++ b/src/uml/qumldeploymentspecification.cpp
@@ -40,956 +40,99 @@
****************************************************************************/
#include "qumldeploymentspecification.h"
-#include <QtUml/QUmlArtifact>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlManifestation>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
+#include "private/qumldeploymentspecificationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlDeployment>
/*!
- \class UmlDeploymentSpecification
+ \class QUmlDeploymentSpecification
\inmodule QtUml
\brief A deployment specification specifies a set of properties that determine execution parameters of a component artifact that is deployed on a node. A deployment specification can be aimed at a specific type of container. An artifact that reifies or implements deployment specification properties is a deployment descriptor.
*/
-
-QUmlDeploymentSpecification::QUmlDeploymentSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDeploymentSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDeploymentSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDeploymentSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDeploymentSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDeploymentSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDeploymentSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDeploymentSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDeploymentSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlDeploymentSpecification::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlDeploymentSpecification::importedMember() const
+QUmlDeploymentSpecification::QUmlDeploymentSpecification(bool createQObject) :
+ QUmlArtifact(false),
+ _deployment(0)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlDeploymentSpecificationObject(this);
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlDeploymentSpecification::member() const
+QUmlDeploymentSpecification::~QUmlDeploymentSpecification()
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlDeploymentSpecification::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlDeploymentSpecification::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlDeploymentSpecification::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDeploymentSpecification::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDeploymentSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlDeploymentSpecification::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDeploymentSpecification::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDeploymentSpecification::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDeploymentSpecification::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlDeploymentSpecification::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlDeploymentSpecification::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlDeploymentSpecification::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlDeploymentSpecification::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlDeploymentSpecification::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlDeploymentSpecification::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlDeploymentSpecification::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlDeploymentSpecification::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlDeploymentSpecification::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlDeploymentSpecification::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlDeploymentSpecification::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlDeploymentSpecification::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlDeploymentSpecification::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlDeploymentSpecification::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlDeploymentSpecification::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlDeploymentSpecification::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [Artifact]
-
-/*!
- A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator.
- */
-QString QUmlDeploymentSpecification::fileName() const
-{
- return _fileName;
-}
-
-/*!
- 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.
- */
-const QSet<QUmlManifestation *> QUmlDeploymentSpecification::manifestation() const
-{
- return *(reinterpret_cast<const QSet<QUmlManifestation *> *>(&_manifestation));
-}
-
-/*!
- The Artifacts that are defined (nested) within the Artifact. The association is a specialization of the ownedMember association from Namespace to NamedElement.
- */
-const QSet<QUmlArtifact *> QUmlDeploymentSpecification::nestedArtifact() const
-{
- return *(reinterpret_cast<const QSet<QUmlArtifact *> *>(&_nestedArtifact));
-}
-
-/*!
- The attributes or association ends defined for the Artifact. The association is a specialization of the ownedMember association.
- */
-const QList<QUmlProperty *> QUmlDeploymentSpecification::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The Operations defined for the Artifact. The association is a specialization of the ownedMember association.
- */
-const QList<QUmlOperation *> QUmlDeploymentSpecification::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-// OWNED ATTRIBUTES [DeploymentSpecification]
+// OWNED ATTRIBUTES
/*!
The deployment with which the DeploymentSpecification is associated.
*/
-QUmlDeployment *QUmlDeploymentSpecification::deployment() const
+QUmlDeployment *
+QUmlDeploymentSpecification::deployment() const
{
- return reinterpret_cast<QUmlDeployment *>(_deployment);
-}
+ // This is a read-write association end
-/*!
- The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'.
- */
-QString QUmlDeploymentSpecification::deploymentLocation() const
-{
- return _deploymentLocation;
-}
-
-/*!
- The location where a component Artifact executes. This may be a local or remote location.
- */
-QString QUmlDeploymentSpecification::executionLocation() const
-{
- return _executionLocation;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDeploymentSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDeploymentSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDeploymentSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _deployment;
}
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDeploymentSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlDeploymentSpecification::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlDeploymentSpecification::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlDeploymentSpecification::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlDeploymentSpecification::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDeploymentSpecification::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlDeploymentSpecification::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlDeploymentSpecification::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlDeploymentSpecification::allFeatures() const
+void QUmlDeploymentSpecification::setDeployment(QUmlDeployment *deployment)
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlDeploymentSpecification::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ if (_deployment != deployment) {
+ // Adjust subsetted properties
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ _deployment = deployment;
+ if (deployment->asQObject() && this->asQObject())
+ QObject::connect(deployment->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDeployment()));
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ // Adjust subsetted properties
+ setOwner(deployment);
+ }
}
/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
+ The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'.
*/
-QSet<QUmlNamedElement *> QUmlDeploymentSpecification::inherit(QSet<QUmlNamedElement *> inhs) const
+QString
+QUmlDeploymentSpecification::deploymentLocation() const
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlDeploymentSpecification::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ return _deploymentLocation;
}
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlDeploymentSpecification::isTemplate() const
+void QUmlDeploymentSpecification::setDeploymentLocation(QString deploymentLocation)
{
- return UmlClassifier::isTemplate();
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlDeploymentSpecification::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ if (_deploymentLocation != deploymentLocation) {
+ _deploymentLocation = deploymentLocation;
+ }
}
/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ The location where a component Artifact executes. This may be a local or remote location.
*/
-QSet<QUmlClassifier *> QUmlDeploymentSpecification::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDeploymentSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDeploymentSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDeploymentSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDeploymentSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDeploymentSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDeploymentSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlDeploymentSpecification::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlDeploymentSpecification::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlDeploymentSpecification::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlDeploymentSpecification::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlDeploymentSpecification::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlDeploymentSpecification::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDeploymentSpecification::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDeploymentSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlDeploymentSpecification::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDeploymentSpecification::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlDeploymentSpecification::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlDeploymentSpecification::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlDeploymentSpecification::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlDeploymentSpecification::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlDeploymentSpecification::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlDeploymentSpecification::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlDeploymentSpecification::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlDeploymentSpecification::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlDeploymentSpecification::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlDeploymentSpecification::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlDeploymentSpecification::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlDeploymentSpecification::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlDeploymentSpecification::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlDeploymentSpecification::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlDeploymentSpecification::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
+QString
+QUmlDeploymentSpecification::executionLocation() const
{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlDeploymentSpecification::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlDeploymentSpecification::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlDeploymentSpecification::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlDeploymentSpecification::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlDeploymentSpecification::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlDeploymentSpecification::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlDeploymentSpecification::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlDeploymentSpecification::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Artifact]
-
-void QUmlDeploymentSpecification::setFileName(QString fileName)
-{
- UmlArtifact::setFileName(fileName);
-}
-
-void QUmlDeploymentSpecification::addManifestation(UmlManifestation *manifestation)
-{
- UmlArtifact::addManifestation(manifestation);
-}
+ // This is a read-write property
-void QUmlDeploymentSpecification::removeManifestation(UmlManifestation *manifestation)
-{
- UmlArtifact::removeManifestation(manifestation);
-}
-
-void QUmlDeploymentSpecification::addNestedArtifact(UmlArtifact *nestedArtifact)
-{
- UmlArtifact::addNestedArtifact(nestedArtifact);
-}
-
-void QUmlDeploymentSpecification::removeNestedArtifact(UmlArtifact *nestedArtifact)
-{
- UmlArtifact::removeNestedArtifact(nestedArtifact);
-}
-
-void QUmlDeploymentSpecification::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlArtifact::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlDeploymentSpecification::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlArtifact::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlDeploymentSpecification::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlArtifact::addOwnedOperation(ownedOperation);
-}
-
-void QUmlDeploymentSpecification::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlArtifact::removeOwnedOperation(ownedOperation);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentSpecification]
-
-void QUmlDeploymentSpecification::setDeployment(QUmlDeployment *deployment)
-{
- UmlDeploymentSpecification::setDeployment(deployment);
-}
-
-void QUmlDeploymentSpecification::setDeploymentLocation(QString deploymentLocation)
-{
- UmlDeploymentSpecification::setDeploymentLocation(deploymentLocation);
+ return _executionLocation;
}
void QUmlDeploymentSpecification::setExecutionLocation(QString executionLocation)
{
- UmlDeploymentSpecification::setExecutionLocation(executionLocation);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_executionLocation != executionLocation) {
+ _executionLocation = executionLocation;
+ }
+}
diff --git a/src/uml/qumldeploymentspecification.h b/src/uml/qumldeploymentspecification.h
index c817f461..01214b93 100644
--- a/src/uml/qumldeploymentspecification.h
+++ b/src/uml/qumldeploymentspecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldeploymentspecification_p.h"
+#include <QtUml/QUmlArtifact>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,300 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlArtifact;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
class QUmlDeployment;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlManifestation;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlDeploymentSpecification : public QObject, public UmlDeploymentSpecification
+class Q_UML_EXPORT QUmlDeploymentSpecification : public QUmlArtifact
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Artifact]
- Q_PROPERTY(QString fileName READ fileName)
- Q_PROPERTY(QSet<QUmlManifestation *> manifestation READ manifestation)
- Q_PROPERTY(QSet<QUmlArtifact *> nestedArtifact READ nestedArtifact)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
-
- // Properties [DeploymentSpecification]
- Q_PROPERTY(QUmlDeployment * deployment READ deployment)
- Q_PROPERTY(QString deploymentLocation READ deploymentLocation)
- Q_PROPERTY(QString executionLocation READ executionLocation)
-
public:
- Q_INVOKABLE explicit QUmlDeploymentSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Artifact]
- Q_INVOKABLE QString fileName() const;
- Q_INVOKABLE const QSet<QUmlManifestation *> manifestation() const;
- Q_INVOKABLE const QSet<QUmlArtifact *> nestedArtifact() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
+ explicit QUmlDeploymentSpecification(bool createQObject = true);
+ virtual ~QUmlDeploymentSpecification();
- // Owned attributes [DeploymentSpecification]
- Q_INVOKABLE QUmlDeployment *deployment() const;
- Q_INVOKABLE QString deploymentLocation() const;
- Q_INVOKABLE QString executionLocation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [Artifact]
- void setFileName(QString fileName);
- void addManifestation(UmlManifestation *manifestation);
- void removeManifestation(UmlManifestation *manifestation);
- void addNestedArtifact(UmlArtifact *nestedArtifact);
- void removeNestedArtifact(UmlArtifact *nestedArtifact);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
-
- // Slots for owned attributes [DeploymentSpecification]
+ // Owned attributes
+ QUmlDeployment *deployment() const;
void setDeployment(QUmlDeployment *deployment);
+ QString deploymentLocation() const;
void setDeploymentLocation(QString deploymentLocation);
+ QString executionLocation() const;
void setExecutionLocation(QString executionLocation);
+
+protected:
+ QUmlDeployment *_deployment;
+ QString _deploymentLocation;
+ QString _executionLocation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDeploymentSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlDeploymentSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDeploymentSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDeploymentSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumldeploymenttarget.cpp b/src/uml/qumldeploymenttarget.cpp
index 238545cb..2397a486 100644
--- a/src/uml/qumldeploymenttarget.cpp
+++ b/src/uml/qumldeploymenttarget.cpp
@@ -40,239 +40,112 @@
****************************************************************************/
#include "qumldeploymenttarget.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlDeploymentTarget
+ \class QUmlDeploymentTarget
\inmodule QtUml
\brief A deployment target is the location for a deployed artifact.
*/
-
-QUmlDeploymentTarget::QUmlDeploymentTarget(QObject *parent) :
- QObject(parent)
+QUmlDeploymentTarget::QUmlDeploymentTarget()
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDeploymentTarget::ownedComment() const
+QUmlDeploymentTarget::~QUmlDeploymentTarget()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDeploymentTarget::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
*/
-QUmlElement *QUmlDeploymentTarget::owner() const
+const QSet<QUmlPackageableElement *>
+QUmlDeploymentTarget::deployedElement() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-only derived association end
-// OWNED ATTRIBUTES [NamedElement]
+ qWarning("UmlDeploymentTarget::deployedElement(): to be implemented (this is a derived association end)");
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDeploymentTarget::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return QSet<QUmlPackageableElement *>();
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlDeploymentTarget::name() const
+void QUmlDeploymentTarget::addDeployedElement(QUmlPackageableElement *deployedElement)
{
- return _name;
-}
+ // This is a read-only derived association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDeploymentTarget::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ qWarning("UmlDeploymentTarget::deployedElement(): to be implemented (this is a derived association end)");
+ Q_UNUSED(deployedElement);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDeploymentTarget::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- 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.
- */
-QString QUmlDeploymentTarget::qualifiedName() const
+void QUmlDeploymentTarget::removeDeployedElement(QUmlPackageableElement *deployedElement)
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-only derived association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDeploymentTarget::visibility() const
-{
- return _visibility;
-}
+ qWarning("UmlDeploymentTarget::deployedElement(): to be implemented (this is a derived association end)");
+ Q_UNUSED(deployedElement);
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlDeploymentTarget::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
The set of Deployments for a DeploymentTarget.
*/
-const QSet<QUmlDeployment *> QUmlDeploymentTarget::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDeploymentTarget::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDeploymentTarget::mustBeOwned() const
+const QSet<QUmlDeployment *>
+QUmlDeploymentTarget::deployment() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDeploymentTarget::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDeploymentTarget::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _deployment;
}
-/*!
- 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.
- */
-bool QUmlDeploymentTarget::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlDeploymentTarget::addDeployment(QUmlDeployment *deployment)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDeploymentTarget::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (!_deployment.contains(deployment)) {
+ _deployment.insert(deployment);
+ if (deployment->asQObject() && this->asQObject())
+ QObject::connect(deployment->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeDeployment(QObject *)));
+ deployment->asQObject()->setParent(this->asQObject());
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // Adjust subsetted properties
+ addOwnedElement(deployment);
+ addClientDependency(deployment);
-void QUmlDeploymentTarget::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust opposite properties
+ if (deployment) {
+ deployment->setLocation(this);
+ }
+ }
}
-void QUmlDeploymentTarget::removeOwnedComment(UmlComment *ownedComment)
+void QUmlDeploymentTarget::removeDeployment(QUmlDeployment *deployment)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (_deployment.contains(deployment)) {
+ _deployment.remove(deployment);
+ if (deployment->asQObject())
+ deployment->asQObject()->setParent(0);
-void QUmlDeploymentTarget::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // Adjust subsetted properties
+ removeOwnedElement(deployment);
+ removeClientDependency(deployment);
-void QUmlDeploymentTarget::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ // Adjust opposite properties
+ if (deployment) {
+ deployment->setLocation(0);
+ }
+ }
}
-void QUmlDeploymentTarget::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDeploymentTarget::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDeploymentTarget::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlDeploymentTarget::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlDeploymentTarget::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldeploymenttarget.h b/src/uml/qumldeploymenttarget.h
index e03d8d15..0ee2e37d 100644
--- a/src/uml/qumldeploymenttarget.h
+++ b/src/uml/qumldeploymenttarget.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldeploymenttarget_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,90 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
class QUmlDeployment;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlPackageableElement;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlDeploymentTarget : public QObject, public UmlDeploymentTarget
+class Q_UML_EXPORT QUmlDeploymentTarget : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
+public:
+ virtual ~QUmlDeploymentTarget();
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+ // Owned attributes
+ const QSet<QUmlPackageableElement *> deployedElement() const;
+ Q_DECL_HIDDEN void addDeployedElement(QUmlPackageableElement *deployedElement);
+ Q_DECL_HIDDEN void removeDeployedElement(QUmlPackageableElement *deployedElement);
+ const QSet<QUmlDeployment *> deployment() const;
+ void addDeployment(QUmlDeployment *deployment);
+ void removeDeployment(QUmlDeployment *deployment);
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
+protected:
+ explicit QUmlDeploymentTarget();
-public:
- Q_DECL_HIDDEN explicit QUmlDeploymentTarget(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
+ QSet<QUmlDeployment *> _deployment;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDeploymentTarget *)
-Q_DECLARE_METATYPE(QList<QUmlDeploymentTarget *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDeploymentTarget *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDeploymentTarget) *)
QT_END_HEADER
diff --git a/src/uml/qumldestroylinkaction.cpp b/src/uml/qumldestroylinkaction.cpp
index eeb3834d..4c60415f 100644
--- a/src/uml/qumldestroylinkaction.cpp
+++ b/src/uml/qumldestroylinkaction.cpp
@@ -40,552 +40,64 @@
****************************************************************************/
#include "qumldestroylinkaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlLinkEndData>
-#include <QtUml/QUmlLinkEndDestructionData>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumldestroylinkactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlLinkEndDestructionData>
/*!
- \class UmlDestroyLinkAction
+ \class QUmlDestroyLinkAction
\inmodule QtUml
\brief A destroy link action is a write link action that destroys links and link objects.
*/
-
-QUmlDestroyLinkAction::QUmlDestroyLinkAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDestroyLinkAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDestroyLinkAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDestroyLinkAction::owner() const
+QUmlDestroyLinkAction::QUmlDestroyLinkAction(bool createQObject)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlDestroyLinkActionObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDestroyLinkAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDestroyLinkAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDestroyLinkAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDestroyLinkAction::namespace_() const
+QUmlDestroyLinkAction::~QUmlDestroyLinkAction()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlDestroyLinkAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDestroyLinkAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDestroyLinkAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDestroyLinkAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDestroyLinkAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlDestroyLinkAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlDestroyLinkAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlDestroyLinkAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlDestroyLinkAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlDestroyLinkAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlDestroyLinkAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlDestroyLinkAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlDestroyLinkAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlDestroyLinkAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlDestroyLinkAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlDestroyLinkAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlDestroyLinkAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlDestroyLinkAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlDestroyLinkAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlDestroyLinkAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [LinkAction]
-
-/*!
- Pins taking end objects and qualifier values as input.
- */
-const QSet<QUmlInputPin *> QUmlDestroyLinkAction::inputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
-}
-
-// OWNED ATTRIBUTES [DestroyLinkAction]
+// OWNED ATTRIBUTES
/*!
Specifies ends of association and inputs.
*/
-const QSet<QUmlLinkEndDestructionData *> QUmlDestroyLinkAction::endData() const
-{
- return *(reinterpret_cast<const QSet<QUmlLinkEndDestructionData *> *>(&_endData));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDestroyLinkAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDestroyLinkAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDestroyLinkAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDestroyLinkAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDestroyLinkAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDestroyLinkAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlDestroyLinkAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlDestroyLinkAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [LinkAction]
-
-/*!
- The association operates on LinkAction. It returns the association of the action.
- */
-QUmlAssociation *QUmlDestroyLinkAction::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(UmlLinkAction::association());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDestroyLinkAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDestroyLinkAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDestroyLinkAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDestroyLinkAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDestroyLinkAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDestroyLinkAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDestroyLinkAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDestroyLinkAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlDestroyLinkAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlDestroyLinkAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDestroyLinkAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDestroyLinkAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlDestroyLinkAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlDestroyLinkAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlDestroyLinkAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlDestroyLinkAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlDestroyLinkAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlDestroyLinkAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlDestroyLinkAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlDestroyLinkAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlDestroyLinkAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlDestroyLinkAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlDestroyLinkAction::setLocallyReentrant(bool isLocallyReentrant)
+const QSet<QUmlLinkEndDestructionData *>
+QUmlDestroyLinkAction::endData() const
{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlDestroyLinkAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlDestroyLinkAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlDestroyLinkAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlDestroyLinkAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ return _endData;
}
-// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
-
-void QUmlDestroyLinkAction::addInputValue(UmlInputPin *inputValue)
+void QUmlDestroyLinkAction::addEndData(QUmlLinkEndDestructionData *endData)
{
- UmlLinkAction::addInputValue(inputValue);
-}
+ // This is a read-write association end
-void QUmlDestroyLinkAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::removeInputValue(inputValue);
+ if (!_endData.contains(endData)) {
+ _endData.insert(endData);
+ if (endData->asQObject() && this->asQObject())
+ QObject::connect(endData->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEndData(QObject *)));
+ endData->asQObject()->setParent(this->asQObject());
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [DestroyLinkAction]
-
-void QUmlDestroyLinkAction::addEndData(UmlLinkEndDestructionData *endData)
+void QUmlDestroyLinkAction::removeEndData(QUmlLinkEndDestructionData *endData)
{
- UmlDestroyLinkAction::addEndData(endData);
-}
+ // This is a read-write association end
-void QUmlDestroyLinkAction::removeEndData(UmlLinkEndDestructionData *endData)
-{
- UmlDestroyLinkAction::removeEndData(endData);
+ if (_endData.contains(endData)) {
+ _endData.remove(endData);
+ if (endData->asQObject())
+ endData->asQObject()->setParent(0);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldestroylinkaction.h b/src/uml/qumldestroylinkaction.h
index 75e71dc4..bf91798a 100644
--- a/src/uml/qumldestroylinkaction.h
+++ b/src/uml/qumldestroylinkaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldestroylinkaction_p.h"
+#include <QtUml/QUmlWriteLinkAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,199 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlLinkEndData;
class QUmlLinkEndDestructionData;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlDestroyLinkAction : public QObject, public UmlDestroyLinkAction
+class Q_UML_EXPORT QUmlDestroyLinkAction : public QUmlWriteLinkAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [LinkAction]
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
-
- // Properties [DestroyLinkAction]
- Q_PROPERTY(QSet<QUmlLinkEndDestructionData *> endData READ endData)
-
public:
- Q_INVOKABLE explicit QUmlDestroyLinkAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [LinkAction]
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
-
- // Owned attributes [DestroyLinkAction]
- Q_INVOKABLE const QSet<QUmlLinkEndDestructionData *> endData() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [LinkAction]
- Q_INVOKABLE QUmlAssociation *association() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+ explicit QUmlDestroyLinkAction(bool createQObject = true);
+ virtual ~QUmlDestroyLinkAction();
- // Slots for owned attributes [LinkAction]
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
+ // Owned attributes
+ const QSet<QUmlLinkEndDestructionData *> endData() const;
+ void addEndData(QUmlLinkEndDestructionData *endData);
+ void removeEndData(QUmlLinkEndDestructionData *endData);
- // Slots for owned attributes [DestroyLinkAction]
- void addEndData(UmlLinkEndDestructionData *endData);
- void removeEndData(UmlLinkEndDestructionData *endData);
+protected:
+ QSet<QUmlLinkEndDestructionData *> _endData;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDestroyLinkAction *)
-Q_DECLARE_METATYPE(QList<QUmlDestroyLinkAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDestroyLinkAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDestroyLinkAction) *)
QT_END_HEADER
diff --git a/src/uml/qumldestroyobjectaction.cpp b/src/uml/qumldestroyobjectaction.cpp
index 682e53c6..c8240f9c 100644
--- a/src/uml/qumldestroyobjectaction.cpp
+++ b/src/uml/qumldestroyobjectaction.cpp
@@ -40,538 +40,104 @@
****************************************************************************/
#include "qumldestroyobjectaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumldestroyobjectactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlDestroyObjectAction
+ \class QUmlDestroyObjectAction
\inmodule QtUml
\brief A destroy object action is an action that destroys objects.
*/
-
-QUmlDestroyObjectAction::QUmlDestroyObjectAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDestroyObjectAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDestroyObjectAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDestroyObjectAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDestroyObjectAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDestroyObjectAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDestroyObjectAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDestroyObjectAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDestroyObjectAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDestroyObjectAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDestroyObjectAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDestroyObjectAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDestroyObjectAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlDestroyObjectAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlDestroyObjectAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlDestroyObjectAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlDestroyObjectAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlDestroyObjectAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlDestroyObjectAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlDestroyObjectAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlDestroyObjectAction::redefinedNode() const
+QUmlDestroyObjectAction::QUmlDestroyObjectAction(bool createQObject) :
+ _isDestroyLinks(false),
+ _isDestroyOwnedObjects(false),
+ _target(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ if (createQObject)
+ _qObject = new QUmlDestroyObjectActionObject(this);
}
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlDestroyObjectAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlDestroyObjectAction::context() const
+QUmlDestroyObjectAction::~QUmlDestroyObjectAction()
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlDestroyObjectAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlDestroyObjectAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlDestroyObjectAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlDestroyObjectAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlDestroyObjectAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [DestroyObjectAction]
+// OWNED ATTRIBUTES
/*!
Specifies whether links in which the object participates are destroyed along with the object.
*/
-bool QUmlDestroyObjectAction::isDestroyLinks() const
-{
- return _isDestroyLinks;
-}
-
-/*!
- Specifies whether objects owned by the object are destroyed along with the object.
- */
-bool QUmlDestroyObjectAction::isDestroyOwnedObjects() const
-{
- return _isDestroyOwnedObjects;
-}
-
-/*!
- The input pin providing the object to be destroyed.
- */
-QUmlInputPin *QUmlDestroyObjectAction::target() const
+bool
+QUmlDestroyObjectAction::isDestroyLinks() const
{
- return reinterpret_cast<QUmlInputPin *>(_target);
-}
+ // This is a read-write property
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDestroyObjectAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _isDestroyLinks;
}
-/*!
- 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.
- */
-bool QUmlDestroyObjectAction::mustBeOwned() const
+void QUmlDestroyObjectAction::setDestroyLinks(bool isDestroyLinks)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write property
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDestroyObjectAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (_isDestroyLinks != isDestroyLinks) {
+ _isDestroyLinks = isDestroyLinks;
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ Specifies whether objects owned by the object are destroyed along with the object.
*/
-QSet<QUmlPackage *> QUmlDestroyObjectAction::allOwningPackages() const
+bool
+QUmlDestroyObjectAction::isDestroyOwnedObjects() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlDestroyObjectAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isDestroyOwnedObjects;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDestroyObjectAction::separator() const
+void QUmlDestroyObjectAction::setDestroyOwnedObjects(bool isDestroyOwnedObjects)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlDestroyObjectAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_isDestroyOwnedObjects != isDestroyOwnedObjects) {
+ _isDestroyOwnedObjects = isDestroyOwnedObjects;
+ }
}
/*!
- 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.
+ The input pin providing the object to be destroyed.
*/
-bool QUmlDestroyObjectAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlInputPin *
+QUmlDestroyObjectAction::target() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDestroyObjectAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDestroyObjectAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-void QUmlDestroyObjectAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDestroyObjectAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDestroyObjectAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDestroyObjectAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDestroyObjectAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDestroyObjectAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return _target;
}
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlDestroyObjectAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlDestroyObjectAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDestroyObjectAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlDestroyObjectAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlDestroyObjectAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlDestroyObjectAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlDestroyObjectAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlDestroyObjectAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlDestroyObjectAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlDestroyObjectAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlDestroyObjectAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlDestroyObjectAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlDestroyObjectAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlDestroyObjectAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlDestroyObjectAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlDestroyObjectAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlDestroyObjectAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlDestroyObjectAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlDestroyObjectAction::setTarget(QUmlInputPin *target)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlDestroyObjectAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ if (_target != target) {
+ // Adjust subsetted properties
+ removeInput(_target);
-// SLOTS FOR OWNED ATTRIBUTES [DestroyObjectAction]
+ _target = target;
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTarget()));
+ target->asQObject()->setParent(this->asQObject());
-void QUmlDestroyObjectAction::setDestroyLinks(bool isDestroyLinks)
-{
- UmlDestroyObjectAction::setDestroyLinks(isDestroyLinks);
+ // Adjust subsetted properties
+ if (target) {
+ addInput(target);
+ }
+ }
}
-void QUmlDestroyObjectAction::setDestroyOwnedObjects(bool isDestroyOwnedObjects)
-{
- UmlDestroyObjectAction::setDestroyOwnedObjects(isDestroyOwnedObjects);
-}
-
-void QUmlDestroyObjectAction::setTarget(QUmlInputPin *target)
-{
- UmlDestroyObjectAction::setTarget(target);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldestroyobjectaction.h b/src/uml/qumldestroyobjectaction.h
index 14deea42..941f9a1b 100644
--- a/src/uml/qumldestroyobjectaction.h
+++ b/src/uml/qumldestroyobjectaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldestroyobjectaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,188 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlDestroyObjectAction : public QObject, public UmlDestroyObjectAction
+class Q_UML_EXPORT QUmlDestroyObjectAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [DestroyObjectAction]
- Q_PROPERTY(bool isDestroyLinks READ isDestroyLinks)
- Q_PROPERTY(bool isDestroyOwnedObjects READ isDestroyOwnedObjects)
- Q_PROPERTY(QUmlInputPin * target READ target)
-
public:
- Q_INVOKABLE explicit QUmlDestroyObjectAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlDestroyObjectAction(bool createQObject = true);
+ virtual ~QUmlDestroyObjectAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [DestroyObjectAction]
- Q_INVOKABLE bool isDestroyLinks() const;
- Q_INVOKABLE bool isDestroyOwnedObjects() const;
- Q_INVOKABLE QUmlInputPin *target() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [DestroyObjectAction]
+ // Owned attributes
+ bool isDestroyLinks() const;
void setDestroyLinks(bool isDestroyLinks);
+ bool isDestroyOwnedObjects() const;
void setDestroyOwnedObjects(bool isDestroyOwnedObjects);
+ QUmlInputPin *target() const;
void setTarget(QUmlInputPin *target);
+
+protected:
+ bool _isDestroyLinks;
+ bool _isDestroyOwnedObjects;
+ QUmlInputPin *_target;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDestroyObjectAction *)
-Q_DECLARE_METATYPE(QList<QUmlDestroyObjectAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDestroyObjectAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDestroyObjectAction) *)
QT_END_HEADER
diff --git a/src/uml/qumldestructionoccurrencespecification.cpp b/src/uml/qumldestructionoccurrencespecification.cpp
index f2596fcc..9dfd2667 100644
--- a/src/uml/qumldestructionoccurrencespecification.cpp
+++ b/src/uml/qumldestructionoccurrencespecification.cpp
@@ -40,327 +40,27 @@
****************************************************************************/
#include "qumldestructionoccurrencespecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlMessage>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumldestructionoccurrencespecificationobject_p.h"
/*!
- \class UmlDestructionOccurrenceSpecification
+ \class QUmlDestructionOccurrenceSpecification
\inmodule QtUml
\brief A destruction event models the destruction of an object.
*/
-
-QUmlDestructionOccurrenceSpecification::QUmlDestructionOccurrenceSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDestructionOccurrenceSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDestructionOccurrenceSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDestructionOccurrenceSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDestructionOccurrenceSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDestructionOccurrenceSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDestructionOccurrenceSpecification::nameExpression() const
+QUmlDestructionOccurrenceSpecification::QUmlDestructionOccurrenceSpecification(bool createQObject) :
+ QUmlMessageOccurrenceSpecification(false)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlDestructionOccurrenceSpecificationObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDestructionOccurrenceSpecification::namespace_() const
+QUmlDestructionOccurrenceSpecification::~QUmlDestructionOccurrenceSpecification()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlDestructionOccurrenceSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlDestructionOccurrenceSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlDestructionOccurrenceSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlDestructionOccurrenceSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlDestructionOccurrenceSpecification::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [OccurrenceSpecification]
-
-/*!
- References the Lifeline on which the OccurrenceSpecification appears.
- */
-QUmlLifeline *QUmlDestructionOccurrenceSpecification::covered() const
-{
- return reinterpret_cast<QUmlLifeline *>(_covered);
-}
-
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlDestructionOccurrenceSpecification::toAfter() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toAfter));
-}
-
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlDestructionOccurrenceSpecification::toBefore() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toBefore));
-}
-
-// OWNED ATTRIBUTES [MessageEnd]
-
-/*!
- References a Message.
- */
-QUmlMessage *QUmlDestructionOccurrenceSpecification::message() const
-{
- return reinterpret_cast<QUmlMessage *>(_message);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDestructionOccurrenceSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDestructionOccurrenceSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDestructionOccurrenceSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDestructionOccurrenceSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDestructionOccurrenceSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDestructionOccurrenceSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDestructionOccurrenceSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDestructionOccurrenceSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDestructionOccurrenceSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDestructionOccurrenceSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDestructionOccurrenceSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDestructionOccurrenceSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlDestructionOccurrenceSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlDestructionOccurrenceSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlDestructionOccurrenceSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlDestructionOccurrenceSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlDestructionOccurrenceSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
-
-void QUmlDestructionOccurrenceSpecification::setCovered(QUmlLifeline *covered)
-{
- UmlOccurrenceSpecification::setCovered(covered);
-}
-
-void QUmlDestructionOccurrenceSpecification::addToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::addToAfter(toAfter);
-}
-
-void QUmlDestructionOccurrenceSpecification::removeToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::removeToAfter(toAfter);
-}
-
-void QUmlDestructionOccurrenceSpecification::addToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::addToBefore(toBefore);
-}
-
-void QUmlDestructionOccurrenceSpecification::removeToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::removeToBefore(toBefore);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
-
-void QUmlDestructionOccurrenceSpecification::setMessage(QUmlMessage *message)
-{
- UmlMessageEnd::setMessage(message);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldestructionoccurrencespecification.h b/src/uml/qumldestructionoccurrencespecification.h
index d86604c8..2e3dcc13 100644
--- a/src/uml/qumldestructionoccurrencespecification.h
+++ b/src/uml/qumldestructionoccurrencespecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldestructionoccurrencespecification_p.h"
+#include <QtUml/QUmlMessageOccurrenceSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,123 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlMessage;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlDestructionOccurrenceSpecification : public QObject, public UmlDestructionOccurrenceSpecification
+class Q_UML_EXPORT QUmlDestructionOccurrenceSpecification : public QUmlMessageOccurrenceSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [OccurrenceSpecification]
- Q_PROPERTY(QUmlLifeline * covered READ covered)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toAfter READ toAfter)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toBefore READ toBefore)
-
- // Properties [MessageEnd]
- Q_PROPERTY(QUmlMessage * message READ message)
-
public:
- Q_INVOKABLE explicit QUmlDestructionOccurrenceSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [OccurrenceSpecification]
- Q_INVOKABLE QUmlLifeline *covered() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toAfter() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toBefore() const;
-
- // Owned attributes [MessageEnd]
- Q_INVOKABLE QUmlMessage *message() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
+ explicit QUmlDestructionOccurrenceSpecification(bool createQObject = true);
+ virtual ~QUmlDestructionOccurrenceSpecification();
- // Slots for owned attributes [OccurrenceSpecification]
- void setCovered(QUmlLifeline *covered);
- void addToAfter(UmlGeneralOrdering *toAfter);
- void removeToAfter(UmlGeneralOrdering *toAfter);
- void addToBefore(UmlGeneralOrdering *toBefore);
- void removeToBefore(UmlGeneralOrdering *toBefore);
- // Slots for owned attributes [MessageEnd]
- void setMessage(QUmlMessage *message);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDestructionOccurrenceSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlDestructionOccurrenceSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDestructionOccurrenceSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDestructionOccurrenceSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumldevice.cpp b/src/uml/qumldevice.cpp
index da012365..f271e22a 100644
--- a/src/uml/qumldevice.cpp
+++ b/src/uml/qumldevice.cpp
@@ -40,1097 +40,27 @@
****************************************************************************/
#include "qumldevice.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlNode>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumldeviceobject_p.h"
/*!
- \class UmlDevice
+ \class QUmlDevice
\inmodule QtUml
\brief 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).
*/
-
-QUmlDevice::QUmlDevice(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDevice::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDevice::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDevice::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDevice::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDevice::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDevice::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDevice::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDevice::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlDevice::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlDevice::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlDevice::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlDevice::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlDevice::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlDevice::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDevice::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDevice::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlDevice::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlDevice::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlDevice::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlDevice::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlDevice::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlDevice::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlDevice::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlDevice::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlDevice::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlDevice::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlDevice::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlDevice::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlDevice::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlDevice::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlDevice::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlDevice::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlDevice::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlDevice::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlDevice::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlDevice::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlDevice::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlDevice::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlDevice::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlDevice::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlDevice::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlDevice::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlDevice::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlDevice::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlDevice::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlDevice::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlDevice::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlDevice::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlDevice::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlDevice::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlDevice::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlDevice::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OWNED ATTRIBUTES [Node]
-
-/*!
- The Nodes that are defined (nested) within the Node.
- */
-const QSet<QUmlNode *> QUmlDevice::nestedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlNode *> *>(&_nestedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDevice::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDevice::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDevice::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDevice::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDevice::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDevice::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlDevice::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlDevice::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlDevice::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlDevice::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlDevice::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDevice::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlDevice::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlDevice::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlDevice::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlDevice::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlDevice::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDevice::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlDevice::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlDevice::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlDevice::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlDevice::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlDevice::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlDevice::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDevice::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDevice::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDevice::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDevice::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDevice::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDevice::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlDevice::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlDevice::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlDevice::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlDevice::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlDevice::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlDevice::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDevice::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDevice::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlDevice::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlDevice::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlDevice::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlDevice::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlDevice::addCollaborationUse(UmlCollaborationUse *collaborationUse)
+QUmlDevice::QUmlDevice(bool createQObject) :
+ QUmlNode(false)
{
- UmlClassifier::addCollaborationUse(collaborationUse);
+ if (createQObject)
+ _qObject = new QUmlDeviceObject(this);
}
-void QUmlDevice::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
+QUmlDevice::~QUmlDevice()
{
- UmlClassifier::removeCollaborationUse(collaborationUse);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-void QUmlDevice::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlDevice::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlDevice::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlDevice::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlDevice::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlDevice::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlDevice::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlDevice::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlDevice::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlDevice::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlDevice::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlDevice::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlDevice::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlDevice::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlDevice::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlDevice::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlDevice::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlDevice::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlDevice::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlDevice::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlDevice::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlDevice::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlDevice::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlDevice::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlDevice::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlDevice::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlDevice::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlDevice::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlDevice::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlDevice::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlDevice::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlDevice::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlDevice::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlDevice::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlDevice::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlDevice::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlDevice::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Node]
-
-void QUmlDevice::addNestedNode(UmlNode *nestedNode)
-{
- UmlNode::addNestedNode(nestedNode);
-}
-
-void QUmlDevice::removeNestedNode(UmlNode *nestedNode)
-{
- UmlNode::removeNestedNode(nestedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumldevice.h b/src/uml/qumldevice.h
index d52230f5..d63c13ec 100644
--- a/src/uml/qumldevice.h
+++ b/src/uml/qumldevice.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldevice_p.h"
+#include <QtUml/QUmlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,357 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlNode;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlDevice : public QObject, public UmlDevice
+class Q_UML_EXPORT QUmlDevice : public QUmlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [Node]
- Q_PROPERTY(QSet<QUmlNode *> nestedNode READ nestedNode)
-
public:
- Q_INVOKABLE explicit QUmlDevice(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Owned attributes [Node]
- Q_INVOKABLE const QSet<QUmlNode *> nestedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ explicit QUmlDevice(bool createQObject = true);
+ virtual ~QUmlDevice();
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
- // Slots for owned attributes [Node]
- void addNestedNode(UmlNode *nestedNode);
- void removeNestedNode(UmlNode *nestedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDevice *)
-Q_DECLARE_METATYPE(QList<QUmlDevice *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDevice *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDevice) *)
QT_END_HEADER
diff --git a/src/uml/qumldirectedrelationship.cpp b/src/uml/qumldirectedrelationship.cpp
index f9fab612..322e6568 100644
--- a/src/uml/qumldirectedrelationship.cpp
+++ b/src/uml/qumldirectedrelationship.cpp
@@ -40,114 +40,96 @@
****************************************************************************/
#include "qumldirectedrelationship.h"
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlElement>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlDirectedRelationship
+ \class QUmlDirectedRelationship
\inmodule QtUml
\brief A directed relationship represents a relationship between a collection of source model elements and a collection of target model elements.
*/
-
-QUmlDirectedRelationship::QUmlDirectedRelationship(QObject *parent) :
- QObject(parent)
+QUmlDirectedRelationship::QUmlDirectedRelationship()
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDirectedRelationship::ownedComment() const
+QUmlDirectedRelationship::~QUmlDirectedRelationship()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ Specifies the sources of the DirectedRelationship.
*/
-const QSet<QUmlElement *> QUmlDirectedRelationship::ownedElement() const
+const QSet<QUmlElement *>
+QUmlDirectedRelationship::source() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-only derived union association end
+
+ return _source;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDirectedRelationship::owner() const
+void QUmlDirectedRelationship::addSource(QUmlElement *source)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [Relationship]
+ if (!_source.contains(source)) {
+ _source.insert(source);
+ if (source->asQObject() && this->asQObject())
+ QObject::connect(source->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSource(QObject *)));
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlDirectedRelationship::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ // Adjust subsetted properties
+ addRelatedElement(source);
+ }
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlDirectedRelationship::source() const
+void QUmlDirectedRelationship::removeSource(QUmlElement *source)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
+ // This is a read-only derived union association end
+
+ if (_source.contains(source)) {
+ _source.remove(source);
+
+ // Adjust subsetted properties
+ removeRelatedElement(source);
+ }
}
/*!
Specifies the targets of the DirectedRelationship.
*/
-const QSet<QUmlElement *> QUmlDirectedRelationship::target() const
+const QSet<QUmlElement *>
+QUmlDirectedRelationship::target() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OPERATIONS [Element]
+ // This is a read-only derived union association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDirectedRelationship::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _target;
}
-/*!
- 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.
- */
-bool QUmlDirectedRelationship::mustBeOwned() const
+void QUmlDirectedRelationship::addTarget(QUmlElement *target)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived union association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ if (!_target.contains(target)) {
+ _target.insert(target);
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTarget(QObject *)));
-void QUmlDirectedRelationship::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust subsetted properties
+ addRelatedElement(target);
+ }
}
-void QUmlDirectedRelationship::removeOwnedComment(UmlComment *ownedComment)
+void QUmlDirectedRelationship::removeTarget(QUmlElement *target)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-only derived union association end
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+ if (_target.contains(target)) {
+ _target.remove(target);
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-QT_END_NAMESPACE
+ // Adjust subsetted properties
+ removeRelatedElement(target);
+ }
+}
diff --git a/src/uml/qumldirectedrelationship.h b/src/uml/qumldirectedrelationship.h
index 388c4bf5..d7a465d7 100644
--- a/src/uml/qumldirectedrelationship.h
+++ b/src/uml/qumldirectedrelationship.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldirectedrelationship_p.h"
+#include <QtUml/QUmlRelationship>
+
QT_BEGIN_HEADER
@@ -52,60 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlElement;
-class Q_UML_EXPORT QUmlDirectedRelationship : public QObject, public UmlDirectedRelationship
+class Q_UML_EXPORT QUmlDirectedRelationship : public QUmlRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
public:
- Q_DECL_HIDDEN explicit QUmlDirectedRelationship(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
+ virtual ~QUmlDirectedRelationship();
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ // Owned attributes
+ const QSet<QUmlElement *> source() const;
+ Q_DECL_HIDDEN void addSource(QUmlElement *source);
+ Q_DECL_HIDDEN void removeSource(QUmlElement *source);
+ const QSet<QUmlElement *> target() const;
+ Q_DECL_HIDDEN void addTarget(QUmlElement *target);
+ Q_DECL_HIDDEN void removeTarget(QUmlElement *target);
- // Slots for owned attributes [Relationship]
+protected:
+ explicit QUmlDirectedRelationship();
- // Slots for owned attributes [DirectedRelationship]
+ QSet<QUmlElement *> _source;
+ QSet<QUmlElement *> _target;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDirectedRelationship *)
-Q_DECLARE_METATYPE(QList<QUmlDirectedRelationship *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDirectedRelationship *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDirectedRelationship) *)
QT_END_HEADER
diff --git a/src/uml/qumlduration.cpp b/src/uml/qumlduration.cpp
index 0c201092..0c724f6b 100644
--- a/src/uml/qumlduration.cpp
+++ b/src/uml/qumlduration.cpp
@@ -40,369 +40,93 @@
****************************************************************************/
#include "qumlduration.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlObservation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumldurationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlObservation>
/*!
- \class UmlDuration
+ \class QUmlDuration
\inmodule QtUml
\brief Duration defines a value specification that specifies the temporal distance between two time instants.
*/
-
-QUmlDuration::QUmlDuration(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDuration::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDuration::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDuration::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDuration::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDuration::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDuration::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDuration::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDuration::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlDuration::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDuration::owningTemplateParameter() const
+QUmlDuration::QUmlDuration(bool createQObject) :
+ _expr(0)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlDurationObject(this);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlDuration::templateParameter() const
+QUmlDuration::~QUmlDuration()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDuration::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Duration]
+// OWNED ATTRIBUTES
/*!
The value of the Duration.
*/
-QUmlValueSpecification *QUmlDuration::expr() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_expr);
-}
-
-/*!
- Refers to the time and duration observations that are involved in expr.
- */
-const QSet<QUmlObservation *> QUmlDuration::observation() const
-{
- return *(reinterpret_cast<const QSet<QUmlObservation *> *>(&_observation));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDuration::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDuration::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDuration::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDuration::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDuration::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDuration::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDuration::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlDuration::booleanValue() const
+QUmlValueSpecification *
+QUmlDuration::expr() const
{
- return UmlValueSpecification::booleanValue();
-}
+ // This is a read-write association end
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlDuration::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlDuration::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
+ return _expr;
}
-/*!
- 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.
- */
-bool QUmlDuration::isComputable() const
+void QUmlDuration::setExpr(QUmlValueSpecification *expr)
{
- return UmlValueSpecification::isComputable();
-}
+ // This is a read-write association end
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlDuration::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
+ if (_expr != expr) {
+ // Adjust subsetted properties
+ removeOwnedElement(_expr);
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlDuration::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
+ _expr = expr;
+ if (expr->asQObject() && this->asQObject())
+ QObject::connect(expr->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExpr()));
+ expr->asQObject()->setParent(this->asQObject());
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlDuration::stringValue() const
-{
- return UmlValueSpecification::stringValue();
+ // Adjust subsetted properties
+ if (expr) {
+ addOwnedElement(expr);
+ }
+ }
}
/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
+ Refers to the time and duration observations that are involved in expr.
*/
-int QUmlDuration::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDuration::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDuration::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDuration::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDuration::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDuration::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDuration::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlDuration::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDuration::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+const QSet<QUmlObservation *>
+QUmlDuration::observation() const
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
+ // This is a read-write association end
-void QUmlDuration::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return _observation;
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDuration::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlDuration::addObservation(QUmlObservation *observation)
{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Duration]
+ // This is a read-write association end
-void QUmlDuration::setExpr(QUmlValueSpecification *expr)
-{
- UmlDuration::setExpr(expr);
+ if (!_observation.contains(observation)) {
+ _observation.insert(observation);
+ if (observation->asQObject() && this->asQObject())
+ QObject::connect(observation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeObservation(QObject *)));
+ }
}
-void QUmlDuration::addObservation(UmlObservation *observation)
+void QUmlDuration::removeObservation(QUmlObservation *observation)
{
- UmlDuration::addObservation(observation);
-}
+ // This is a read-write association end
-void QUmlDuration::removeObservation(UmlObservation *observation)
-{
- UmlDuration::removeObservation(observation);
+ if (_observation.contains(observation)) {
+ _observation.remove(observation);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlduration.h b/src/uml/qumlduration.h
index ee42e4a3..f3efba30 100644
--- a/src/uml/qumlduration.h
+++ b/src/uml/qumlduration.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlduration_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,134 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlObservation;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlDuration : public QObject, public UmlDuration
+class Q_UML_EXPORT QUmlDuration : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Duration]
- Q_PROPERTY(QUmlValueSpecification * expr READ expr)
- Q_PROPERTY(QSet<QUmlObservation *> observation READ observation)
-
public:
- Q_INVOKABLE explicit QUmlDuration(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlDuration(bool createQObject = true);
+ virtual ~QUmlDuration();
- // Owned attributes [Duration]
- Q_INVOKABLE QUmlValueSpecification *expr() const;
- Q_INVOKABLE const QSet<QUmlObservation *> observation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Duration]
+ // Owned attributes
+ QUmlValueSpecification *expr() const;
void setExpr(QUmlValueSpecification *expr);
- void addObservation(UmlObservation *observation);
- void removeObservation(UmlObservation *observation);
+ const QSet<QUmlObservation *> observation() const;
+ void addObservation(QUmlObservation *observation);
+ void removeObservation(QUmlObservation *observation);
+
+protected:
+ QUmlValueSpecification *_expr;
+ QSet<QUmlObservation *> _observation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDuration *)
-Q_DECLARE_METATYPE(QList<QUmlDuration *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDuration *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDuration) *)
QT_END_HEADER
diff --git a/src/uml/qumldurationconstraint.cpp b/src/uml/qumldurationconstraint.cpp
index 90cb9e99..a4a2c53d 100644
--- a/src/uml/qumldurationconstraint.cpp
+++ b/src/uml/qumldurationconstraint.cpp
@@ -40,322 +40,75 @@
****************************************************************************/
#include "qumldurationconstraint.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDurationInterval>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterval>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumldurationconstraintobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlDurationInterval>
/*!
- \class UmlDurationConstraint
+ \class QUmlDurationConstraint
\inmodule QtUml
\brief A duration constraint is a constraint that refers to a duration interval.
*/
-
-QUmlDurationConstraint::QUmlDurationConstraint(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDurationConstraint::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDurationConstraint::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDurationConstraint::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDurationConstraint::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlDurationConstraint::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDurationConstraint::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDurationConstraint::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDurationConstraint::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDurationConstraint::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDurationConstraint::qualifiedName() const
+QUmlDurationConstraint::QUmlDurationConstraint(bool createQObject) :
+ QUmlIntervalConstraint(false),
+ _specification(0)
{
- return UmlNamedElement::qualifiedName();
+ if (createQObject)
+ _qObject = new QUmlDurationConstraintObject(this);
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDurationConstraint::visibility() const
+QUmlDurationConstraint::~QUmlDurationConstraint()
{
- return _visibility;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Constraint]
-
-/*!
- The ordered set of Elements referenced by this Constraint.
- */
-const QList<QUmlElement *> QUmlDurationConstraint::constrainedElement() const
-{
- return *(reinterpret_cast<const QList<QUmlElement *> *>(&_constrainedElement));
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDurationConstraint::context() const
-{
- return reinterpret_cast<QUmlNamespace *>(_context);
-}
-// OWNED ATTRIBUTES [DurationConstraint]
+// OWNED ATTRIBUTES
/*!
The value of firstEvent[i] is related to constrainedElement[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters constrainedElement[i]. If firstEvent[i] is false, then the corresponding observation event is the last time instant the execution is within constrainedElement[i]. Default value is true applied when constrainedElement[i] refers an element that represents only one time instant.
*/
-bool QUmlDurationConstraint::firstEvent() const
-{
- return _firstEvent;
-}
-
-/*!
- The interval constraining the duration.
- */
-QUmlDurationInterval *QUmlDurationConstraint::specification() const
-{
- return reinterpret_cast<QUmlDurationInterval *>(_specification);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDurationConstraint::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDurationConstraint::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlDurationConstraint::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDurationConstraint::isTemplateParameter() const
+bool
+QUmlDurationConstraint::firstEvent() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write property
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDurationConstraint::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _firstEvent;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDurationConstraint::allOwningPackages() const
+void QUmlDurationConstraint::setFirstEvent(bool firstEvent)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlDurationConstraint::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_firstEvent != firstEvent) {
+ _firstEvent = firstEvent;
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The interval constraining the duration.
*/
-QString QUmlDurationConstraint::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDurationConstraint::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDurationConstraint::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDurationConstraint::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlDurationConstraint::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDurationConstraint::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDurationConstraint::removeClientDependency(UmlDependency *clientDependency)
+QUmlDurationInterval *
+QUmlDurationConstraint::specification() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlDurationConstraint::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDurationConstraint::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDurationConstraint::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Constraint]
-
-void QUmlDurationConstraint::addConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::addConstrainedElement(constrainedElement);
-}
-
-void QUmlDurationConstraint::removeConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::removeConstrainedElement(constrainedElement);
-}
-
-void QUmlDurationConstraint::setContext(QUmlNamespace *context)
-{
- UmlConstraint::setContext(context);
-}
-// SLOTS FOR OWNED ATTRIBUTES [DurationConstraint]
-
-void QUmlDurationConstraint::setFirstEvent(bool firstEvent)
-{
- UmlDurationConstraint::setFirstEvent(firstEvent);
+ return _specification;
}
void QUmlDurationConstraint::setSpecification(QUmlDurationInterval *specification)
{
- UmlDurationConstraint::setSpecification(specification);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_specification != specification) {
+ _specification = specification;
+ if (specification->asQObject() && this->asQObject())
+ QObject::connect(specification->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecification()));
+ specification->asQObject()->setParent(this->asQObject());
+ }
+}
diff --git a/src/uml/qumldurationconstraint.h b/src/uml/qumldurationconstraint.h
index 7b940136..e95dac73 100644
--- a/src/uml/qumldurationconstraint.h
+++ b/src/uml/qumldurationconstraint.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldurationconstraint_p.h"
+#include <QtUml/QUmlIntervalConstraint>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,134 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
class QUmlDurationInterval;
-class QUmlElement;
-class QUmlInterval;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlDurationConstraint : public QObject, public UmlDurationConstraint
+class Q_UML_EXPORT QUmlDurationConstraint : public QUmlIntervalConstraint
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Constraint]
- Q_PROPERTY(QList<QUmlElement *> constrainedElement READ constrainedElement)
- Q_PROPERTY(QUmlNamespace * context READ context)
-
- // Properties [IntervalConstraint]
-
- // Properties [DurationConstraint]
- Q_PROPERTY(bool firstEvent READ firstEvent)
- Q_PROPERTY(QUmlDurationInterval * specification READ specification)
-
public:
- Q_INVOKABLE explicit QUmlDurationConstraint(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Constraint]
- Q_INVOKABLE const QList<QUmlElement *> constrainedElement() const;
- Q_INVOKABLE QUmlNamespace *context() const;
+ explicit QUmlDurationConstraint(bool createQObject = true);
+ virtual ~QUmlDurationConstraint();
- // Owned attributes [IntervalConstraint]
-
- // Owned attributes [DurationConstraint]
- Q_INVOKABLE bool firstEvent() const;
- Q_INVOKABLE QUmlDurationInterval *specification() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Constraint]
- void addConstrainedElement(UmlElement *constrainedElement);
- void removeConstrainedElement(UmlElement *constrainedElement);
- void setContext(QUmlNamespace *context);
-
- // Slots for owned attributes [IntervalConstraint]
-
- // Slots for owned attributes [DurationConstraint]
+ // Owned attributes
+ bool firstEvent() const;
void setFirstEvent(bool firstEvent);
+ QUmlDurationInterval *specification() const;
void setSpecification(QUmlDurationInterval *specification);
+
+protected:
+ bool _firstEvent;
+ QUmlDurationInterval *_specification;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDurationConstraint *)
-Q_DECLARE_METATYPE(QList<QUmlDurationConstraint *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDurationConstraint *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDurationConstraint) *)
QT_END_HEADER
diff --git a/src/uml/qumldurationinterval.cpp b/src/uml/qumldurationinterval.cpp
index 44634e89..96e2e430 100644
--- a/src/uml/qumldurationinterval.cpp
+++ b/src/uml/qumldurationinterval.cpp
@@ -40,364 +40,77 @@
****************************************************************************/
#include "qumldurationinterval.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDuration>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumldurationintervalobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlDuration>
/*!
- \class UmlDurationInterval
+ \class QUmlDurationInterval
\inmodule QtUml
\brief A duration interval defines the range between two durations.
*/
-
-QUmlDurationInterval::QUmlDurationInterval(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDurationInterval::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDurationInterval::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDurationInterval::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDurationInterval::clientDependency() const
+QUmlDurationInterval::QUmlDurationInterval(bool createQObject) :
+ QUmlInterval(false),
+ _max(0),
+ _min(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlDurationIntervalObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlDurationInterval::name() const
+QUmlDurationInterval::~QUmlDurationInterval()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDurationInterval::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDurationInterval::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDurationInterval::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlDurationInterval::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDurationInterval::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlDurationInterval::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDurationInterval::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [DurationInterval]
+// OWNED ATTRIBUTES
/*!
Refers to the Duration denoting the maximum value of the range.
*/
-QUmlDuration *QUmlDurationInterval::max() const
+QUmlDuration *
+QUmlDurationInterval::max() const
{
- return reinterpret_cast<QUmlDuration *>(_max);
-}
+ // This is a read-write association end
-/*!
- Refers to the Duration denoting the minimum value of the range.
- */
-QUmlDuration *QUmlDurationInterval::min() const
-{
- return reinterpret_cast<QUmlDuration *>(_min);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDurationInterval::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDurationInterval::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDurationInterval::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDurationInterval::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _max;
}
-/*!
- 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.
- */
-bool QUmlDurationInterval::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlDurationInterval::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDurationInterval::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlDurationInterval::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlDurationInterval::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlDurationInterval::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- 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.
- */
-bool QUmlDurationInterval::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlDurationInterval::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlDurationInterval::realValue() const
+void QUmlDurationInterval::setMax(QUmlDuration *max)
{
- return UmlValueSpecification::realValue();
-}
+ // This is a read-write association end
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlDurationInterval::stringValue() const
-{
- return UmlValueSpecification::stringValue();
+ if (_max != max) {
+ _max = max;
+ if (max->asQObject() && this->asQObject())
+ QObject::connect(max->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMax()));
+ }
}
/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
+ Refers to the Duration denoting the minimum value of the range.
*/
-int QUmlDurationInterval::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDurationInterval::addOwnedComment(UmlComment *ownedComment)
+QUmlDuration *
+QUmlDurationInterval::min() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlDurationInterval::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDurationInterval::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDurationInterval::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDurationInterval::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlDurationInterval::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlDurationInterval::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDurationInterval::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlDurationInterval::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDurationInterval::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DurationInterval]
-
-void QUmlDurationInterval::setMax(QUmlDuration *max)
-{
- UmlDurationInterval::setMax(max);
+ return _min;
}
void QUmlDurationInterval::setMin(QUmlDuration *min)
{
- UmlDurationInterval::setMin(min);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_min != min) {
+ _min = min;
+ if (min->asQObject() && this->asQObject())
+ QObject::connect(min->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMin()));
+ }
+}
diff --git a/src/uml/qumldurationinterval.h b/src/uml/qumldurationinterval.h
index 58ba3fdc..1a39be91 100644
--- a/src/uml/qumldurationinterval.h
+++ b/src/uml/qumldurationinterval.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldurationinterval_p.h"
+#include <QtUml/QUmlInterval>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,139 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
class QUmlDuration;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlDurationInterval : public QObject, public UmlDurationInterval
+class Q_UML_EXPORT QUmlDurationInterval : public QUmlInterval
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Interval]
-
- // Properties [DurationInterval]
- Q_PROPERTY(QUmlDuration * max READ max)
- Q_PROPERTY(QUmlDuration * min READ min)
-
public:
- Q_INVOKABLE explicit QUmlDurationInterval(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Interval]
+ explicit QUmlDurationInterval(bool createQObject = true);
+ virtual ~QUmlDurationInterval();
- // Owned attributes [DurationInterval]
- Q_INVOKABLE QUmlDuration *max() const;
- Q_INVOKABLE QUmlDuration *min() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Interval]
-
- // Slots for owned attributes [DurationInterval]
+ // Owned attributes
+ QUmlDuration *max() const;
void setMax(QUmlDuration *max);
+ QUmlDuration *min() const;
void setMin(QUmlDuration *min);
+
+protected:
+ QUmlDuration *_max;
+ QUmlDuration *_min;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDurationInterval *)
-Q_DECLARE_METATYPE(QList<QUmlDurationInterval *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDurationInterval *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDurationInterval) *)
QT_END_HEADER
diff --git a/src/uml/qumldurationobservation.cpp b/src/uml/qumldurationobservation.cpp
index 899c297f..e774f4ba 100644
--- a/src/uml/qumldurationobservation.cpp
+++ b/src/uml/qumldurationobservation.cpp
@@ -40,286 +40,73 @@
****************************************************************************/
#include "qumldurationobservation.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumldurationobservationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlNamedElement>
/*!
- \class UmlDurationObservation
+ \class QUmlDurationObservation
\inmodule QtUml
\brief A duration observation is a reference to a duration during an execution. It points out the element(s) in the model to observe and whether the observations are when this model element is entered or when it is exited.
*/
-
-QUmlDurationObservation::QUmlDurationObservation(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlDurationObservation::ownedComment() const
+QUmlDurationObservation::QUmlDurationObservation(bool createQObject) :
+ _event(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlDurationObservationObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlDurationObservation::ownedElement() const
+QUmlDurationObservation::~QUmlDurationObservation()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlDurationObservation::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlDurationObservation::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlDurationObservation::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlDurationObservation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlDurationObservation::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlDurationObservation::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlDurationObservation::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlDurationObservation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlDurationObservation::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [DurationObservation]
+// OWNED ATTRIBUTES
/*!
The observation is determined by the entering or exiting of the event element during execution.
*/
-QUmlNamedElement *QUmlDurationObservation::event() const
+QUmlNamedElement *
+QUmlDurationObservation::event() const
{
- return reinterpret_cast<QUmlNamedElement *>(_event);
-}
+ // This is a read-write association end
-/*!
- The value of firstEvent[i] is related to event[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters event[i]. If firstEvent[i] is false, then the corresponding observation event is the time instant the execution exits event[i]. Default value is true applied when event[i] refers an element that represents only one time instant.
- */
-bool QUmlDurationObservation::firstEvent() const
-{
- return _firstEvent;
+ return _event;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlDurationObservation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlDurationObservation::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlDurationObservation::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlDurationObservation::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlDurationObservation::allNamespaces() const
+void QUmlDurationObservation::setEvent(QUmlNamedElement *event)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlDurationObservation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (_event != event) {
+ _event = event;
+ if (event->asQObject() && this->asQObject())
+ QObject::connect(event->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEvent()));
+ }
}
/*!
- 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.
- */
-bool QUmlDurationObservation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The value of firstEvent[i] is related to event[i] (where i is 1 or 2). If firstEvent[i] is true, then the corresponding observation event is the first time instant the execution enters event[i]. If firstEvent[i] is false, then the corresponding observation event is the time instant the execution exits event[i]. Default value is true applied when event[i] refers an element that represents only one time instant.
*/
-QString QUmlDurationObservation::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlDurationObservation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlDurationObservation::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlDurationObservation::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlDurationObservation::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlDurationObservation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlDurationObservation::removeClientDependency(UmlDependency *clientDependency)
+bool
+QUmlDurationObservation::firstEvent() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlDurationObservation::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write property
-void QUmlDurationObservation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlDurationObservation::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DurationObservation]
-
-void QUmlDurationObservation::setEvent(QUmlNamedElement *event)
-{
- UmlDurationObservation::setEvent(event);
+ return _firstEvent;
}
void QUmlDurationObservation::setFirstEvent(bool firstEvent)
{
- UmlDurationObservation::setFirstEvent(firstEvent);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_firstEvent != firstEvent) {
+ _firstEvent = firstEvent;
+ }
+}
diff --git a/src/uml/qumldurationobservation.h b/src/uml/qumldurationobservation.h
index 14cda9fe..96333fac 100644
--- a/src/uml/qumldurationobservation.h
+++ b/src/uml/qumldurationobservation.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umldurationobservation_p.h"
+#include <QtUml/QUmlObservation>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,112 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlDurationObservation : public QObject, public UmlDurationObservation
+class Q_UML_EXPORT QUmlDurationObservation : public QUmlObservation
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [DurationObservation]
- Q_PROPERTY(QUmlNamedElement * event READ event)
- Q_PROPERTY(bool firstEvent READ firstEvent)
-
public:
- Q_INVOKABLE explicit QUmlDurationObservation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlDurationObservation(bool createQObject = true);
+ virtual ~QUmlDurationObservation();
- // Owned attributes [DurationObservation]
- Q_INVOKABLE QUmlNamedElement *event() const;
- Q_INVOKABLE bool firstEvent() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [DurationObservation]
+ // Owned attributes
+ QUmlNamedElement *event() const;
void setEvent(QUmlNamedElement *event);
+ bool firstEvent() const;
void setFirstEvent(bool firstEvent);
+
+protected:
+ QUmlNamedElement *_event;
+ bool _firstEvent;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlDurationObservation *)
-Q_DECLARE_METATYPE(QList<QUmlDurationObservation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlDurationObservation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlDurationObservation) *)
QT_END_HEADER
diff --git a/src/uml/qumlelement.cpp b/src/uml/qumlelement.cpp
index 84a4537c..5f91b89b 100644
--- a/src/uml/qumlelement.cpp
+++ b/src/uml/qumlelement.cpp
@@ -42,58 +42,130 @@
#include <QtUml/QUmlComment>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlElement
+ \class QUmlElement
\inmodule QtUml
\brief An element is a constituent of a model. As such, it has the capability of owning other elements.
*/
+QUmlElement::QUmlElement() :
+ _owner(0)
+{
+}
-QUmlElement::QUmlElement(QObject *parent) :
- QObject(parent)
+QUmlElement::~QUmlElement()
{
}
-// OWNED ATTRIBUTES [Element]
+// OWNED ATTRIBUTES
/*!
The Comments owned by this element.
*/
-const QSet<QUmlComment *> QUmlElement::ownedComment() const
+const QSet<QUmlComment *>
+QUmlElement::ownedComment() const
+{
+ // This is a read-write association end
+
+ return _ownedComment;
+}
+
+void QUmlElement::addOwnedComment(QUmlComment *ownedComment)
+{
+ // This is a read-write association end
+
+ if (!_ownedComment.contains(ownedComment)) {
+ _ownedComment.insert(ownedComment);
+ if (ownedComment->asQObject() && this->asQObject())
+ QObject::connect(ownedComment->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedComment(QObject *)));
+ ownedComment->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedElement(ownedComment);
+ }
+}
+
+void QUmlElement::removeOwnedComment(QUmlComment *ownedComment)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ // This is a read-write association end
+
+ if (_ownedComment.contains(ownedComment)) {
+ _ownedComment.remove(ownedComment);
+ if (ownedComment->asQObject())
+ ownedComment->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedElement(ownedComment);
+ }
}
/*!
The Elements owned by this element.
*/
-const QSet<QUmlElement *> QUmlElement::ownedElement() const
+const QSet<QUmlElement *>
+QUmlElement::ownedElement() const
+{
+ // This is a read-only derived union association end
+
+ return _ownedElement;
+}
+
+void QUmlElement::addOwnedElement(QUmlElement *ownedElement)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-only derived union association end
+
+ if (!_ownedElement.contains(ownedElement)) {
+ _ownedElement.insert(ownedElement);
+ if (ownedElement->asQObject() && this->asQObject())
+ QObject::connect(ownedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedElement(QObject *)));
+ ownedElement->asQObject()->setParent(this->asQObject());
+ }
+}
+
+void QUmlElement::removeOwnedElement(QUmlElement *ownedElement)
+{
+ // This is a read-only derived union association end
+
+ if (_ownedElement.contains(ownedElement)) {
+ _ownedElement.remove(ownedElement);
+ if (ownedElement->asQObject())
+ ownedElement->asQObject()->setParent(0);
+ }
}
/*!
The Element that owns this element.
*/
-QUmlElement *QUmlElement::owner() const
+QUmlElement *
+QUmlElement::owner() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ // This is a read-only derived union association end
+
+ return _owner;
+}
+
+void QUmlElement::setOwner(QUmlElement *owner)
+{
+ // This is a read-only derived union association end
+
+ if (_owner != owner) {
+ _owner = owner;
+ if (owner->asQObject() && this->asQObject())
+ QObject::connect(owner->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwner()));
+ }
}
-// OPERATIONS [Element]
+// OPERATIONS
/*!
The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
*/
QSet<QUmlElement *> QUmlElement::allOwnedElements() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ qWarning("UmlElement::allOwnedElements(): to be implemented (operation)");
+
+ return QSet<QUmlElement *> ();
}
/*!
@@ -101,20 +173,8 @@ QSet<QUmlElement *> QUmlElement::allOwnedElements() const
*/
bool QUmlElement::mustBeOwned() const
{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ qWarning("UmlElement::mustBeOwned(): to be implemented (operation)");
-void QUmlElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return bool ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlelement.h b/src/uml/qumlelement.h
index 7748ce48..38fa9fe6 100644
--- a/src/uml/qumlelement.h
+++ b/src/uml/qumlelement.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlelement_p.h"
+#include <QtModeling/QModelingObject>
+
QT_BEGIN_HEADER
@@ -54,39 +54,36 @@ QT_MODULE(QtUml)
class QUmlComment;
-class Q_UML_EXPORT QUmlElement : public QObject, public UmlElement
+class Q_UML_EXPORT QUmlElement : public QModelingObject
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
public:
- Q_DECL_HIDDEN explicit QUmlElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ virtual ~QUmlElement();
+
+ // Owned attributes
+ const QSet<QUmlComment *> ownedComment() const;
+ void addOwnedComment(QUmlComment *ownedComment);
+ void removeOwnedComment(QUmlComment *ownedComment);
+ const QSet<QUmlElement *> ownedElement() const;
+ Q_DECL_HIDDEN void addOwnedElement(QUmlElement *ownedElement);
+ Q_DECL_HIDDEN void removeOwnedElement(QUmlElement *ownedElement);
+ QUmlElement *owner() const;
+ Q_DECL_HIDDEN void setOwner(QUmlElement *owner);
+
+ // Operations
+ QSet<QUmlElement *> allOwnedElements() const;
+ bool mustBeOwned() const;
+
+protected:
+ explicit QUmlElement();
+
+ QSet<QUmlComment *> _ownedComment;
+ QSet<QUmlElement *> _ownedElement;
+ QUmlElement *_owner;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlElement *)
-Q_DECLARE_METATYPE(QList<QUmlElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlelementimport.cpp b/src/uml/qumlelementimport.cpp
index 94544090..d45bd5dd 100644
--- a/src/uml/qumlelementimport.cpp
+++ b/src/uml/qumlelementimport.cpp
@@ -40,182 +40,147 @@
****************************************************************************/
#include "qumlelementimport.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumlelementimportobject_p.h"
+
#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlPackageableElement>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlElementImport
+ \class QUmlElementImport
\inmodule QtUml
\brief An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier.
*/
-
-QUmlElementImport::QUmlElementImport(QObject *parent) :
- QObject(parent)
+QUmlElementImport::QUmlElementImport(bool createQObject) :
+ _importedElement(0),
+ _importingNamespace(0),
+ _visibility(QtUml::VisibilityKindPublic)
{
+ if (createQObject)
+ _qObject = new QUmlElementImportObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlElementImport::ownedComment() const
+QUmlElementImport::~QUmlElementImport()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlElementImport::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used.
*/
-QUmlElement *QUmlElementImport::owner() const
+QString
+QUmlElementImport::alias() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write property
-// OWNED ATTRIBUTES [Relationship]
+ return _alias;
+}
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlElementImport::relatedElement() const
+void QUmlElementImport::setAlias(QString alias)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
+ // This is a read-write property
-// OWNED ATTRIBUTES [DirectedRelationship]
+ if (_alias != alias) {
+ _alias = alias;
+ }
+}
/*!
- Specifies the sources of the DirectedRelationship.
+ Specifies the PackageableElement whose name is to be added to a Namespace.
*/
-const QSet<QUmlElement *> QUmlElementImport::source() const
+QUmlPackageableElement *
+QUmlElementImport::importedElement() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
+ // This is a read-write association end
+
+ return _importedElement;
}
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlElementImport::target() const
+void QUmlElementImport::setImportedElement(QUmlPackageableElement *importedElement)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ElementImport]
+ if (_importedElement != importedElement) {
+ // Adjust subsetted properties
+ removeTarget(_importedElement);
-/*!
- Specifies the name that should be added to the namespace of the importing package in lieu of the name of the imported packagable element. The aliased name must not clash with any other member name in the importing package. By default, no alias is used.
- */
-QString QUmlElementImport::alias() const
-{
- return _alias;
-}
+ _importedElement = importedElement;
+ if (importedElement->asQObject() && this->asQObject())
+ QObject::connect(importedElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setImportedElement()));
-/*!
- Specifies the PackageableElement whose name is to be added to a Namespace.
- */
-QUmlPackageableElement *QUmlElementImport::importedElement() const
-{
- return reinterpret_cast<QUmlPackageableElement *>(_importedElement);
+ // Adjust subsetted properties
+ if (importedElement) {
+ addTarget(importedElement);
+ }
+ }
}
/*!
Specifies the Namespace that imports a PackageableElement from another Package.
*/
-QUmlNamespace *QUmlElementImport::importingNamespace() const
+QUmlNamespace *
+QUmlElementImport::importingNamespace() const
{
- return reinterpret_cast<QUmlNamespace *>(_importingNamespace);
+ // This is a read-write association end
+
+ return _importingNamespace;
}
-/*!
- 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.
- */
-QtUml::VisibilityKind QUmlElementImport::visibility() const
+void QUmlElementImport::setImportingNamespace(QUmlNamespace *importingNamespace)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_importingNamespace != importingNamespace) {
+ // Adjust subsetted properties
+ removeSource(_importingNamespace);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlElementImport::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ _importingNamespace = importingNamespace;
+ if (importingNamespace->asQObject() && this->asQObject())
+ QObject::connect(importingNamespace->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setImportingNamespace()));
-/*!
- 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.
- */
-bool QUmlElementImport::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ // Adjust subsetted properties
+ setOwner(importingNamespace);
+ if (importingNamespace) {
+ addSource(importingNamespace);
+ }
+ }
}
-// OPERATIONS [ElementImport]
-
/*!
- The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.
+ 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.
*/
-QString QUmlElementImport::getName() const
+QtUml::VisibilityKind
+QUmlElementImport::visibility() const
{
- return UmlElementImport::getName();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write property
-void QUmlElementImport::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _visibility;
}
-void QUmlElementImport::removeOwnedComment(UmlComment *ownedComment)
+void QUmlElementImport::setVisibility(QtUml::VisibilityKind visibility)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [ElementImport]
+ // This is a read-write property
-void QUmlElementImport::setAlias(QString alias)
-{
- UmlElementImport::setAlias(alias);
+ if (_visibility != visibility) {
+ _visibility = visibility;
+ }
}
-void QUmlElementImport::setImportedElement(QUmlPackageableElement *importedElement)
-{
- UmlElementImport::setImportedElement(importedElement);
-}
+// OPERATIONS
-void QUmlElementImport::setImportingNamespace(QUmlNamespace *importingNamespace)
+/*!
+ The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.
+ */
+QString QUmlElementImport::getName() const
{
- UmlElementImport::setImportingNamespace(importingNamespace);
-}
+ qWarning("UmlElementImport::getName(): to be implemented (operation)");
-void QUmlElementImport::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlElementImport::setVisibility(visibility);
+ return QString ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlelementimport.h b/src/uml/qumlelementimport.h
index 88ce6beb..67cb9a2f 100644
--- a/src/uml/qumlelementimport.h
+++ b/src/uml/qumlelementimport.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlelementimport_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
#include <QtUml/QtUmlNamespace>
@@ -54,83 +54,38 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlNamespace;
class QUmlPackageableElement;
-class Q_UML_EXPORT QUmlElementImport : public QObject, public UmlElementImport
+class Q_UML_EXPORT QUmlElementImport : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [ElementImport]
- Q_PROPERTY(QString alias READ alias)
- Q_PROPERTY(QUmlPackageableElement * importedElement READ importedElement)
- Q_PROPERTY(QUmlNamespace * importingNamespace READ importingNamespace)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_INVOKABLE explicit QUmlElementImport(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
+ explicit QUmlElementImport(bool createQObject = true);
+ virtual ~QUmlElementImport();
- // Owned attributes [ElementImport]
- Q_INVOKABLE QString alias() const;
- Q_INVOKABLE QUmlPackageableElement *importedElement() const;
- Q_INVOKABLE QUmlNamespace *importingNamespace() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ElementImport]
- Q_INVOKABLE QString getName() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [ElementImport]
+ // Owned attributes
+ QString alias() const;
void setAlias(QString alias);
+ QUmlPackageableElement *importedElement() const;
void setImportedElement(QUmlPackageableElement *importedElement);
+ QUmlNamespace *importingNamespace() const;
void setImportingNamespace(QUmlNamespace *importingNamespace);
+ QtUml::VisibilityKind visibility() const;
void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Operations
+ QString getName() const;
+
+protected:
+ QString _alias;
+ QUmlPackageableElement *_importedElement;
+ QUmlNamespace *_importingNamespace;
+ QtUml::VisibilityKind _visibility;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlElementImport *)
-Q_DECLARE_METATYPE(QList<QUmlElementImport *> *)
-Q_DECLARE_METATYPE(QSet<QUmlElementImport *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlElementImport) *)
QT_END_HEADER
diff --git a/src/uml/qumlencapsulatedclassifier.cpp b/src/uml/qumlencapsulatedclassifier.cpp
index fd499499..c1dc07fb 100644
--- a/src/uml/qumlencapsulatedclassifier.cpp
+++ b/src/uml/qumlencapsulatedclassifier.cpp
@@ -40,897 +40,65 @@
****************************************************************************/
#include "qumlencapsulatedclassifier.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlEncapsulatedClassifier
+ \class QUmlEncapsulatedClassifier
\inmodule QtUml
\brief A classifier has the ability to own ports as specific and type checked interaction points.
*/
-
-QUmlEncapsulatedClassifier::QUmlEncapsulatedClassifier(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlEncapsulatedClassifier::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlEncapsulatedClassifier::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlEncapsulatedClassifier::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlEncapsulatedClassifier::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlEncapsulatedClassifier::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlEncapsulatedClassifier::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlEncapsulatedClassifier::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlEncapsulatedClassifier::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlEncapsulatedClassifier::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlEncapsulatedClassifier::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlEncapsulatedClassifier::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlEncapsulatedClassifier::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlEncapsulatedClassifier::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlEncapsulatedClassifier::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlEncapsulatedClassifier::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlEncapsulatedClassifier::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlEncapsulatedClassifier::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlEncapsulatedClassifier::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlEncapsulatedClassifier::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlEncapsulatedClassifier::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlEncapsulatedClassifier::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlEncapsulatedClassifier::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlEncapsulatedClassifier::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlEncapsulatedClassifier::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlEncapsulatedClassifier::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlEncapsulatedClassifier::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlEncapsulatedClassifier::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlEncapsulatedClassifier::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlEncapsulatedClassifier::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlEncapsulatedClassifier::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlEncapsulatedClassifier::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlEncapsulatedClassifier::redefinedClassifier() const
+QUmlEncapsulatedClassifier::QUmlEncapsulatedClassifier()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
}
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlEncapsulatedClassifier::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlEncapsulatedClassifier::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlEncapsulatedClassifier::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlEncapsulatedClassifier::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the properties owned by the classifier.
- */
-const QList<QUmlProperty *> QUmlEncapsulatedClassifier::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlEncapsulatedClassifier::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlEncapsulatedClassifier::part() const
+QUmlEncapsulatedClassifier::~QUmlEncapsulatedClassifier()
{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
}
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlEncapsulatedClassifier::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
+// OWNED ATTRIBUTES
/*!
References a set of ports that an encapsulated classifier owns.
*/
-const QSet<QUmlPort *> QUmlEncapsulatedClassifier::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlEncapsulatedClassifier::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlEncapsulatedClassifier::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlEncapsulatedClassifier::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlEncapsulatedClassifier::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlEncapsulatedClassifier::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlEncapsulatedClassifier::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlEncapsulatedClassifier::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlEncapsulatedClassifier::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlEncapsulatedClassifier::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlEncapsulatedClassifier::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlEncapsulatedClassifier::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlEncapsulatedClassifier::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlEncapsulatedClassifier::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlEncapsulatedClassifier::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlEncapsulatedClassifier::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlEncapsulatedClassifier::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlEncapsulatedClassifier::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlEncapsulatedClassifier::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlEncapsulatedClassifier::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlEncapsulatedClassifier::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlEncapsulatedClassifier::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlEncapsulatedClassifier::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlEncapsulatedClassifier::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlEncapsulatedClassifier::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlEncapsulatedClassifier::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlEncapsulatedClassifier::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlEncapsulatedClassifier::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlEncapsulatedClassifier::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlEncapsulatedClassifier::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlEncapsulatedClassifier::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlEncapsulatedClassifier::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlEncapsulatedClassifier::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlEncapsulatedClassifier::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlEncapsulatedClassifier::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlEncapsulatedClassifier::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlEncapsulatedClassifier::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlEncapsulatedClassifier::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlEncapsulatedClassifier::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
+const QSet<QUmlPort *>
+QUmlEncapsulatedClassifier::ownedPort() const
{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlEncapsulatedClassifier::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlEncapsulatedClassifier::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlEncapsulatedClassifier::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlEncapsulatedClassifier::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlEncapsulatedClassifier::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlEncapsulatedClassifier::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlEncapsulatedClassifier::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlEncapsulatedClassifier::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlEncapsulatedClassifier::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlEncapsulatedClassifier::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
+ // This is a read-only derived association end
-void QUmlEncapsulatedClassifier::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
+ qWarning("UmlEncapsulatedClassifier::ownedPort(): to be implemented (this is a derived association end)");
-void QUmlEncapsulatedClassifier::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
+ return QSet<QUmlPort *>();
}
-void QUmlEncapsulatedClassifier::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
+void QUmlEncapsulatedClassifier::addOwnedPort(QUmlPort *ownedPort)
{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
+ // This is a read-only derived association end
-void QUmlEncapsulatedClassifier::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
+ qWarning("UmlEncapsulatedClassifier::ownedPort(): to be implemented (this is a derived association end)");
+ Q_UNUSED(ownedPort);
-void QUmlEncapsulatedClassifier::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-void QUmlEncapsulatedClassifier::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
+ // Adjust subsetted properties
+ addOwnedAttribute(ownedPort);
+ }
}
-void QUmlEncapsulatedClassifier::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
+void QUmlEncapsulatedClassifier::removeOwnedPort(QUmlPort *ownedPort)
{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
+ // This is a read-only derived association end
-void QUmlEncapsulatedClassifier::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
+ qWarning("UmlEncapsulatedClassifier::ownedPort(): to be implemented (this is a derived association end)");
+ Q_UNUSED(ownedPort);
-void QUmlEncapsulatedClassifier::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlEncapsulatedClassifier::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlStructuredClassifier::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlEncapsulatedClassifier::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlStructuredClassifier::removeOwnedAttribute(ownedAttribute);
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-void QUmlEncapsulatedClassifier::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
+ // Adjust subsetted properties
+ removeOwnedAttribute(ownedPort);
+ }
}
-void QUmlEncapsulatedClassifier::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlencapsulatedclassifier.h b/src/uml/qumlencapsulatedclassifier.h
index 7ffe9fd3..d1472953 100644
--- a/src/uml/qumlencapsulatedclassifier.h
+++ b/src/uml/qumlencapsulatedclassifier.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlencapsulatedclassifier_p.h"
+#include <QtUml/QUmlStructuredClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,285 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlPort;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlEncapsulatedClassifier : public QObject, public UmlEncapsulatedClassifier
+class Q_UML_EXPORT QUmlEncapsulatedClassifier : public QUmlStructuredClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
public:
- Q_DECL_HIDDEN explicit QUmlEncapsulatedClassifier(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ virtual ~QUmlEncapsulatedClassifier();
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ // Owned attributes
+ const QSet<QUmlPort *> ownedPort() const;
+ Q_DECL_HIDDEN void addOwnedPort(QUmlPort *ownedPort);
+ Q_DECL_HIDDEN void removeOwnedPort(QUmlPort *ownedPort);
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
+protected:
+ explicit QUmlEncapsulatedClassifier();
- // Slots for owned attributes [EncapsulatedClassifier]
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlEncapsulatedClassifier *)
-Q_DECLARE_METATYPE(QList<QUmlEncapsulatedClassifier *> *)
-Q_DECLARE_METATYPE(QSet<QUmlEncapsulatedClassifier *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlEncapsulatedClassifier) *)
QT_END_HEADER
diff --git a/src/uml/qumlenumeration.cpp b/src/uml/qumlenumeration.cpp
index 5a02f87a..bcd2cc95 100644
--- a/src/uml/qumlenumeration.cpp
+++ b/src/uml/qumlenumeration.cpp
@@ -40,886 +40,81 @@
****************************************************************************/
#include "qumlenumeration.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlEnumerationLiteral>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
+#include "private/qumlenumerationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlEnumerationLiteral>
/*!
- \class UmlEnumeration
+ \class QUmlEnumeration
\inmodule QtUml
\brief An enumeration is a data type whose values are enumerated in the model as enumeration literals.
*/
-
-QUmlEnumeration::QUmlEnumeration(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlEnumeration::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlEnumeration::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlEnumeration::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlEnumeration::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlEnumeration::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlEnumeration::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlEnumeration::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlEnumeration::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlEnumeration::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlEnumeration::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlEnumeration::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlEnumeration::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlEnumeration::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlEnumeration::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlEnumeration::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlEnumeration::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlEnumeration::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlEnumeration::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlEnumeration::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlEnumeration::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlEnumeration::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlEnumeration::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlEnumeration::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlEnumeration::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlEnumeration::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlEnumeration::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlEnumeration::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEnumeration::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlEnumeration::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlEnumeration::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlEnumeration::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlEnumeration::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlEnumeration::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlEnumeration::representation() const
+QUmlEnumeration::QUmlEnumeration(bool createQObject) :
+ QUmlDataType(false)
{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
+ if (createQObject)
+ _qObject = new QUmlEnumerationObject(this);
}
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlEnumeration::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlEnumeration::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlEnumeration::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [DataType]
-
-/*!
- The Attributes owned by the DataType.
- */
-const QList<QUmlProperty *> QUmlEnumeration::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The Operations owned by the DataType.
- */
-const QList<QUmlOperation *> QUmlEnumeration::ownedOperation() const
+QUmlEnumeration::~QUmlEnumeration()
{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Enumeration]
+// OWNED ATTRIBUTES
/*!
The ordered set of literals for this Enumeration.
*/
-const QList<QUmlEnumerationLiteral *> QUmlEnumeration::ownedLiteral() const
+const QList<QUmlEnumerationLiteral *>
+QUmlEnumeration::ownedLiteral() const
{
- return *(reinterpret_cast<const QList<QUmlEnumerationLiteral *> *>(&_ownedLiteral));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlEnumeration::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _ownedLiteral;
}
-/*!
- 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.
- */
-bool QUmlEnumeration::mustBeOwned() const
+void QUmlEnumeration::addOwnedLiteral(QUmlEnumerationLiteral *ownedLiteral)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_ownedLiteral.contains(ownedLiteral)) {
+ _ownedLiteral.append(ownedLiteral);
+ if (ownedLiteral->asQObject() && this->asQObject())
+ QObject::connect(ownedLiteral->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedLiteral(QObject *)));
+ ownedLiteral->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlEnumeration::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addOwnedMember(ownedLiteral);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlEnumeration::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedLiteral) {
+ ownedLiteral->setEnumeration(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlEnumeration::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlEnumeration::removeOwnedLiteral(QUmlEnumerationLiteral *ownedLiteral)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlEnumeration::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_ownedLiteral.contains(ownedLiteral)) {
+ _ownedLiteral.removeAll(ownedLiteral);
+ if (ownedLiteral->asQObject())
+ ownedLiteral->asQObject()->setParent(0);
-// OPERATIONS [Namespace]
+ // Adjust subsetted properties
+ removeOwnedMember(ownedLiteral);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlEnumeration::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedLiteral) {
+ ownedLiteral->setEnumeration(0);
+ }
+ }
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlEnumeration::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlEnumeration::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlEnumeration::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlEnumeration::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlEnumeration::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlEnumeration::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlEnumeration::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlEnumeration::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlEnumeration::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlEnumeration::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEnumeration::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlEnumeration::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlEnumeration::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlEnumeration::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlEnumeration::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlEnumeration::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [DataType]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlEnumeration::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlDataType::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlEnumeration::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlEnumeration::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlEnumeration::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlEnumeration::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlEnumeration::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlEnumeration::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlEnumeration::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlEnumeration::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlEnumeration::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlEnumeration::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlEnumeration::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlEnumeration::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlEnumeration::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlEnumeration::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlEnumeration::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlEnumeration::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlEnumeration::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlEnumeration::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlEnumeration::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlEnumeration::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlEnumeration::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlEnumeration::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlEnumeration::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlEnumeration::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlEnumeration::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlEnumeration::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlEnumeration::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlEnumeration::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlEnumeration::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlEnumeration::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlEnumeration::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlEnumeration::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlEnumeration::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlEnumeration::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlEnumeration::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlEnumeration::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlEnumeration::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlEnumeration::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlEnumeration::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DataType]
-
-void QUmlEnumeration::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlDataType::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlEnumeration::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlDataType::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlEnumeration::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlDataType::addOwnedOperation(ownedOperation);
-}
-
-void QUmlEnumeration::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlDataType::removeOwnedOperation(ownedOperation);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Enumeration]
-
-void QUmlEnumeration::addOwnedLiteral(UmlEnumerationLiteral *ownedLiteral)
-{
- UmlEnumeration::addOwnedLiteral(ownedLiteral);
-}
-
-void QUmlEnumeration::removeOwnedLiteral(UmlEnumerationLiteral *ownedLiteral)
-{
- UmlEnumeration::removeOwnedLiteral(ownedLiteral);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlenumeration.h b/src/uml/qumlenumeration.h
index 840183bf..08c451cf 100644
--- a/src/uml/qumlenumeration.h
+++ b/src/uml/qumlenumeration.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlenumeration_p.h"
+#include <QtUml/QUmlDataType>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,284 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlEnumerationLiteral;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlEnumeration : public QObject, public UmlEnumeration
+class Q_UML_EXPORT QUmlEnumeration : public QUmlDataType
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [DataType]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
-
- // Properties [Enumeration]
- Q_PROPERTY(QList<QUmlEnumerationLiteral *> ownedLiteral READ ownedLiteral)
-
public:
- Q_INVOKABLE explicit QUmlEnumeration(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [DataType]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
-
- // Owned attributes [Enumeration]
- Q_INVOKABLE const QList<QUmlEnumerationLiteral *> ownedLiteral() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [DataType]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ explicit QUmlEnumeration(bool createQObject = true);
+ virtual ~QUmlEnumeration();
- // Slots for owned attributes [DataType]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
+ // Owned attributes
+ const QList<QUmlEnumerationLiteral *> ownedLiteral() const;
+ void addOwnedLiteral(QUmlEnumerationLiteral *ownedLiteral);
+ void removeOwnedLiteral(QUmlEnumerationLiteral *ownedLiteral);
- // Slots for owned attributes [Enumeration]
- void addOwnedLiteral(UmlEnumerationLiteral *ownedLiteral);
- void removeOwnedLiteral(UmlEnumerationLiteral *ownedLiteral);
+protected:
+ QList<QUmlEnumerationLiteral *> _ownedLiteral;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlEnumeration *)
-Q_DECLARE_METATYPE(QList<QUmlEnumeration *> *)
-Q_DECLARE_METATYPE(QSet<QUmlEnumeration *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlEnumeration) *)
QT_END_HEADER
diff --git a/src/uml/qumlenumerationliteral.cpp b/src/uml/qumlenumerationliteral.cpp
index a304a245..e7d7590a 100644
--- a/src/uml/qumlenumerationliteral.cpp
+++ b/src/uml/qumlenumerationliteral.cpp
@@ -40,355 +40,84 @@
****************************************************************************/
#include "qumlenumerationliteral.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlEnumeration>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlSlot>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlenumerationliteralobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlEnumeration>
/*!
- \class UmlEnumerationLiteral
+ \class QUmlEnumerationLiteral
\inmodule QtUml
\brief An enumeration literal is a user-defined data value for an enumeration.
*/
-
-QUmlEnumerationLiteral::QUmlEnumerationLiteral(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlEnumerationLiteral::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlEnumerationLiteral::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlEnumerationLiteral::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlEnumerationLiteral::clientDependency() const
+QUmlEnumerationLiteral::QUmlEnumerationLiteral(bool createQObject) :
+ QUmlInstanceSpecification(false),
+ _enumeration(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlEnumerationLiteralObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlEnumerationLiteral::name() const
+QUmlEnumerationLiteral::~QUmlEnumerationLiteral()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlEnumerationLiteral::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlEnumerationLiteral::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlEnumerationLiteral::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlEnumerationLiteral::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlEnumerationLiteral::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlEnumerationLiteral::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlEnumerationLiteral::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlEnumerationLiteral::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OWNED ATTRIBUTES [InstanceSpecification]
-
-/*!
- 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.
- */
-const QSet<QUmlSlot *> QUmlEnumerationLiteral::slot_() const
-{
- return *(reinterpret_cast<const QSet<QUmlSlot *> *>(&_slot_));
-}
-
-/*!
- A specification of how to compute, derive, or construct the instance.
- */
-QUmlValueSpecification *QUmlEnumerationLiteral::specification() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_specification);
-}
-
-// OWNED ATTRIBUTES [EnumerationLiteral]
+// OWNED ATTRIBUTES
/*!
The classifier of this EnumerationLiteral derived to be equal to its enumeration.
*/
-QUmlEnumeration *QUmlEnumerationLiteral::classifier() const
+QUmlEnumeration *
+QUmlEnumerationLiteral::classifier() const
{
- return reinterpret_cast<QUmlEnumeration *>(UmlEnumerationLiteral::classifier());
-}
+ // This is a read-only derived association end
-/*!
- The Enumeration that this EnumerationLiteral is a member of.
- */
-QUmlEnumeration *QUmlEnumerationLiteral::enumeration() const
-{
- return reinterpret_cast<QUmlEnumeration *>(_enumeration);
-}
+ qWarning("UmlEnumerationLiteral::classifier(): to be implemented (this is a derived association end)");
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlEnumerationLiteral::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return 0;
}
-/*!
- 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.
- */
-bool QUmlEnumerationLiteral::mustBeOwned() const
+void QUmlEnumerationLiteral::setClassifier(QUmlEnumeration *classifier)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived association end
-// OPERATIONS [NamedElement]
+ qWarning("UmlEnumerationLiteral::classifier(): to be implemented (this is a derived association end)");
+ Q_UNUSED(classifier);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlEnumerationLiteral::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlEnumerationLiteral::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.
- */
-bool QUmlEnumerationLiteral::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlEnumerationLiteral::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlEnumerationLiteral::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ The Enumeration that this EnumerationLiteral is a member of.
*/
-bool QUmlEnumerationLiteral::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlEnumerationLiteral::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlEnumerationLiteral::removeOwnedComment(UmlComment *ownedComment)
+QUmlEnumeration *
+QUmlEnumerationLiteral::enumeration() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-void QUmlEnumerationLiteral::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ return _enumeration;
}
-void QUmlEnumerationLiteral::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlEnumerationLiteral::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlEnumerationLiteral::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlEnumerationLiteral::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlEnumerationLiteral::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlEnumerationLiteral::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlEnumerationLiteral::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlEnumerationLiteral::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InstanceSpecification]
-
-void QUmlEnumerationLiteral::addSlot(UmlSlot *slot_)
-{
- UmlInstanceSpecification::addSlot(slot_);
-}
-
-void QUmlEnumerationLiteral::removeSlot(UmlSlot *slot_)
+void QUmlEnumerationLiteral::setEnumeration(QUmlEnumeration *enumeration)
{
- UmlInstanceSpecification::removeSlot(slot_);
-}
+ // This is a read-write association end
-void QUmlEnumerationLiteral::setSpecification(QUmlValueSpecification *specification)
-{
- UmlInstanceSpecification::setSpecification(specification);
-}
+ if (_enumeration != enumeration) {
+ // Adjust subsetted properties
-// SLOTS FOR OWNED ATTRIBUTES [EnumerationLiteral]
+ _enumeration = enumeration;
+ if (enumeration->asQObject() && this->asQObject())
+ QObject::connect(enumeration->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEnumeration()));
-void QUmlEnumerationLiteral::setEnumeration(QUmlEnumeration *enumeration)
-{
- UmlEnumerationLiteral::setEnumeration(enumeration);
+ // Adjust subsetted properties
+ setNamespace(enumeration);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlenumerationliteral.h b/src/uml/qumlenumerationliteral.h
index a6bad707..9f0d8496 100644
--- a/src/uml/qumlenumerationliteral.h
+++ b/src/uml/qumlenumerationliteral.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlenumerationliteral_p.h"
+#include <QtUml/QUmlInstanceSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,142 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
class QUmlEnumeration;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlParameterableElement;
-class QUmlSlot;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlEnumerationLiteral : public QObject, public UmlEnumerationLiteral
+class Q_UML_EXPORT QUmlEnumerationLiteral : public QUmlInstanceSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [InstanceSpecification]
- Q_PROPERTY(QSet<QUmlSlot *> slot_ READ slot_)
- Q_PROPERTY(QUmlValueSpecification * specification READ specification)
-
- // Properties [EnumerationLiteral]
- Q_PROPERTY(QUmlEnumeration * classifier READ classifier)
- Q_PROPERTY(QUmlEnumeration * enumeration READ enumeration)
-
public:
- Q_INVOKABLE explicit QUmlEnumerationLiteral(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
+ explicit QUmlEnumerationLiteral(bool createQObject = true);
+ virtual ~QUmlEnumerationLiteral();
- // Owned attributes [InstanceSpecification]
- Q_INVOKABLE const QSet<QUmlSlot *> slot_() const;
- Q_INVOKABLE QUmlValueSpecification *specification() const;
-
- // Owned attributes [EnumerationLiteral]
- Q_INVOKABLE QUmlEnumeration *classifier() const;
- Q_INVOKABLE QUmlEnumeration *enumeration() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
-
- // Slots for owned attributes [InstanceSpecification]
- void addSlot(UmlSlot *slot_);
- void removeSlot(UmlSlot *slot_);
- void setSpecification(QUmlValueSpecification *specification);
-
- // Slots for owned attributes [EnumerationLiteral]
+ // Owned attributes
+ QUmlEnumeration *classifier() const;
+ Q_DECL_HIDDEN void setClassifier(QUmlEnumeration *classifier);
+ QUmlEnumeration *enumeration() const;
void setEnumeration(QUmlEnumeration *enumeration);
+
+protected:
+ QUmlEnumeration *_enumeration;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlEnumerationLiteral *)
-Q_DECLARE_METATYPE(QList<QUmlEnumerationLiteral *> *)
-Q_DECLARE_METATYPE(QSet<QUmlEnumerationLiteral *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlEnumerationLiteral) *)
QT_END_HEADER
diff --git a/src/uml/qumlevent.cpp b/src/uml/qumlevent.cpp
index ed081d48..5b105e27 100644
--- a/src/uml/qumlevent.cpp
+++ b/src/uml/qumlevent.cpp
@@ -40,256 +40,18 @@
****************************************************************************/
#include "qumlevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlEvent
+ \class QUmlEvent
\inmodule QtUml
\brief An event is the specification of some occurrence that may potentially trigger effects by an object.
*/
-
-QUmlEvent::QUmlEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlEvent::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlEvent::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlEvent::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlEvent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlEvent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlEvent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlEvent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlEvent::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlEvent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlEvent::QUmlEvent()
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlEvent::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlEvent::removeOwnedComment(UmlComment *ownedComment)
+QUmlEvent::~QUmlEvent()
{
- UmlElement::removeOwnedComment(ownedComment);
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlEvent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlEvent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlevent.h b/src/uml/qumlevent.h
index 9c98db58..e4ce9884 100644
--- a/src/uml/qumlevent.h
+++ b/src/uml/qumlevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlevent_p.h"
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,100 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlEvent : public QObject, public UmlEvent
+class Q_UML_EXPORT QUmlEvent : public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_DECL_HIDDEN explicit QUmlEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ virtual ~QUmlEvent();
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
+protected:
+ explicit QUmlEvent();
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlEvent *)
-Q_DECLARE_METATYPE(QList<QUmlEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumlexceptionhandler.cpp b/src/uml/qumlexceptionhandler.cpp
index 8229ddd4..ad60255b 100644
--- a/src/uml/qumlexceptionhandler.cpp
+++ b/src/uml/qumlexceptionhandler.cpp
@@ -40,146 +40,137 @@
****************************************************************************/
#include "qumlexceptionhandler.h"
+#include "private/qumlexceptionhandlerobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlExecutableNode>
#include <QtUml/QUmlObjectNode>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlExceptionHandler
+ \class QUmlExceptionHandler
\inmodule QtUml
\brief 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.
*/
-
-QUmlExceptionHandler::QUmlExceptionHandler(QObject *parent) :
- QObject(parent)
+QUmlExceptionHandler::QUmlExceptionHandler(bool createQObject) :
+ _exceptionInput(0),
+ _handlerBody(0),
+ _protectedNode(0)
{
+ if (createQObject)
+ _qObject = new QUmlExceptionHandlerObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExceptionHandler::ownedComment() const
+QUmlExceptionHandler::~QUmlExceptionHandler()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExceptionHandler::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ 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.
*/
-QUmlElement *QUmlExceptionHandler::owner() const
+QUmlObjectNode *
+QUmlExceptionHandler::exceptionInput() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ExceptionHandler]
+ return _exceptionInput;
+}
-/*!
- 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.
- */
-QUmlObjectNode *QUmlExceptionHandler::exceptionInput() const
+void QUmlExceptionHandler::setExceptionInput(QUmlObjectNode *exceptionInput)
{
- return reinterpret_cast<QUmlObjectNode *>(_exceptionInput);
+ // This is a read-write association end
+
+ if (_exceptionInput != exceptionInput) {
+ _exceptionInput = exceptionInput;
+ if (exceptionInput->asQObject() && this->asQObject())
+ QObject::connect(exceptionInput->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExceptionInput()));
+ }
}
/*!
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.
*/
-const QSet<QUmlClassifier *> QUmlExceptionHandler::exceptionType() const
+const QSet<QUmlClassifier *>
+QUmlExceptionHandler::exceptionType() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_exceptionType));
-}
+ // This is a read-write association end
-/*!
- A node that is executed if the handler satisfies an uncaught exception.
- */
-QUmlExecutableNode *QUmlExceptionHandler::handlerBody() const
-{
- return reinterpret_cast<QUmlExecutableNode *>(_handlerBody);
+ return _exceptionType;
}
-/*!
- The node protected by the handler. The handler is examined if an exception propagates to the outside of the node.
- */
-QUmlExecutableNode *QUmlExceptionHandler::protectedNode() const
+void QUmlExceptionHandler::addExceptionType(QUmlClassifier *exceptionType)
{
- return reinterpret_cast<QUmlExecutableNode *>(_protectedNode);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_exceptionType.contains(exceptionType)) {
+ _exceptionType.insert(exceptionType);
+ if (exceptionType->asQObject() && this->asQObject())
+ QObject::connect(exceptionType->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExceptionType(QObject *)));
+ }
+}
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExceptionHandler::allOwnedElements() const
+void QUmlExceptionHandler::removeExceptionType(QUmlClassifier *exceptionType)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write association end
+
+ if (_exceptionType.contains(exceptionType)) {
+ _exceptionType.remove(exceptionType);
+ }
}
/*!
- 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.
+ A node that is executed if the handler satisfies an uncaught exception.
*/
-bool QUmlExceptionHandler::mustBeOwned() const
+QUmlExecutableNode *
+QUmlExceptionHandler::handlerBody() const
{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlExceptionHandler::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExceptionHandler::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _handlerBody;
}
-// SLOTS FOR OWNED ATTRIBUTES [ExceptionHandler]
-
-void QUmlExceptionHandler::setExceptionInput(QUmlObjectNode *exceptionInput)
+void QUmlExceptionHandler::setHandlerBody(QUmlExecutableNode *handlerBody)
{
- UmlExceptionHandler::setExceptionInput(exceptionInput);
-}
+ // This is a read-write association end
-void QUmlExceptionHandler::addExceptionType(UmlClassifier *exceptionType)
-{
- UmlExceptionHandler::addExceptionType(exceptionType);
+ if (_handlerBody != handlerBody) {
+ _handlerBody = handlerBody;
+ if (handlerBody->asQObject() && this->asQObject())
+ QObject::connect(handlerBody->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setHandlerBody()));
+ }
}
-void QUmlExceptionHandler::removeExceptionType(UmlClassifier *exceptionType)
+/*!
+ The node protected by the handler. The handler is examined if an exception propagates to the outside of the node.
+ */
+QUmlExecutableNode *
+QUmlExceptionHandler::protectedNode() const
{
- UmlExceptionHandler::removeExceptionType(exceptionType);
-}
+ // This is a read-write association end
-void QUmlExceptionHandler::setHandlerBody(QUmlExecutableNode *handlerBody)
-{
- UmlExceptionHandler::setHandlerBody(handlerBody);
+ return _protectedNode;
}
void QUmlExceptionHandler::setProtectedNode(QUmlExecutableNode *protectedNode)
{
- UmlExceptionHandler::setProtectedNode(protectedNode);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_protectedNode != protectedNode) {
+ // Adjust subsetted properties
+
+ _protectedNode = protectedNode;
+ if (protectedNode->asQObject() && this->asQObject())
+ QObject::connect(protectedNode->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setProtectedNode()));
+
+ // Adjust subsetted properties
+ setOwner(protectedNode);
+ }
+}
diff --git a/src/uml/qumlexceptionhandler.h b/src/uml/qumlexceptionhandler.h
index 8706d2ac..2ffa2ec6 100644
--- a/src/uml/qumlexceptionhandler.h
+++ b/src/uml/qumlexceptionhandler.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexceptionhandler_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -53,63 +53,36 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlElement;
class QUmlExecutableNode;
class QUmlObjectNode;
-class Q_UML_EXPORT QUmlExceptionHandler : public QObject, public UmlExceptionHandler
+class Q_UML_EXPORT QUmlExceptionHandler : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ExceptionHandler]
- Q_PROPERTY(QUmlObjectNode * exceptionInput READ exceptionInput)
- Q_PROPERTY(QSet<QUmlClassifier *> exceptionType READ exceptionType)
- Q_PROPERTY(QUmlExecutableNode * handlerBody READ handlerBody)
- Q_PROPERTY(QUmlExecutableNode * protectedNode READ protectedNode)
-
public:
- Q_INVOKABLE explicit QUmlExceptionHandler(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ explicit QUmlExceptionHandler(bool createQObject = true);
+ virtual ~QUmlExceptionHandler();
- // Owned attributes [ExceptionHandler]
- Q_INVOKABLE QUmlObjectNode *exceptionInput() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> exceptionType() const;
- Q_INVOKABLE QUmlExecutableNode *handlerBody() const;
- Q_INVOKABLE QUmlExecutableNode *protectedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ExceptionHandler]
+ // Owned attributes
+ QUmlObjectNode *exceptionInput() const;
void setExceptionInput(QUmlObjectNode *exceptionInput);
- void addExceptionType(UmlClassifier *exceptionType);
- void removeExceptionType(UmlClassifier *exceptionType);
+ const QSet<QUmlClassifier *> exceptionType() const;
+ void addExceptionType(QUmlClassifier *exceptionType);
+ void removeExceptionType(QUmlClassifier *exceptionType);
+ QUmlExecutableNode *handlerBody() const;
void setHandlerBody(QUmlExecutableNode *handlerBody);
+ QUmlExecutableNode *protectedNode() const;
void setProtectedNode(QUmlExecutableNode *protectedNode);
+
+protected:
+ QUmlObjectNode *_exceptionInput;
+ QSet<QUmlClassifier *> _exceptionType;
+ QUmlExecutableNode *_handlerBody;
+ QUmlExecutableNode *_protectedNode;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExceptionHandler *)
-Q_DECLARE_METATYPE(QList<QUmlExceptionHandler *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExceptionHandler *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExceptionHandler) *)
QT_END_HEADER
diff --git a/src/uml/qumlexecutablenode.cpp b/src/uml/qumlexecutablenode.cpp
index 7fa26045..2c50b0b4 100644
--- a/src/uml/qumlexecutablenode.cpp
+++ b/src/uml/qumlexecutablenode.cpp
@@ -40,415 +40,72 @@
****************************************************************************/
#include "qumlexecutablenode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlExecutableNode
+ \class QUmlExecutableNode
\inmodule QtUml
\brief An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers.
*/
-
-QUmlExecutableNode::QUmlExecutableNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExecutableNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExecutableNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExecutableNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExecutableNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExecutableNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExecutableNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExecutableNode::namespace_() const
+QUmlExecutableNode::QUmlExecutableNode()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
}
-/*!
- 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.
- */
-QString QUmlExecutableNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExecutableNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExecutableNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExecutableNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExecutableNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlExecutableNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlExecutableNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlExecutableNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlExecutableNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlExecutableNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlExecutableNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlExecutableNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlExecutableNode::redefinedNode() const
+QUmlExecutableNode::~QUmlExecutableNode()
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
}
-// OWNED ATTRIBUTES [ExecutableNode]
+// OWNED ATTRIBUTES
/*!
A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
*/
-const QSet<QUmlExceptionHandler *> QUmlExecutableNode::handler() const
+const QSet<QUmlExceptionHandler *>
+QUmlExecutableNode::handler() const
{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExecutableNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutableNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExecutableNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExecutableNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutableNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExecutableNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlExecutableNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlExecutableNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExecutableNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExecutableNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExecutableNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExecutableNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExecutableNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExecutableNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlExecutableNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _handler;
}
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExecutableNode::setLeaf(bool isLeaf)
+void QUmlExecutableNode::addHandler(QUmlExceptionHandler *handler)
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+ if (!_handler.contains(handler)) {
+ _handler.insert(handler);
+ if (handler->asQObject() && this->asQObject())
+ QObject::connect(handler->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeHandler(QObject *)));
+ handler->asQObject()->setParent(this->asQObject());
-void QUmlExecutableNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
+ // Adjust subsetted properties
+ addOwnedElement(handler);
-void QUmlExecutableNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
+ // Adjust opposite properties
+ if (handler) {
+ handler->setProtectedNode(this);
+ }
+ }
}
-void QUmlExecutableNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
+void QUmlExecutableNode::removeHandler(QUmlExceptionHandler *handler)
{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
+ // This is a read-write association end
-void QUmlExecutableNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
+ if (_handler.contains(handler)) {
+ _handler.remove(handler);
+ if (handler->asQObject())
+ handler->asQObject()->setParent(0);
-void QUmlExecutableNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // Adjust subsetted properties
+ removeOwnedElement(handler);
-void QUmlExecutableNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
+ // Adjust opposite properties
+ if (handler) {
+ handler->setProtectedNode(0);
+ }
+ }
}
-void QUmlExecutableNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlExecutableNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlExecutableNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlExecutableNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlExecutableNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlExecutableNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlExecutableNode::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlExecutableNode::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlexecutablenode.h b/src/uml/qumlexecutablenode.h
index 0c2392f7..5af049ef 100644
--- a/src/uml/qumlexecutablenode.h
+++ b/src/uml/qumlexecutablenode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexecutablenode_p.h"
+#include <QtUml/QUmlActivityNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,147 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlExceptionHandler;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlExecutableNode : public QObject, public UmlExecutableNode
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
+class Q_UML_EXPORT QUmlExecutableNode : public QUmlActivityNode
+{
public:
- Q_DECL_HIDDEN explicit QUmlExecutableNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
+ virtual ~QUmlExecutableNode();
+
+ // Owned attributes
+ const QSet<QUmlExceptionHandler *> handler() const;
+ void addHandler(QUmlExceptionHandler *handler);
+ void removeHandler(QUmlExceptionHandler *handler);
+
+protected:
+ explicit QUmlExecutableNode();
+
+ QSet<QUmlExceptionHandler *> _handler;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExecutableNode *)
-Q_DECLARE_METATYPE(QList<QUmlExecutableNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExecutableNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExecutableNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlexecutionenvironment.cpp b/src/uml/qumlexecutionenvironment.cpp
index 44f84153..1e5bcaf6 100644
--- a/src/uml/qumlexecutionenvironment.cpp
+++ b/src/uml/qumlexecutionenvironment.cpp
@@ -40,1097 +40,27 @@
****************************************************************************/
#include "qumlexecutionenvironment.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlNode>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlexecutionenvironmentobject_p.h"
/*!
- \class UmlExecutionEnvironment
+ \class QUmlExecutionEnvironment
\inmodule QtUml
\brief An execution environment is a node that offers an execution environment for specific types of components that are deployed on it in the form of executable artifacts.
*/
-
-QUmlExecutionEnvironment::QUmlExecutionEnvironment(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExecutionEnvironment::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExecutionEnvironment::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExecutionEnvironment::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExecutionEnvironment::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExecutionEnvironment::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExecutionEnvironment::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExecutionEnvironment::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExecutionEnvironment::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlExecutionEnvironment::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlExecutionEnvironment::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlExecutionEnvironment::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlExecutionEnvironment::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlExecutionEnvironment::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlExecutionEnvironment::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlExecutionEnvironment::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlExecutionEnvironment::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlExecutionEnvironment::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExecutionEnvironment::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExecutionEnvironment::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExecutionEnvironment::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlExecutionEnvironment::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlExecutionEnvironment::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlExecutionEnvironment::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlExecutionEnvironment::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlExecutionEnvironment::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlExecutionEnvironment::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlExecutionEnvironment::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlExecutionEnvironment::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlExecutionEnvironment::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlExecutionEnvironment::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlExecutionEnvironment::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlExecutionEnvironment::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlExecutionEnvironment::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlExecutionEnvironment::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlExecutionEnvironment::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlExecutionEnvironment::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlExecutionEnvironment::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlExecutionEnvironment::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlExecutionEnvironment::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlExecutionEnvironment::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlExecutionEnvironment::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlExecutionEnvironment::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlExecutionEnvironment::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlExecutionEnvironment::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlExecutionEnvironment::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlExecutionEnvironment::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlExecutionEnvironment::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlExecutionEnvironment::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlExecutionEnvironment::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlExecutionEnvironment::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlExecutionEnvironment::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OWNED ATTRIBUTES [Node]
-
-/*!
- The Nodes that are defined (nested) within the Node.
- */
-const QSet<QUmlNode *> QUmlExecutionEnvironment::nestedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlNode *> *>(&_nestedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExecutionEnvironment::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExecutionEnvironment::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExecutionEnvironment::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExecutionEnvironment::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlExecutionEnvironment::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlExecutionEnvironment::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlExecutionEnvironment::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlExecutionEnvironment::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlExecutionEnvironment::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlExecutionEnvironment::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlExecutionEnvironment::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlExecutionEnvironment::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlExecutionEnvironment::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlExecutionEnvironment::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlExecutionEnvironment::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionEnvironment::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlExecutionEnvironment::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlExecutionEnvironment::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExecutionEnvironment::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExecutionEnvironment::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExecutionEnvironment::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExecutionEnvironment::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExecutionEnvironment::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExecutionEnvironment::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlExecutionEnvironment::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlExecutionEnvironment::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlExecutionEnvironment::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlExecutionEnvironment::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlExecutionEnvironment::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlExecutionEnvironment::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlExecutionEnvironment::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlExecutionEnvironment::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlExecutionEnvironment::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExecutionEnvironment::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlExecutionEnvironment::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlExecutionEnvironment::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlExecutionEnvironment::addCollaborationUse(UmlCollaborationUse *collaborationUse)
+QUmlExecutionEnvironment::QUmlExecutionEnvironment(bool createQObject) :
+ QUmlNode(false)
{
- UmlClassifier::addCollaborationUse(collaborationUse);
+ if (createQObject)
+ _qObject = new QUmlExecutionEnvironmentObject(this);
}
-void QUmlExecutionEnvironment::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
+QUmlExecutionEnvironment::~QUmlExecutionEnvironment()
{
- UmlClassifier::removeCollaborationUse(collaborationUse);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-void QUmlExecutionEnvironment::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlExecutionEnvironment::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlExecutionEnvironment::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlExecutionEnvironment::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlExecutionEnvironment::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlExecutionEnvironment::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlExecutionEnvironment::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlExecutionEnvironment::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlExecutionEnvironment::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlExecutionEnvironment::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlExecutionEnvironment::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlExecutionEnvironment::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlExecutionEnvironment::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlExecutionEnvironment::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlExecutionEnvironment::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlExecutionEnvironment::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlExecutionEnvironment::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlExecutionEnvironment::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlExecutionEnvironment::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlExecutionEnvironment::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlExecutionEnvironment::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlExecutionEnvironment::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlExecutionEnvironment::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlExecutionEnvironment::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlExecutionEnvironment::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlExecutionEnvironment::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlExecutionEnvironment::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlExecutionEnvironment::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlExecutionEnvironment::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlExecutionEnvironment::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlExecutionEnvironment::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlExecutionEnvironment::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlExecutionEnvironment::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlExecutionEnvironment::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlExecutionEnvironment::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlExecutionEnvironment::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlExecutionEnvironment::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Node]
-
-void QUmlExecutionEnvironment::addNestedNode(UmlNode *nestedNode)
-{
- UmlNode::addNestedNode(nestedNode);
-}
-
-void QUmlExecutionEnvironment::removeNestedNode(UmlNode *nestedNode)
-{
- UmlNode::removeNestedNode(nestedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlexecutionenvironment.h b/src/uml/qumlexecutionenvironment.h
index 783e5406..2ee3e02e 100644
--- a/src/uml/qumlexecutionenvironment.h
+++ b/src/uml/qumlexecutionenvironment.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexecutionenvironment_p.h"
+#include <QtUml/QUmlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,357 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlNode;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlExecutionEnvironment : public QObject, public UmlExecutionEnvironment
+class Q_UML_EXPORT QUmlExecutionEnvironment : public QUmlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [Node]
- Q_PROPERTY(QSet<QUmlNode *> nestedNode READ nestedNode)
-
public:
- Q_INVOKABLE explicit QUmlExecutionEnvironment(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Owned attributes [Node]
- Q_INVOKABLE const QSet<QUmlNode *> nestedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ explicit QUmlExecutionEnvironment(bool createQObject = true);
+ virtual ~QUmlExecutionEnvironment();
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
- // Slots for owned attributes [Node]
- void addNestedNode(UmlNode *nestedNode);
- void removeNestedNode(UmlNode *nestedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExecutionEnvironment *)
-Q_DECLARE_METATYPE(QList<QUmlExecutionEnvironment *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExecutionEnvironment *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExecutionEnvironment) *)
QT_END_HEADER
diff --git a/src/uml/qumlexecutionoccurrencespecification.cpp b/src/uml/qumlexecutionoccurrencespecification.cpp
index ed7d329b..b7e2d266 100644
--- a/src/uml/qumlexecutionoccurrencespecification.cpp
+++ b/src/uml/qumlexecutionoccurrencespecification.cpp
@@ -40,327 +40,54 @@
****************************************************************************/
#include "qumlexecutionoccurrencespecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExecutionSpecification>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
+#include "private/qumlexecutionoccurrencespecificationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlExecutionSpecification>
/*!
- \class UmlExecutionOccurrenceSpecification
+ \class QUmlExecutionOccurrenceSpecification
\inmodule QtUml
\brief An execution occurrence specification represents moments in time at which actions or behaviors start or finish.
*/
-
-QUmlExecutionOccurrenceSpecification::QUmlExecutionOccurrenceSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExecutionOccurrenceSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExecutionOccurrenceSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExecutionOccurrenceSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExecutionOccurrenceSpecification::clientDependency() const
+QUmlExecutionOccurrenceSpecification::QUmlExecutionOccurrenceSpecification(bool createQObject) :
+ QUmlOccurrenceSpecification(false),
+ _execution(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlExecutionOccurrenceSpecificationObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlExecutionOccurrenceSpecification::name() const
+QUmlExecutionOccurrenceSpecification::~QUmlExecutionOccurrenceSpecification()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExecutionOccurrenceSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExecutionOccurrenceSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExecutionOccurrenceSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExecutionOccurrenceSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlExecutionOccurrenceSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlExecutionOccurrenceSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlExecutionOccurrenceSpecification::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [OccurrenceSpecification]
-
-/*!
- References the Lifeline on which the OccurrenceSpecification appears.
- */
-QUmlLifeline *QUmlExecutionOccurrenceSpecification::covered() const
-{
- return reinterpret_cast<QUmlLifeline *>(_covered);
-}
-
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlExecutionOccurrenceSpecification::toAfter() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toAfter));
-}
-
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlExecutionOccurrenceSpecification::toBefore() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toBefore));
-}
-
-// OWNED ATTRIBUTES [ExecutionOccurrenceSpecification]
+// OWNED ATTRIBUTES
/*!
References the execution specification describing the execution that is started or finished at this execution event.
*/
-QUmlExecutionSpecification *QUmlExecutionOccurrenceSpecification::execution() const
+QUmlExecutionSpecification *
+QUmlExecutionOccurrenceSpecification::execution() const
{
- return reinterpret_cast<QUmlExecutionSpecification *>(_execution);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExecutionOccurrenceSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionOccurrenceSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExecutionOccurrenceSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExecutionOccurrenceSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionOccurrenceSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExecutionOccurrenceSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExecutionOccurrenceSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExecutionOccurrenceSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExecutionOccurrenceSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExecutionOccurrenceSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ return _execution;
}
-void QUmlExecutionOccurrenceSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExecutionOccurrenceSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlExecutionOccurrenceSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlExecutionOccurrenceSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlExecutionOccurrenceSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlExecutionOccurrenceSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlExecutionOccurrenceSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
-
-void QUmlExecutionOccurrenceSpecification::setCovered(QUmlLifeline *covered)
-{
- UmlOccurrenceSpecification::setCovered(covered);
-}
-
-void QUmlExecutionOccurrenceSpecification::addToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::addToAfter(toAfter);
-}
-
-void QUmlExecutionOccurrenceSpecification::removeToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::removeToAfter(toAfter);
-}
-
-void QUmlExecutionOccurrenceSpecification::addToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::addToBefore(toBefore);
-}
-
-void QUmlExecutionOccurrenceSpecification::removeToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::removeToBefore(toBefore);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutionOccurrenceSpecification]
-
void QUmlExecutionOccurrenceSpecification::setExecution(QUmlExecutionSpecification *execution)
{
- UmlExecutionOccurrenceSpecification::setExecution(execution);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_execution != execution) {
+ _execution = execution;
+ if (execution->asQObject() && this->asQObject())
+ QObject::connect(execution->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExecution()));
+ }
+}
diff --git a/src/uml/qumlexecutionoccurrencespecification.h b/src/uml/qumlexecutionoccurrencespecification.h
index c43e706f..9d49a8ac 100644
--- a/src/uml/qumlexecutionoccurrencespecification.h
+++ b/src/uml/qumlexecutionoccurrencespecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexecutionoccurrencespecification_p.h"
+#include <QtUml/QUmlOccurrenceSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,123 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlExecutionSpecification;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlExecutionOccurrenceSpecification : public QObject, public UmlExecutionOccurrenceSpecification
+class Q_UML_EXPORT QUmlExecutionOccurrenceSpecification : public QUmlOccurrenceSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [OccurrenceSpecification]
- Q_PROPERTY(QUmlLifeline * covered READ covered)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toAfter READ toAfter)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toBefore READ toBefore)
-
- // Properties [ExecutionOccurrenceSpecification]
- Q_PROPERTY(QUmlExecutionSpecification * execution READ execution)
-
public:
- Q_INVOKABLE explicit QUmlExecutionOccurrenceSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [OccurrenceSpecification]
- Q_INVOKABLE QUmlLifeline *covered() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toAfter() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toBefore() const;
+ explicit QUmlExecutionOccurrenceSpecification(bool createQObject = true);
+ virtual ~QUmlExecutionOccurrenceSpecification();
- // Owned attributes [ExecutionOccurrenceSpecification]
- Q_INVOKABLE QUmlExecutionSpecification *execution() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [OccurrenceSpecification]
- void setCovered(QUmlLifeline *covered);
- void addToAfter(UmlGeneralOrdering *toAfter);
- void removeToAfter(UmlGeneralOrdering *toAfter);
- void addToBefore(UmlGeneralOrdering *toBefore);
- void removeToBefore(UmlGeneralOrdering *toBefore);
-
- // Slots for owned attributes [ExecutionOccurrenceSpecification]
+ // Owned attributes
+ QUmlExecutionSpecification *execution() const;
void setExecution(QUmlExecutionSpecification *execution);
+
+protected:
+ QUmlExecutionSpecification *_execution;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExecutionOccurrenceSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlExecutionOccurrenceSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExecutionOccurrenceSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExecutionOccurrenceSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlexecutionspecification.cpp b/src/uml/qumlexecutionspecification.cpp
index e678a34f..965e73a1 100644
--- a/src/uml/qumlexecutionspecification.cpp
+++ b/src/uml/qumlexecutionspecification.cpp
@@ -40,305 +40,68 @@
****************************************************************************/
#include "qumlexecutionspecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOccurrenceSpecification>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlExecutionSpecification
+ \class QUmlExecutionSpecification
\inmodule QtUml
\brief An execution specification is a specification of the execution of a unit of behavior or action within the lifeline. The duration of an execution specification is represented by two cccurrence specifications, the start occurrence specification and the finish occurrence specification.
*/
-
-QUmlExecutionSpecification::QUmlExecutionSpecification(QObject *parent) :
- QObject(parent)
+QUmlExecutionSpecification::QUmlExecutionSpecification() :
+ _finish(0),
+ _start(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExecutionSpecification::ownedComment() const
+QUmlExecutionSpecification::~QUmlExecutionSpecification()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExecutionSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExecutionSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExecutionSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExecutionSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExecutionSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExecutionSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExecutionSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExecutionSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlExecutionSpecification::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlExecutionSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlExecutionSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlExecutionSpecification::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [ExecutionSpecification]
+// OWNED ATTRIBUTES
/*!
References the OccurrenceSpecification that designates the finish of the Action or Behavior.
*/
-QUmlOccurrenceSpecification *QUmlExecutionSpecification::finish() const
+QUmlOccurrenceSpecification *
+QUmlExecutionSpecification::finish() const
{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_finish);
-}
+ // This is a read-write association end
-/*!
- References the OccurrenceSpecification that designates the start of the Action or Behavior
- */
-QUmlOccurrenceSpecification *QUmlExecutionSpecification::start() const
-{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_start);
+ return _finish;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExecutionSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExecutionSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExecutionSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExecutionSpecification::allOwningPackages() const
+void QUmlExecutionSpecification::setFinish(QUmlOccurrenceSpecification *finish)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlExecutionSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_finish != finish) {
+ _finish = finish;
+ if (finish->asQObject() && this->asQObject())
+ QObject::connect(finish->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setFinish()));
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ References the OccurrenceSpecification that designates the start of the Action or Behavior
*/
-QString QUmlExecutionSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExecutionSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExecutionSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExecutionSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExecutionSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExecutionSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExecutionSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlExecutionSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlExecutionSpecification::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlExecutionSpecification::removeCovered(UmlLifeline *covered)
+QUmlOccurrenceSpecification *
+QUmlExecutionSpecification::start() const
{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlExecutionSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlExecutionSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlExecutionSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
+ // This is a read-write association end
-void QUmlExecutionSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutionSpecification]
-
-void QUmlExecutionSpecification::setFinish(QUmlOccurrenceSpecification *finish)
-{
- UmlExecutionSpecification::setFinish(finish);
+ return _start;
}
void QUmlExecutionSpecification::setStart(QUmlOccurrenceSpecification *start)
{
- UmlExecutionSpecification::setStart(start);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_start != start) {
+ _start = start;
+ if (start->asQObject() && this->asQObject())
+ QObject::connect(start->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setStart()));
+ }
+}
diff --git a/src/uml/qumlexecutionspecification.h b/src/uml/qumlexecutionspecification.h
index 72fa0c7d..e8ce1ef4 100644
--- a/src/uml/qumlexecutionspecification.h
+++ b/src/uml/qumlexecutionspecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexecutionspecification_p.h"
+#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,113 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOccurrenceSpecification;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlExecutionSpecification : public QObject, public UmlExecutionSpecification
+class Q_UML_EXPORT QUmlExecutionSpecification : public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [ExecutionSpecification]
- Q_PROPERTY(QUmlOccurrenceSpecification * finish READ finish)
- Q_PROPERTY(QUmlOccurrenceSpecification * start READ start)
-
public:
- Q_DECL_HIDDEN explicit QUmlExecutionSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [ExecutionSpecification]
- Q_INVOKABLE QUmlOccurrenceSpecification *finish() const;
- Q_INVOKABLE QUmlOccurrenceSpecification *start() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [ExecutionSpecification]
+ virtual ~QUmlExecutionSpecification();
+
+ // Owned attributes
+ QUmlOccurrenceSpecification *finish() const;
void setFinish(QUmlOccurrenceSpecification *finish);
+ QUmlOccurrenceSpecification *start() const;
void setStart(QUmlOccurrenceSpecification *start);
+
+protected:
+ explicit QUmlExecutionSpecification();
+
+ QUmlOccurrenceSpecification *_finish;
+ QUmlOccurrenceSpecification *_start;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExecutionSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlExecutionSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExecutionSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExecutionSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlexpansionnode.cpp b/src/uml/qumlexpansionnode.cpp
index d397b3d3..b2dd8457 100644
--- a/src/uml/qumlexpansionnode.cpp
+++ b/src/uml/qumlexpansionnode.cpp
@@ -40,518 +40,76 @@
****************************************************************************/
#include "qumlexpansionnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExpansionRegion>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlexpansionnodeobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlExpansionRegion>
/*!
- \class UmlExpansionNode
+ \class QUmlExpansionNode
\inmodule QtUml
\brief 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.
*/
-
-QUmlExpansionNode::QUmlExpansionNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExpansionNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExpansionNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExpansionNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExpansionNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExpansionNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExpansionNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExpansionNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExpansionNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExpansionNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExpansionNode::isLeaf() const
+QUmlExpansionNode::QUmlExpansionNode(bool createQObject) :
+ _regionAsInput(0),
+ _regionAsOutput(0)
{
- return _isLeaf;
+ if (createQObject)
+ _qObject = new QUmlExpansionNodeObject(this);
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExpansionNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExpansionNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlExpansionNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlExpansionNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlExpansionNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlExpansionNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlExpansionNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlExpansionNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlExpansionNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlExpansionNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlExpansionNode::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlExpansionNode::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlExpansionNode::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlExpansionNode::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlExpansionNode::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
-
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlExpansionNode::upperBound() const
+QUmlExpansionNode::~QUmlExpansionNode()
{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ExpansionNode]
+// OWNED ATTRIBUTES
/*!
The expansion region for which the node is an input.
*/
-QUmlExpansionRegion *QUmlExpansionNode::regionAsInput() const
-{
- return reinterpret_cast<QUmlExpansionRegion *>(_regionAsInput);
-}
-
-/*!
- The expansion region for which the node is an output.
- */
-QUmlExpansionRegion *QUmlExpansionNode::regionAsOutput() const
-{
- return reinterpret_cast<QUmlExpansionRegion *>(_regionAsOutput);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExpansionNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExpansionNode::mustBeOwned() const
+QUmlExpansionRegion *
+QUmlExpansionNode::regionAsInput() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExpansionNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _regionAsInput;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExpansionNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExpansionNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExpansionNode::separator() const
+void QUmlExpansionNode::setRegionAsInput(QUmlExpansionRegion *regionAsInput)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlExpansionNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_regionAsInput != regionAsInput) {
+ _regionAsInput = regionAsInput;
+ if (regionAsInput->asQObject() && this->asQObject())
+ QObject::connect(regionAsInput->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRegionAsInput()));
+ }
}
/*!
- 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.
+ The expansion region for which the node is an output.
*/
-bool QUmlExpansionNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExpansionNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExpansionNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExpansionNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExpansionNode::removeClientDependency(UmlDependency *clientDependency)
+QUmlExpansionRegion *
+QUmlExpansionNode::regionAsOutput() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExpansionNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlExpansionNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlExpansionNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExpansionNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlExpansionNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlExpansionNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlExpansionNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlExpansionNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlExpansionNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlExpansionNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlExpansionNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlExpansionNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlExpansionNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlExpansionNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlExpansionNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlExpansionNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlExpansionNode::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlExpansionNode::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlExpansionNode::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlExpansionNode::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlExpansionNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlExpansionNode::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlExpansionNode::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExpansionNode]
-
-void QUmlExpansionNode::setRegionAsInput(QUmlExpansionRegion *regionAsInput)
-{
- UmlExpansionNode::setRegionAsInput(regionAsInput);
+ return _regionAsOutput;
}
void QUmlExpansionNode::setRegionAsOutput(QUmlExpansionRegion *regionAsOutput)
{
- UmlExpansionNode::setRegionAsOutput(regionAsOutput);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_regionAsOutput != regionAsOutput) {
+ _regionAsOutput = regionAsOutput;
+ if (regionAsOutput->asQObject() && this->asQObject())
+ QObject::connect(regionAsOutput->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRegionAsOutput()));
+ }
+}
diff --git a/src/uml/qumlexpansionnode.h b/src/uml/qumlexpansionnode.h
index ce9b1b44..b06cd3d8 100644
--- a/src/uml/qumlexpansionnode.h
+++ b/src/uml/qumlexpansionnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexpansionnode_p.h"
+#include <QtUml/QUmlObjectNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,184 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlExpansionRegion;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlExpansionNode : public QObject, public UmlExpansionNode
+class Q_UML_EXPORT QUmlExpansionNode : public QUmlObjectNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [ExpansionNode]
- Q_PROPERTY(QUmlExpansionRegion * regionAsInput READ regionAsInput)
- Q_PROPERTY(QUmlExpansionRegion * regionAsOutput READ regionAsOutput)
-
public:
- Q_INVOKABLE explicit QUmlExpansionNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
+ explicit QUmlExpansionNode(bool createQObject = true);
+ virtual ~QUmlExpansionNode();
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Owned attributes [ExpansionNode]
- Q_INVOKABLE QUmlExpansionRegion *regionAsInput() const;
- Q_INVOKABLE QUmlExpansionRegion *regionAsOutput() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
-
- // Slots for owned attributes [ExpansionNode]
+ // Owned attributes
+ QUmlExpansionRegion *regionAsInput() const;
void setRegionAsInput(QUmlExpansionRegion *regionAsInput);
+ QUmlExpansionRegion *regionAsOutput() const;
void setRegionAsOutput(QUmlExpansionRegion *regionAsOutput);
+
+protected:
+ QUmlExpansionRegion *_regionAsInput;
+ QUmlExpansionRegion *_regionAsOutput;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExpansionNode *)
-Q_DECLARE_METATYPE(QList<QUmlExpansionNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExpansionNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExpansionNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlexpansionregion.cpp b/src/uml/qumlexpansionregion.cpp
index bdaaf239..0f7109c4 100644
--- a/src/uml/qumlexpansionregion.cpp
+++ b/src/uml/qumlexpansionregion.cpp
@@ -40,815 +40,134 @@
****************************************************************************/
#include "qumlexpansionregion.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlExpansionNode>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
+#include "private/qumlexpansionregionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlExpansionNode>
/*!
- \class UmlExpansionRegion
+ \class QUmlExpansionRegion
\inmodule QtUml
\brief An expansion region is a structured activity region that executes multiple times corresponding to elements of an input collection.
*/
-
-QUmlExpansionRegion::QUmlExpansionRegion(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExpansionRegion::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExpansionRegion::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExpansionRegion::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExpansionRegion::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExpansionRegion::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExpansionRegion::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExpansionRegion::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExpansionRegion::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExpansionRegion::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExpansionRegion::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExpansionRegion::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExpansionRegion::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlExpansionRegion::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlExpansionRegion::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlExpansionRegion::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlExpansionRegion::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlExpansionRegion::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlExpansionRegion::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlExpansionRegion::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlExpansionRegion::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlExpansionRegion::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlExpansionRegion::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlExpansionRegion::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlExpansionRegion::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlExpansionRegion::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlExpansionRegion::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlExpansionRegion::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlExpansionRegion::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlExpansionRegion::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlExpansionRegion::ownedMember() const
+QUmlExpansionRegion::QUmlExpansionRegion(bool createQObject) :
+ QUmlStructuredActivityNode(false),
+ _mode(QtUml::ExpansionKindIterative)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ if (createQObject)
+ _qObject = new QUmlExpansionRegionObject(this);
}
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlExpansionRegion::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlExpansionRegion::packageImport() const
+QUmlExpansionRegion::~QUmlExpansionRegion()
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityGroup]
-
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlExpansionRegion::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
-}
-
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlExpansionRegion::containedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
-
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlExpansionRegion::subgroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
-}
-
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlExpansionRegion::superGroup() const
-{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
-}
-
-// OWNED ATTRIBUTES [StructuredActivityNode]
-
-/*!
- Activity immediately containing the node.
- */
-QUmlActivity *QUmlExpansionRegion::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Edges immediately contained in the structured node.
- */
-const QSet<QUmlActivityEdge *> QUmlExpansionRegion::edge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
-
-/*!
- If true, then the actions in the node execute in isolation from actions outside the node.
- */
-bool QUmlExpansionRegion::mustIsolate() const
-{
- return _mustIsolate;
-}
-
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlExpansionRegion::node() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
-}
-
-const QSet<QUmlInputPin *> QUmlExpansionRegion::structuredNodeInput() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_structuredNodeInput));
-}
-
-const QSet<QUmlOutputPin *> QUmlExpansionRegion::structuredNodeOutput() const
-{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_structuredNodeOutput));
-}
-
-/*!
- A variable defined in the scope of the structured activity node. It has no value and may not be accessed
- */
-const QSet<QUmlVariable *> QUmlExpansionRegion::variable() const
-{
- return *(reinterpret_cast<const QSet<QUmlVariable *> *>(&_variable));
-}
-
-// OWNED ATTRIBUTES [ExpansionRegion]
+// OWNED ATTRIBUTES
/*!
An object node that holds a separate element of the input collection during each of the multiple executions of the region.
*/
-const QSet<QUmlExpansionNode *> QUmlExpansionRegion::inputElement() const
+const QSet<QUmlExpansionNode *>
+QUmlExpansionRegion::inputElement() const
{
- return *(reinterpret_cast<const QSet<QUmlExpansionNode *> *>(&_inputElement));
-}
+ // This is a read-write association end
-/*!
- The way in which the executions interact: parallel: all interactions are independent iterative: the interactions occur in order of the elements stream: a stream of values flows into a single execution
- */
-QtUml::ExpansionKind QUmlExpansionRegion::mode() const
-{
- return _mode;
+ return _inputElement;
}
-/*!
- 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.
- */
-const QSet<QUmlExpansionNode *> QUmlExpansionRegion::outputElement() const
+void QUmlExpansionRegion::addInputElement(QUmlExpansionNode *inputElement)
{
- return *(reinterpret_cast<const QSet<QUmlExpansionNode *> *>(&_outputElement));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_inputElement.contains(inputElement)) {
+ _inputElement.insert(inputElement);
+ if (inputElement->asQObject() && this->asQObject())
+ QObject::connect(inputElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInputElement(QObject *)));
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExpansionRegion::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (inputElement) {
+ inputElement->setRegionAsInput(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlExpansionRegion::mustBeOwned() const
+void QUmlExpansionRegion::removeInputElement(QUmlExpansionNode *inputElement)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_inputElement.contains(inputElement)) {
+ _inputElement.remove(inputElement);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExpansionRegion::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust opposite properties
+ if (inputElement) {
+ inputElement->setRegionAsInput(0);
+ }
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExpansionRegion::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExpansionRegion::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExpansionRegion::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlExpansionRegion::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ The way in which the executions interact: parallel: all interactions are independent iterative: the interactions occur in order of the elements stream: a stream of values flows into a single execution
*/
-bool QUmlExpansionRegion::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QtUml::ExpansionKind
+QUmlExpansionRegion::mode() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write property
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlExpansionRegion::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _mode;
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlExpansionRegion::getNamesOfMember(QUmlNamedElement *element) const
+void QUmlExpansionRegion::setMode(QtUml::ExpansionKind mode)
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write property
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlExpansionRegion::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (_mode != mode) {
+ _mode = mode;
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ 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.
*/
-bool QUmlExpansionRegion::membersAreDistinguishable() const
+const QSet<QUmlExpansionNode *>
+QUmlExpansionRegion::outputElement() const
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExpansionRegion::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _outputElement;
}
-void QUmlExpansionRegion::removeOwnedComment(UmlComment *ownedComment)
+void QUmlExpansionRegion::addOutputElement(QUmlExpansionNode *outputElement)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_outputElement.contains(outputElement)) {
+ _outputElement.insert(outputElement);
+ if (outputElement->asQObject() && this->asQObject())
+ QObject::connect(outputElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOutputElement(QObject *)));
-void QUmlExpansionRegion::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust opposite properties
+ if (outputElement) {
+ outputElement->setRegionAsOutput(this);
+ }
+ }
}
-void QUmlExpansionRegion::removeClientDependency(UmlDependency *clientDependency)
+void QUmlExpansionRegion::removeOutputElement(QUmlExpansionNode *outputElement)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlExpansionRegion::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (_outputElement.contains(outputElement)) {
+ _outputElement.remove(outputElement);
-void QUmlExpansionRegion::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ // Adjust opposite properties
+ if (outputElement) {
+ outputElement->setRegionAsOutput(0);
+ }
+ }
}
-void QUmlExpansionRegion::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExpansionRegion::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlExpansionRegion::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlExpansionRegion::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlExpansionRegion::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlExpansionRegion::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlExpansionRegion::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlExpansionRegion::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlExpansionRegion::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlExpansionRegion::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlExpansionRegion::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlExpansionRegion::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlExpansionRegion::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlExpansionRegion::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlExpansionRegion::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlExpansionRegion::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlExpansionRegion::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlExpansionRegion::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlExpansionRegion::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlExpansionRegion::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlExpansionRegion::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlExpansionRegion::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlExpansionRegion::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlExpansionRegion::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlExpansionRegion::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlExpansionRegion::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
-
-void QUmlExpansionRegion::setActivity(QUmlActivity *activity)
-{
- UmlStructuredActivityNode::setActivity(activity);
-}
-
-void QUmlExpansionRegion::addEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::addEdge(edge);
-}
-
-void QUmlExpansionRegion::removeEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::removeEdge(edge);
-}
-
-void QUmlExpansionRegion::setMustIsolate(bool mustIsolate)
-{
- UmlStructuredActivityNode::setMustIsolate(mustIsolate);
-}
-
-void QUmlExpansionRegion::addNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::addNode(node);
-}
-
-void QUmlExpansionRegion::removeNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::removeNode(node);
-}
-
-void QUmlExpansionRegion::addStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::addStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlExpansionRegion::removeStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::removeStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlExpansionRegion::addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- UmlStructuredActivityNode::addStructuredNodeOutput(structuredNodeOutput);
-}
-
-void QUmlExpansionRegion::removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- UmlStructuredActivityNode::removeStructuredNodeOutput(structuredNodeOutput);
-}
-
-void QUmlExpansionRegion::addVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::addVariable(variable);
-}
-
-void QUmlExpansionRegion::removeVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::removeVariable(variable);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExpansionRegion]
-
-void QUmlExpansionRegion::addInputElement(UmlExpansionNode *inputElement)
-{
- UmlExpansionRegion::addInputElement(inputElement);
-}
-
-void QUmlExpansionRegion::removeInputElement(UmlExpansionNode *inputElement)
-{
- UmlExpansionRegion::removeInputElement(inputElement);
-}
-
-void QUmlExpansionRegion::setMode(QtUml::ExpansionKind mode)
-{
- UmlExpansionRegion::setMode(mode);
-}
-
-void QUmlExpansionRegion::addOutputElement(UmlExpansionNode *outputElement)
-{
- UmlExpansionRegion::addOutputElement(outputElement);
-}
-
-void QUmlExpansionRegion::removeOutputElement(UmlExpansionNode *outputElement)
-{
- UmlExpansionRegion::removeOutputElement(outputElement);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlexpansionregion.h b/src/uml/qumlexpansionregion.h
index 9b833a08..7dc7f617 100644
--- a/src/uml/qumlexpansionregion.h
+++ b/src/uml/qumlexpansionregion.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexpansionregion_p.h"
+#include <QtUml/QUmlStructuredActivityNode>
+
#include <QtUml/QtUmlNamespace>
@@ -54,268 +54,33 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExceptionHandler;
class QUmlExpansionNode;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlExpansionRegion : public QObject, public UmlExpansionRegion
+class Q_UML_EXPORT QUmlExpansionRegion : public QUmlStructuredActivityNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [StructuredActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(bool mustIsolate READ mustIsolate)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
- Q_PROPERTY(QSet<QUmlInputPin *> structuredNodeInput READ structuredNodeInput)
- Q_PROPERTY(QSet<QUmlOutputPin *> structuredNodeOutput READ structuredNodeOutput)
- Q_PROPERTY(QSet<QUmlVariable *> variable READ variable)
-
- // Properties [ExpansionRegion]
- Q_PROPERTY(QSet<QUmlExpansionNode *> inputElement READ inputElement)
- Q_PROPERTY(QtUml::ExpansionKind mode READ mode)
- Q_PROPERTY(QSet<QUmlExpansionNode *> outputElement READ outputElement)
-
public:
- Q_INVOKABLE explicit QUmlExpansionRegion(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [StructuredActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE bool mustIsolate() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> structuredNodeInput() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> structuredNodeOutput() const;
- Q_INVOKABLE const QSet<QUmlVariable *> variable() const;
-
- // Owned attributes [ExpansionRegion]
- Q_INVOKABLE const QSet<QUmlExpansionNode *> inputElement() const;
- Q_INVOKABLE QtUml::ExpansionKind mode() const;
- Q_INVOKABLE const QSet<QUmlExpansionNode *> outputElement() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ActivityGroup]
-
- // Slots for owned attributes [StructuredActivityNode]
- void setActivity(QUmlActivity *activity);
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- void setMustIsolate(bool mustIsolate);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- void addStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void removeStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
-
- // Slots for owned attributes [ExpansionRegion]
- void addInputElement(UmlExpansionNode *inputElement);
- void removeInputElement(UmlExpansionNode *inputElement);
+ explicit QUmlExpansionRegion(bool createQObject = true);
+ virtual ~QUmlExpansionRegion();
+
+ // Owned attributes
+ const QSet<QUmlExpansionNode *> inputElement() const;
+ void addInputElement(QUmlExpansionNode *inputElement);
+ void removeInputElement(QUmlExpansionNode *inputElement);
+ QtUml::ExpansionKind mode() const;
void setMode(QtUml::ExpansionKind mode);
- void addOutputElement(UmlExpansionNode *outputElement);
- void removeOutputElement(UmlExpansionNode *outputElement);
+ const QSet<QUmlExpansionNode *> outputElement() const;
+ void addOutputElement(QUmlExpansionNode *outputElement);
+ void removeOutputElement(QUmlExpansionNode *outputElement);
+
+protected:
+ QSet<QUmlExpansionNode *> _inputElement;
+ QtUml::ExpansionKind _mode;
+ QSet<QUmlExpansionNode *> _outputElement;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExpansionRegion *)
-Q_DECLARE_METATYPE(QList<QUmlExpansionRegion *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExpansionRegion *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExpansionRegion) *)
QT_END_HEADER
diff --git a/src/uml/qumlexpression.cpp b/src/uml/qumlexpression.cpp
index a3f290b6..8fdd8a0c 100644
--- a/src/uml/qumlexpression.cpp
+++ b/src/uml/qumlexpression.cpp
@@ -40,368 +40,88 @@
****************************************************************************/
#include "qumlexpression.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlexpressionobject_p.h"
/*!
- \class UmlExpression
+ \class QUmlExpression
\inmodule QtUml
\brief An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.An expression represents a node in an expression tree, which may be non-terminal or terminal. It defines a symbol, and has a possibly empty sequence of operands which are value specifications.
*/
-
-QUmlExpression::QUmlExpression(QObject *parent) :
- QObject(parent)
+QUmlExpression::QUmlExpression(bool createQObject)
{
+ if (createQObject)
+ _qObject = new QUmlExpressionObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExpression::ownedComment() const
+QUmlExpression::~QUmlExpression()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExpression::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExpression::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExpression::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExpression::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExpression::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExpression::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExpression::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlExpression::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlExpression::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlExpression::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlExpression::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Expression]
+// OWNED ATTRIBUTES
/*!
Specifies a sequence of operands.
*/
-const QList<QUmlValueSpecification *> QUmlExpression::operand() const
-{
- return *(reinterpret_cast<const QList<QUmlValueSpecification *> *>(&_operand));
-}
-
-/*!
- The symbol associated with the node in the expression tree.
- */
-QString QUmlExpression::symbol() const
+const QList<QUmlValueSpecification *>
+QUmlExpression::operand() const
{
- return _symbol;
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExpression::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _operand;
}
-/*!
- 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.
- */
-bool QUmlExpression::mustBeOwned() const
+void QUmlExpression::addOperand(QUmlValueSpecification *operand)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_operand.contains(operand)) {
+ _operand.append(operand);
+ if (operand->asQObject() && this->asQObject())
+ QObject::connect(operand->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOperand(QObject *)));
+ operand->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExpression::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedElement(operand);
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExpression::allOwningPackages() const
+void QUmlExpression::removeOperand(QUmlValueSpecification *operand)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlExpression::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (_operand.contains(operand)) {
+ _operand.removeAll(operand);
+ if (operand->asQObject())
+ operand->asQObject()->setParent(0);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExpression::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlExpression::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlExpression::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlExpression::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlExpression::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- 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.
- */
-bool QUmlExpression::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlExpression::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlExpression::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlExpression::stringValue() const
-{
- return UmlValueSpecification::stringValue();
+ // Adjust subsetted properties
+ removeOwnedElement(operand);
+ }
}
/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
+ The symbol associated with the node in the expression tree.
*/
-int QUmlExpression::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExpression::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExpression::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExpression::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExpression::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExpression::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExpression::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlExpression::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlExpression::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlExpression::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlExpression::setVisibility(QtUml::VisibilityKind visibility)
+QString
+QUmlExpression::symbol() const
{
- UmlPackageableElement::setVisibility(visibility);
-}
+ // This is a read-write property
-// SLOTS FOR OWNED ATTRIBUTES [Expression]
-
-void QUmlExpression::addOperand(UmlValueSpecification *operand)
-{
- UmlExpression::addOperand(operand);
-}
-
-void QUmlExpression::removeOperand(UmlValueSpecification *operand)
-{
- UmlExpression::removeOperand(operand);
+ return _symbol;
}
void QUmlExpression::setSymbol(QString symbol)
{
- UmlExpression::setSymbol(symbol);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_symbol != symbol) {
+ _symbol = symbol;
+ }
+}
diff --git a/src/uml/qumlexpression.h b/src/uml/qumlexpression.h
index f9f733e8..f59adee2 100644
--- a/src/uml/qumlexpression.h
+++ b/src/uml/qumlexpression.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlexpression_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,133 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlExpression : public QObject, public UmlExpression
+class Q_UML_EXPORT QUmlExpression : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Expression]
- Q_PROPERTY(QList<QUmlValueSpecification *> operand READ operand)
- Q_PROPERTY(QString symbol READ symbol)
-
public:
- Q_INVOKABLE explicit QUmlExpression(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Expression]
- Q_INVOKABLE const QList<QUmlValueSpecification *> operand() const;
- Q_INVOKABLE QString symbol() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Expression]
- void addOperand(UmlValueSpecification *operand);
- void removeOperand(UmlValueSpecification *operand);
+ explicit QUmlExpression(bool createQObject = true);
+ virtual ~QUmlExpression();
+
+ // Owned attributes
+ const QList<QUmlValueSpecification *> operand() const;
+ void addOperand(QUmlValueSpecification *operand);
+ void removeOperand(QUmlValueSpecification *operand);
+ QString symbol() const;
void setSymbol(QString symbol);
+
+protected:
+ QList<QUmlValueSpecification *> _operand;
+ QString _symbol;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExpression *)
-Q_DECLARE_METATYPE(QList<QUmlExpression *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExpression *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExpression) *)
QT_END_HEADER
diff --git a/src/uml/qumlextend.cpp b/src/uml/qumlextend.cpp
index 705beb1b..605d9486 100644
--- a/src/uml/qumlextend.cpp
+++ b/src/uml/qumlextend.cpp
@@ -40,300 +40,158 @@
****************************************************************************/
#include "qumlextend.h"
-#include <QtUml/QUmlComment>
+#include "private/qumlextendobject_p.h"
+
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlExtensionPoint>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlUseCase>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlExtend
+ \class QUmlExtend
\inmodule QtUml
\brief A relationship from an extending use case to an extended use case that specifies how and when the behavior defined in the extending use case can be inserted into the behavior defined in the extended use case.
*/
-
-QUmlExtend::QUmlExtend(QObject *parent) :
- QObject(parent)
+QUmlExtend::QUmlExtend(bool createQObject) :
+ _condition(0),
+ _extendedCase(0),
+ _extension(0)
{
+ if (createQObject)
+ _qObject = new QUmlExtendObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExtend::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExtend::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExtend::owner() const
+QUmlExtend::~QUmlExtend()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Relationship]
+// OWNED ATTRIBUTES
/*!
- Specifies the elements related by the Relationship.
+ References the condition that must hold when the first extension point is reached for the extension to take place. If no constraint is associated with the extend relationship, the extension is unconditional.
*/
-const QSet<QUmlElement *> QUmlExtend::relatedElement() const
+QUmlConstraint *
+QUmlExtend::condition() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
+ // This is a read-write association end
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlExtend::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
+ return _condition;
}
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlExtend::target() const
+void QUmlExtend::setCondition(QUmlConstraint *condition)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExtend::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ if (_condition != condition) {
+ // Adjust subsetted properties
+ removeOwnedElement(_condition);
-/*!
- The name of the NamedElement.
- */
-QString QUmlExtend::name() const
-{
- return _name;
-}
+ _condition = condition;
+ if (condition->asQObject() && this->asQObject())
+ QObject::connect(condition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setCondition()));
+ condition->asQObject()->setParent(this->asQObject());
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExtend::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ // Adjust subsetted properties
+ if (condition) {
+ addOwnedElement(condition);
+ }
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ References the use case that is being extended.
*/
-QUmlNamespace *QUmlExtend::namespace_() const
+QUmlUseCase *
+QUmlExtend::extendedCase() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlExtend::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _extendedCase;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExtend::visibility() const
+void QUmlExtend::setExtendedCase(QUmlUseCase *extendedCase)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Extend]
+ if (_extendedCase != extendedCase) {
+ // Adjust subsetted properties
+ removeTarget(_extendedCase);
-/*!
- 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.
- */
-QUmlConstraint *QUmlExtend::condition() const
-{
- return reinterpret_cast<QUmlConstraint *>(_condition);
-}
+ _extendedCase = extendedCase;
+ if (extendedCase->asQObject() && this->asQObject())
+ QObject::connect(extendedCase->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExtendedCase()));
-/*!
- References the use case that is being extended.
- */
-QUmlUseCase *QUmlExtend::extendedCase() const
-{
- return reinterpret_cast<QUmlUseCase *>(_extendedCase);
+ // Adjust subsetted properties
+ if (extendedCase) {
+ addTarget(extendedCase);
+ }
+ }
}
/*!
References the use case that represents the extension and owns the extend relationship.
*/
-QUmlUseCase *QUmlExtend::extension() const
-{
- return reinterpret_cast<QUmlUseCase *>(_extension);
-}
-
-/*!
- 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.)
- */
-const QList<QUmlExtensionPoint *> QUmlExtend::extensionLocation() const
+QUmlUseCase *
+QUmlExtend::extension() const
{
- return *(reinterpret_cast<const QList<QUmlExtensionPoint *> *>(&_extensionLocation));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExtend::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _extension;
}
-/*!
- 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.
- */
-bool QUmlExtend::mustBeOwned() const
+void QUmlExtend::setExtension(QUmlUseCase *extension)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExtend::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ if (_extension != extension) {
+ // Adjust subsetted properties
+ removeSource(_extension);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExtend::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ _extension = extension;
+ if (extension->asQObject() && this->asQObject())
+ QObject::connect(extension->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExtension()));
-/*!
- 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.
- */
-bool QUmlExtend::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ if (extension) {
+ addSource(extension);
+ }
+ setNamespace(extension);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ 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.)
*/
-QString QUmlExtend::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExtend::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExtend::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExtend::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExtend::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExtend::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExtend::setNameExpression(QUmlStringExpression *nameExpression)
+const QList<QUmlExtensionPoint *>
+QUmlExtend::extensionLocation() const
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlExtend::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _extensionLocation;
}
-// SLOTS FOR OWNED ATTRIBUTES [Extend]
-
-void QUmlExtend::setCondition(QUmlConstraint *condition)
+void QUmlExtend::addExtensionLocation(QUmlExtensionPoint *extensionLocation)
{
- UmlExtend::setCondition(condition);
-}
+ // This is a read-write association end
-void QUmlExtend::setExtendedCase(QUmlUseCase *extendedCase)
-{
- UmlExtend::setExtendedCase(extendedCase);
+ if (!_extensionLocation.contains(extensionLocation)) {
+ _extensionLocation.append(extensionLocation);
+ if (extensionLocation->asQObject() && this->asQObject())
+ QObject::connect(extensionLocation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExtensionLocation(QObject *)));
+ }
}
-void QUmlExtend::setExtension(QUmlUseCase *extension)
+void QUmlExtend::removeExtensionLocation(QUmlExtensionPoint *extensionLocation)
{
- UmlExtend::setExtension(extension);
-}
+ // This is a read-write association end
-void QUmlExtend::addExtensionLocation(UmlExtensionPoint *extensionLocation)
-{
- UmlExtend::addExtensionLocation(extensionLocation);
+ if (_extensionLocation.contains(extensionLocation)) {
+ _extensionLocation.removeAll(extensionLocation);
+ }
}
-void QUmlExtend::removeExtensionLocation(UmlExtensionPoint *extensionLocation)
-{
- UmlExtend::removeExtensionLocation(extensionLocation);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlextend.h b/src/uml/qumlextend.h
index 925dd74e..11165338 100644
--- a/src/uml/qumlextend.h
+++ b/src/uml/qumlextend.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlextend_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,116 +53,37 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
class QUmlExtensionPoint;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
class QUmlUseCase;
-class Q_UML_EXPORT QUmlExtend : public QObject, public UmlExtend
+class Q_UML_EXPORT QUmlExtend : public QUmlDirectedRelationship, public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Extend]
- Q_PROPERTY(QUmlConstraint * condition READ condition)
- Q_PROPERTY(QUmlUseCase * extendedCase READ extendedCase)
- Q_PROPERTY(QUmlUseCase * extension READ extension)
- Q_PROPERTY(QList<QUmlExtensionPoint *> extensionLocation READ extensionLocation)
-
public:
- Q_INVOKABLE explicit QUmlExtend(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Extend]
- Q_INVOKABLE QUmlConstraint *condition() const;
- Q_INVOKABLE QUmlUseCase *extendedCase() const;
- Q_INVOKABLE QUmlUseCase *extension() const;
- Q_INVOKABLE const QList<QUmlExtensionPoint *> extensionLocation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlExtend(bool createQObject = true);
+ virtual ~QUmlExtend();
- // Slots for owned attributes [Extend]
+ // Owned attributes
+ QUmlConstraint *condition() const;
void setCondition(QUmlConstraint *condition);
+ QUmlUseCase *extendedCase() const;
void setExtendedCase(QUmlUseCase *extendedCase);
+ QUmlUseCase *extension() const;
void setExtension(QUmlUseCase *extension);
- void addExtensionLocation(UmlExtensionPoint *extensionLocation);
- void removeExtensionLocation(UmlExtensionPoint *extensionLocation);
+ const QList<QUmlExtensionPoint *> extensionLocation() const;
+ void addExtensionLocation(QUmlExtensionPoint *extensionLocation);
+ void removeExtensionLocation(QUmlExtensionPoint *extensionLocation);
+
+protected:
+ QUmlConstraint *_condition;
+ QUmlUseCase *_extendedCase;
+ QUmlUseCase *_extension;
+ QList<QUmlExtensionPoint *> _extensionLocation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExtend *)
-Q_DECLARE_METATYPE(QList<QUmlExtend *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExtend *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExtend) *)
QT_END_HEADER
diff --git a/src/uml/qumlextension.cpp b/src/uml/qumlextension.cpp
index edb5fd36..ddbd91da 100644
--- a/src/uml/qumlextension.cpp
+++ b/src/uml/qumlextension.cpp
@@ -40,939 +40,119 @@
****************************************************************************/
#include "qumlextension.h"
+#include "private/qumlextensionobject_p.h"
+
#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
#include <QtUml/QUmlExtensionEnd>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlExtension
+ \class QUmlExtension
\inmodule QtUml
\brief An extension is used to indicate that the properties of a metaclass are extended through a stereotype, and gives the ability to flexibly add (and later remove) stereotypes to classes.
*/
-
-QUmlExtension::QUmlExtension(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExtension::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExtension::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExtension::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExtension::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExtension::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExtension::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExtension::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExtension::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlExtension::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlExtension::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlExtension::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlExtension::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlExtension::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlExtension::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlExtension::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlExtension::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlExtension::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExtension::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExtension::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExtension::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlExtension::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlExtension::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlExtension::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlExtension::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlExtension::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlExtension::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlExtension::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtension::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlExtension::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlExtension::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlExtension::ownedUseCase() const
+QUmlExtension::QUmlExtension(bool createQObject) :
+ QUmlAssociation(false),
+ _ownedEnd(0)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
+ if (createQObject)
+ _qObject = new QUmlExtensionObject(this);
}
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlExtension::powertypeExtent() const
+QUmlExtension::~QUmlExtension()
{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlExtension::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlExtension::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlExtension::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlExtension::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlExtension::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlExtension::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [Association]
-
-/*!
- References the classifiers that are used as types of the ends of the association.
- */
-const QList<QUmlType *> QUmlExtension::endType() const
-{
- QList<QUmlType *> r;
- foreach (UmlType *element, UmlAssociation::endType())
- r.append(reinterpret_cast<QUmlType *>(element));
- return r;
-}
-
-/*!
- Specifies whether the association is derived from other model elements such as other associations or constraints.
- */
-bool QUmlExtension::isDerived() const
-{
- return _isDerived;
-}
-
-/*!
- Each end represents participation of instances of the classifier connected to the end in links of the association.
- */
-const QList<QUmlProperty *> QUmlExtension::memberEnd() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_memberEnd));
-}
-
-/*!
- The navigable ends that are owned by the association itself.
- */
-const QSet<QUmlProperty *> QUmlExtension::navigableOwnedEnd() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_navigableOwnedEnd));
-}
-// OWNED ATTRIBUTES [Extension]
+// OWNED ATTRIBUTES
/*!
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 value of the lower property of the ExtensionEnd referenced by Extension::ownedEnd; a lower value of 1 means that isRequired is true, but otherwise it is false. Since the default value of ExtensionEnd::lower is 0, the default value of isRequired is false.
*/
-bool QUmlExtension::isRequired() const
-{
- return UmlExtension::isRequired();
-}
-
-/*!
- References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd.
- */
-QUmlClass *QUmlExtension::metaclass() const
-{
- return reinterpret_cast<QUmlClass *>(UmlExtension::metaclass());
-}
-
-/*!
- References the end of the extension that is typed by a Stereotype.
- */
-QUmlExtensionEnd *QUmlExtension::ownedEnd() const
-{
- return reinterpret_cast<QUmlExtensionEnd *>(_ownedEnd);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExtension::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtension::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExtension::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExtension::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtension::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExtension::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlExtension::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
+bool
+QUmlExtension::isRequired() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlExtension::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlExtension::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlExtension::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-only derived property
-// OPERATIONS [ParameterableElement]
+ qWarning("UmlExtension::isRequired(): to be implemented (this is a derived property)");
-/*!
- 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.
- */
-bool QUmlExtension::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return bool();
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlExtension::isTemplateParameter() const
+void QUmlExtension::setRequired(bool isRequired)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-only derived property
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ qWarning("UmlExtension::isRequired(): to be implemented (this is a derived property)");
+ Q_UNUSED(isRequired);
-/*!
- 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.
- */
-bool QUmlExtension::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.
- */
-bool QUmlExtension::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
+ References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd.
*/
-QSet<QUmlParameterableElement *> QUmlExtension::parameterableElements() const
+QUmlClass *
+QUmlExtension::metaclass() const
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-only derived association end
-// OPERATIONS [Classifier]
+ qWarning("UmlExtension::metaclass(): to be implemented (this is a derived association end)");
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlExtension::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
+ return 0;
}
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlExtension::allParents() const
+void QUmlExtension::setMetaclass(QUmlClass *metaclass)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlExtension::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ qWarning("UmlExtension::metaclass(): to be implemented (this is a derived association end)");
+ Q_UNUSED(metaclass);
-/*!
- 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.
- */
-bool QUmlExtension::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
+ References the end of the extension that is typed by a Stereotype.
*/
-QSet<QUmlNamedElement *> QUmlExtension::inherit(QSet<QUmlNamedElement *> inhs) const
+QUmlExtensionEnd *
+QUmlExtension::ownedEnd() const
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlExtension::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ return _ownedEnd;
}
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlExtension::isTemplate() const
+void QUmlExtension::setOwnedEnd(QUmlExtensionEnd *ownedEnd)
{
- return UmlClassifier::isTemplate();
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlExtension::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ if (_ownedEnd != ownedEnd) {
+ _ownedEnd = ownedEnd;
+ if (ownedEnd->asQObject() && this->asQObject())
+ QObject::connect(ownedEnd->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwnedEnd()));
+ ownedEnd->asQObject()->setParent(this->asQObject());
+ }
}
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlExtension::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Extension]
+// OPERATIONS
/*!
The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype).
*/
QUmlProperty *QUmlExtension::metaclassEnd() const
{
- return reinterpret_cast<QUmlProperty *>(UmlExtension::metaclassEnd());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExtension::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExtension::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExtension::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExtension::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExtension::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExtension::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlExtension::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlExtension::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlExtension::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlExtension::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlExtension::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlExtension::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlExtension::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlExtension::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlExtension::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExtension::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlExtension::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlExtension::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlExtension::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlExtension::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlExtension::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
+ qWarning("UmlExtension::metaclassEnd(): to be implemented (operation)");
-void QUmlExtension::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlExtension::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
+ return 0;
}
-void QUmlExtension::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlExtension::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlExtension::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlExtension::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlExtension::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlExtension::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlExtension::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlExtension::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlExtension::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlExtension::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlExtension::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlExtension::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlExtension::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlExtension::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlExtension::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlExtension::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Association]
-
-void QUmlExtension::setDerived(bool isDerived)
-{
- UmlAssociation::setDerived(isDerived);
-}
-
-void QUmlExtension::addMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::addMemberEnd(memberEnd);
-}
-
-void QUmlExtension::removeMemberEnd(UmlProperty *memberEnd)
-{
- UmlAssociation::removeMemberEnd(memberEnd);
-}
-
-void QUmlExtension::addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::addNavigableOwnedEnd(navigableOwnedEnd);
-}
-
-void QUmlExtension::removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd)
-{
- UmlAssociation::removeNavigableOwnedEnd(navigableOwnedEnd);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Extension]
-
-void QUmlExtension::setOwnedEnd(QUmlExtensionEnd *ownedEnd)
-{
- UmlExtension::setOwnedEnd(ownedEnd);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlextension.h b/src/uml/qumlextension.h
index 22cbdf77..26d7ea57 100644
--- a/src/uml/qumlextension.h
+++ b/src/uml/qumlextension.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlextension_p.h"
+#include <QtUml/QUmlAssociation>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,300 +53,33 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlExtensionEnd;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlExtension : public QObject, public UmlExtension
+class Q_UML_EXPORT QUmlExtension : public QUmlAssociation
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [Association]
- Q_PROPERTY(QList<QUmlType *> endType READ endType)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(QList<QUmlProperty *> memberEnd READ memberEnd)
- Q_PROPERTY(QSet<QUmlProperty *> navigableOwnedEnd READ navigableOwnedEnd)
-
- // Properties [Extension]
- Q_PROPERTY(bool isRequired READ isRequired)
- Q_PROPERTY(QUmlClass * metaclass READ metaclass)
- Q_PROPERTY(QUmlExtensionEnd * ownedEnd READ ownedEnd)
-
public:
- Q_INVOKABLE explicit QUmlExtension(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [Association]
- Q_INVOKABLE const QList<QUmlType *> endType() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE const QList<QUmlProperty *> memberEnd() const;
- Q_INVOKABLE const QSet<QUmlProperty *> navigableOwnedEnd() const;
-
- // Owned attributes [Extension]
- Q_INVOKABLE bool isRequired() const;
- Q_INVOKABLE QUmlClass *metaclass() const;
- Q_INVOKABLE QUmlExtensionEnd *ownedEnd() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Extension]
- Q_INVOKABLE QUmlProperty *metaclassEnd() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [Relationship]
+ explicit QUmlExtension(bool createQObject = true);
+ virtual ~QUmlExtension();
+
+ // Owned attributes
+ bool isRequired() const;
+ Q_DECL_HIDDEN void setRequired(bool isRequired);
+ QUmlClass *metaclass() const;
+ Q_DECL_HIDDEN void setMetaclass(QUmlClass *metaclass);
+ QUmlExtensionEnd *ownedEnd() const;
+ void setOwnedEnd(QUmlExtensionEnd *ownedEnd);
- // Slots for owned attributes [Association]
- void setDerived(bool isDerived);
- void addMemberEnd(UmlProperty *memberEnd);
- void removeMemberEnd(UmlProperty *memberEnd);
- void addNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
- void removeNavigableOwnedEnd(UmlProperty *navigableOwnedEnd);
+ // Operations
+ QUmlProperty *metaclassEnd() const;
- // Slots for owned attributes [Extension]
- void setOwnedEnd(QUmlExtensionEnd *ownedEnd);
+protected:
+ QUmlExtensionEnd *_ownedEnd;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExtension *)
-Q_DECLARE_METATYPE(QList<QUmlExtension *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExtension *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExtension) *)
QT_END_HEADER
diff --git a/src/uml/qumlextensionend.cpp b/src/uml/qumlextensionend.cpp
index bcff6dfc..26386516 100644
--- a/src/uml/qumlextensionend.cpp
+++ b/src/uml/qumlextensionend.cpp
@@ -40,832 +40,91 @@
****************************************************************************/
#include "qumlextensionend.h"
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElementTemplateParameter>
-#include <QtUml/QUmlConnectorEnd>
-#include <QtUml/QUmlDataType>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterface>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStereotype>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlextensionendobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlStereotype>
/*!
- \class UmlExtensionEnd
+ \class QUmlExtensionEnd
\inmodule QtUml
\brief An extension end is used to tie an extension to a stereotype when extending a metaclass.The default multiplicity of an extension end is 0..1.
*/
-
-QUmlExtensionEnd::QUmlExtensionEnd(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExtensionEnd::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExtensionEnd::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExtensionEnd::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExtensionEnd::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlExtensionEnd::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExtensionEnd::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExtensionEnd::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExtensionEnd::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExtensionEnd::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlExtensionEnd::isOrdered() const
+QUmlExtensionEnd::QUmlExtensionEnd(bool createQObject) :
+ QUmlProperty(false),
+ _type(0)
{
- return _isOrdered;
+ if (createQObject)
+ _qObject = new QUmlExtensionEndObject(this);
}
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlExtensionEnd::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlExtensionEnd::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlExtensionEnd::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlExtensionEnd::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExtensionEnd::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExtensionEnd::redefinedElement() const
+QUmlExtensionEnd::~QUmlExtensionEnd()
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExtensionEnd::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [Feature]
-
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlExtensionEnd::featuringClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
-
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlExtensionEnd::isStatic() const
-{
- return _isStatic;
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlExtensionEnd::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [ConnectableElement]
-
-/*!
- Denotes a set of connector ends that attaches to this connectable element.
- */
-const QList<QUmlConnectorEnd *> QUmlExtensionEnd::end() const
-{
- QList<QUmlConnectorEnd *> r;
- foreach (UmlConnectorEnd *element, UmlConnectableElement::end())
- r.append(reinterpret_cast<QUmlConnectorEnd *>(element));
- return r;
-}
-
-/*!
- The ConnectableElementTemplateParameter for this ConnectableElement parameter.
- */
-QUmlConnectableElementTemplateParameter *QUmlExtensionEnd::templateParameter() const
-{
- return reinterpret_cast<QUmlConnectableElementTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlExtensionEnd::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlExtensionEnd::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OWNED ATTRIBUTES [Property]
-
-/*!
- Specifies the kind of aggregation that applies to the Property.
- */
-QtUml::AggregationKind QUmlExtensionEnd::aggregation() const
-{
- return _aggregation;
-}
-
-/*!
- References the association of which this property is a member, if any.
- */
-QUmlAssociation *QUmlExtensionEnd::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(_association);
-}
-
-/*!
- Designates the optional association end that owns a qualifier attribute.
- */
-QUmlProperty *QUmlExtensionEnd::associationEnd() const
-{
- return reinterpret_cast<QUmlProperty *>(_associationEnd);
-}
-
-/*!
- References the Class that owns the Property.References the Class that owns the Property.
- */
-QUmlClass *QUmlExtensionEnd::class_() const
-{
- return reinterpret_cast<QUmlClass *>(_class_);
-}
-
-/*!
- The DataType that owns this Property.
- */
-QUmlDataType *QUmlExtensionEnd::datatype() const
-{
- return reinterpret_cast<QUmlDataType *>(_datatype);
-}
-
-/*!
- Specifies a String that represents a value to be used when no argument is supplied for the Property.A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
- */
-QString QUmlExtensionEnd::default_() const
-{
- return UmlProperty::default_();
-}
-
-/*!
- A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
- */
-QUmlValueSpecification *QUmlExtensionEnd::defaultValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_defaultValue);
-}
-
-/*!
- References the Interface that owns the Property
- */
-QUmlInterface *QUmlExtensionEnd::interface_() const
-{
- return reinterpret_cast<QUmlInterface *>(_interface_);
-}
-
-/*!
- If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.This is a derived value, indicating whether the aggregation of the Property is composite or not.
- */
-bool QUmlExtensionEnd::isComposite() const
-{
- return UmlProperty::isComposite();
-}
-
-/*!
- If isDerived is true, the value of the attribute is derived from information elsewhere.Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
- */
-bool QUmlExtensionEnd::isDerived() const
-{
- return _isDerived;
-}
-
-/*!
- Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.
- */
-bool QUmlExtensionEnd::isDerivedUnion() const
-{
- return _isDerivedUnion;
-}
-
-/*!
- True indicates this property can be used to uniquely identify an instance of the containing Class.
- */
-bool QUmlExtensionEnd::isID() const
-{
- return _isID;
-}
-
-/*!
- If true, the attribute may only be read, and not written.If isReadOnly is true, the attribute may not be written to after initialization.
- */
-bool QUmlExtensionEnd::isReadOnly() const
-{
- return _isReadOnly;
-}
-
-/*!
- In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end.
- */
-QUmlProperty *QUmlExtensionEnd::opposite() const
-{
- return reinterpret_cast<QUmlProperty *>(UmlProperty::opposite());
-}
-
-/*!
- References the owning association of this property, if any.
- */
-QUmlAssociation *QUmlExtensionEnd::owningAssociation() const
-{
- return reinterpret_cast<QUmlAssociation *>(_owningAssociation);
-}
-
-/*!
- An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified.
- */
-const QList<QUmlProperty *> QUmlExtensionEnd::qualifier() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_qualifier));
-}
-
-/*!
- References the properties that are redefined by this property.
- */
-const QSet<QUmlProperty *> QUmlExtensionEnd::redefinedProperty() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_redefinedProperty));
-}
-
-/*!
- References the properties of which this property is constrained to be a subset.
- */
-const QSet<QUmlProperty *> QUmlExtensionEnd::subsettedProperty() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_subsettedProperty));
-}
-
-// OWNED ATTRIBUTES [ExtensionEnd]
+// OWNED ATTRIBUTES
/*!
This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype.
*/
-int QUmlExtensionEnd::lower() const
+int
+QUmlExtensionEnd::lower() const
{
- return UmlExtensionEnd::lower();
-}
+ // This is a read-write derived property
-/*!
- References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes.
- */
-QUmlStereotype *QUmlExtensionEnd::type() const
-{
- return reinterpret_cast<QUmlStereotype *>(_type);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExtensionEnd::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtensionEnd::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExtensionEnd::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExtensionEnd::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtensionEnd::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ qWarning("UmlExtensionEnd::lower(): to be implemented (this is a derived property)");
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExtensionEnd::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlExtensionEnd::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlExtensionEnd::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
+ return int();
}
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlExtensionEnd::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlExtensionEnd::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlExtensionEnd::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-int QUmlExtensionEnd::upperBound() const
+void QUmlExtensionEnd::setLower(int lower)
{
- return UmlMultiplicityElement::upperBound();
-}
+ // This is a read-write derived property
-// OPERATIONS [RedefinableElement]
+ qWarning("UmlExtensionEnd::lower(): to be implemented (this is a derived property)");
+ Q_UNUSED(lower);
-/*!
- 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.
- */
-bool QUmlExtensionEnd::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OPERATIONS [ParameterableElement]
-
/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes.
*/
-bool QUmlExtensionEnd::isTemplateParameter() const
+QUmlStereotype *
+QUmlExtensionEnd::type() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Property]
-
-/*!
- The query isAttribute() is true if the Property is defined as an attribute of some classifier.
- */
-bool QUmlExtensionEnd::isAttribute(QUmlProperty *p) const
-{
- return UmlProperty::isAttribute(p);
+ return _type;
}
-/*!
- 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 properties, the type must be conformant with the type of the specified parameterable element.
- */
-bool QUmlExtensionEnd::isCompatibleWith(QUmlParameterableElement *p) const
+void QUmlExtensionEnd::setType(QUmlStereotype *type)
{
- return UmlProperty::isCompatibleWith(p);
-}
+ // This is a read-write association end
-/*!
- 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.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, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.
- */
-bool QUmlExtensionEnd::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlProperty::isConsistentWith(redefinee);
+ if (_type != type) {
+ _type = type;
+ if (type->asQObject() && this->asQObject())
+ QObject::connect(type->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setType()));
+ }
}
-/*!
- The query isNavigable() indicates whether it is possible to navigate across the property.
- */
-bool QUmlExtensionEnd::isNavigable() const
-{
- return UmlProperty::isNavigable();
-}
-
-/*!
- 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.
- */
-QSet<QUmlType *> QUmlExtensionEnd::subsettingContext() const
-{
- QSet<QUmlType *> r;
- foreach (UmlType *element, UmlProperty::subsettingContext())
- r.insert(reinterpret_cast<QUmlType *>(element));
- return r;
-}
-
-// OPERATIONS [ExtensionEnd]
+// OPERATIONS
/*!
The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty.
*/
int QUmlExtensionEnd::lowerBound() const
{
- return UmlExtensionEnd::lowerBound();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExtensionEnd::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExtensionEnd::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExtensionEnd::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExtensionEnd::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExtensionEnd::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExtensionEnd::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlExtensionEnd::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlExtensionEnd::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlExtensionEnd::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlExtensionEnd::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlExtensionEnd::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlExtensionEnd::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExtensionEnd::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlExtensionEnd::setStatic(bool isStatic)
-{
- UmlFeature::setStatic(isStatic);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlExtensionEnd::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
-
-void QUmlExtensionEnd::setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter)
-{
- UmlConnectableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlExtensionEnd::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlExtensionEnd::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Property]
-
-void QUmlExtensionEnd::setAggregation(QtUml::AggregationKind aggregation)
-{
- UmlProperty::setAggregation(aggregation);
-}
-
-void QUmlExtensionEnd::setAssociation(QUmlAssociation *association)
-{
- UmlProperty::setAssociation(association);
-}
-
-void QUmlExtensionEnd::setAssociationEnd(QUmlProperty *associationEnd)
-{
- UmlProperty::setAssociationEnd(associationEnd);
-}
+ qWarning("UmlExtensionEnd::lowerBound(): to be implemented (operation)");
-void QUmlExtensionEnd::setClass(QUmlClass *class_)
-{
- UmlProperty::setClass(class_);
-}
-
-void QUmlExtensionEnd::setDatatype(QUmlDataType *datatype)
-{
- UmlProperty::setDatatype(datatype);
-}
-
-void QUmlExtensionEnd::setDefault(QString default_)
-{
- UmlProperty::setDefault(default_);
+ return int ();
}
-void QUmlExtensionEnd::setDefaultValue(QUmlValueSpecification *defaultValue)
-{
- UmlProperty::setDefaultValue(defaultValue);
-}
-
-void QUmlExtensionEnd::setInterface(QUmlInterface *interface_)
-{
- UmlProperty::setInterface(interface_);
-}
-
-void QUmlExtensionEnd::setComposite(bool isComposite)
-{
- UmlProperty::setComposite(isComposite);
-}
-
-void QUmlExtensionEnd::setDerived(bool isDerived)
-{
- UmlProperty::setDerived(isDerived);
-}
-
-void QUmlExtensionEnd::setDerivedUnion(bool isDerivedUnion)
-{
- UmlProperty::setDerivedUnion(isDerivedUnion);
-}
-
-void QUmlExtensionEnd::setID(bool isID)
-{
- UmlProperty::setID(isID);
-}
-
-void QUmlExtensionEnd::setReadOnly(bool isReadOnly)
-{
- UmlProperty::setReadOnly(isReadOnly);
-}
-
-void QUmlExtensionEnd::setOpposite(QUmlProperty *opposite)
-{
- UmlProperty::setOpposite(opposite);
-}
-
-void QUmlExtensionEnd::setOwningAssociation(QUmlAssociation *owningAssociation)
-{
- UmlProperty::setOwningAssociation(owningAssociation);
-}
-
-void QUmlExtensionEnd::addQualifier(UmlProperty *qualifier)
-{
- UmlProperty::addQualifier(qualifier);
-}
-
-void QUmlExtensionEnd::removeQualifier(UmlProperty *qualifier)
-{
- UmlProperty::removeQualifier(qualifier);
-}
-
-void QUmlExtensionEnd::addRedefinedProperty(UmlProperty *redefinedProperty)
-{
- UmlProperty::addRedefinedProperty(redefinedProperty);
-}
-
-void QUmlExtensionEnd::removeRedefinedProperty(UmlProperty *redefinedProperty)
-{
- UmlProperty::removeRedefinedProperty(redefinedProperty);
-}
-
-void QUmlExtensionEnd::addSubsettedProperty(UmlProperty *subsettedProperty)
-{
- UmlProperty::addSubsettedProperty(subsettedProperty);
-}
-
-void QUmlExtensionEnd::removeSubsettedProperty(UmlProperty *subsettedProperty)
-{
- UmlProperty::removeSubsettedProperty(subsettedProperty);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExtensionEnd]
-
-void QUmlExtensionEnd::setLower(int lower)
-{
- UmlExtensionEnd::setLower(lower);
-}
-
-void QUmlExtensionEnd::setType(QUmlStereotype *type)
-{
- UmlExtensionEnd::setType(type);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlextensionend.h b/src/uml/qumlextensionend.h
index 8fd31286..9a60f927 100644
--- a/src/uml/qumlextensionend.h
+++ b/src/uml/qumlextensionend.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlextensionend_p.h"
+#include <QtUml/QUmlProperty>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,281 +52,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlAssociation;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConnectableElementTemplateParameter;
-class QUmlConnectorEnd;
-class QUmlDataType;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
-class QUmlInterface;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
class QUmlStereotype;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlExtensionEnd : public QObject, public UmlExtensionEnd
+class Q_UML_EXPORT QUmlExtensionEnd : public QUmlProperty
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [StructuralFeature]
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [ConnectableElement]
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QUmlConnectableElementTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [Property]
- Q_PROPERTY(QtUml::AggregationKind aggregation READ aggregation)
- Q_PROPERTY(QUmlAssociation * association READ association)
- Q_PROPERTY(QUmlProperty * associationEnd READ associationEnd)
- Q_PROPERTY(QUmlClass * class_ READ class_)
- Q_PROPERTY(QUmlDataType * datatype READ datatype)
- Q_PROPERTY(QString default_ READ default_)
- Q_PROPERTY(QUmlValueSpecification * defaultValue READ defaultValue)
- Q_PROPERTY(QUmlInterface * interface_ READ interface_)
- Q_PROPERTY(bool isComposite READ isComposite)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(bool isDerivedUnion READ isDerivedUnion)
- Q_PROPERTY(bool isID READ isID)
- Q_PROPERTY(bool isReadOnly READ isReadOnly)
- Q_PROPERTY(QUmlProperty * opposite READ opposite)
- Q_PROPERTY(QUmlAssociation * owningAssociation READ owningAssociation)
- Q_PROPERTY(QList<QUmlProperty *> qualifier READ qualifier)
- Q_PROPERTY(QSet<QUmlProperty *> redefinedProperty READ redefinedProperty)
- Q_PROPERTY(QSet<QUmlProperty *> subsettedProperty READ subsettedProperty)
-
- // Properties [ExtensionEnd]
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlStereotype * type READ type)
-
public:
- Q_INVOKABLE explicit QUmlExtensionEnd(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [StructuralFeature]
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [ConnectableElement]
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QUmlConnectableElementTemplateParameter *templateParameter() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
+ explicit QUmlExtensionEnd(bool createQObject = true);
+ virtual ~QUmlExtensionEnd();
- // Owned attributes [Property]
- Q_INVOKABLE QtUml::AggregationKind aggregation() const;
- Q_INVOKABLE QUmlAssociation *association() const;
- Q_INVOKABLE QUmlProperty *associationEnd() const;
- Q_INVOKABLE QUmlClass *class_() const;
- Q_INVOKABLE QUmlDataType *datatype() const;
- Q_INVOKABLE QString default_() const;
- Q_INVOKABLE QUmlValueSpecification *defaultValue() const;
- Q_INVOKABLE QUmlInterface *interface_() const;
- Q_INVOKABLE bool isComposite() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE bool isDerivedUnion() const;
- Q_INVOKABLE bool isID() const;
- Q_INVOKABLE bool isReadOnly() const;
- Q_INVOKABLE QUmlProperty *opposite() const;
- Q_INVOKABLE QUmlAssociation *owningAssociation() const;
- Q_INVOKABLE const QList<QUmlProperty *> qualifier() const;
- Q_INVOKABLE const QSet<QUmlProperty *> redefinedProperty() const;
- Q_INVOKABLE const QSet<QUmlProperty *> subsettedProperty() const;
-
- // Owned attributes [ExtensionEnd]
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlStereotype *type() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int upperBound() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Property]
- Q_INVOKABLE bool isAttribute(QUmlProperty *p) const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isNavigable() const;
- Q_INVOKABLE QSet<QUmlType *> subsettingContext() const;
-
- // Operations [ExtensionEnd]
- Q_INVOKABLE int lowerBound() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [StructuralFeature]
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [ConnectableElement]
- void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
-
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
-
- // Slots for owned attributes [Property]
- void setAggregation(QtUml::AggregationKind aggregation);
- void setAssociation(QUmlAssociation *association);
- void setAssociationEnd(QUmlProperty *associationEnd);
- void setClass(QUmlClass *class_);
- void setDatatype(QUmlDataType *datatype);
- void setDefault(QString default_);
- void setDefaultValue(QUmlValueSpecification *defaultValue);
- void setInterface(QUmlInterface *interface_);
- void setComposite(bool isComposite);
- void setDerived(bool isDerived);
- void setDerivedUnion(bool isDerivedUnion);
- void setID(bool isID);
- void setReadOnly(bool isReadOnly);
- void setOpposite(QUmlProperty *opposite);
- void setOwningAssociation(QUmlAssociation *owningAssociation);
- void addQualifier(UmlProperty *qualifier);
- void removeQualifier(UmlProperty *qualifier);
- void addRedefinedProperty(UmlProperty *redefinedProperty);
- void removeRedefinedProperty(UmlProperty *redefinedProperty);
- void addSubsettedProperty(UmlProperty *subsettedProperty);
- void removeSubsettedProperty(UmlProperty *subsettedProperty);
-
- // Slots for owned attributes [ExtensionEnd]
+ // Owned attributes
+ int lower() const;
void setLower(int lower);
+ QUmlStereotype *type() const;
void setType(QUmlStereotype *type);
+
+ // Operations
+ int lowerBound() const;
+
+protected:
+ QUmlStereotype *_type;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExtensionEnd *)
-Q_DECLARE_METATYPE(QList<QUmlExtensionEnd *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExtensionEnd *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExtensionEnd) *)
QT_END_HEADER
diff --git a/src/uml/qumlextensionpoint.cpp b/src/uml/qumlextensionpoint.cpp
index 0e5deb14..d1dea8b1 100644
--- a/src/uml/qumlextensionpoint.cpp
+++ b/src/uml/qumlextensionpoint.cpp
@@ -40,275 +40,58 @@
****************************************************************************/
#include "qumlextensionpoint.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlUseCase>
+#include "private/qumlextensionpointobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlUseCase>
/*!
- \class UmlExtensionPoint
+ \class QUmlExtensionPoint
\inmodule QtUml
\brief An extension point identifies a point in the behavior of a use case where that behavior can be extended by the behavior of some other (extending) use case, as specified by an extend relationship.
*/
-
-QUmlExtensionPoint::QUmlExtensionPoint(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlExtensionPoint::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlExtensionPoint::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlExtensionPoint::owner() const
+QUmlExtensionPoint::QUmlExtensionPoint(bool createQObject) :
+ _useCase(0)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlExtensionPointObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlExtensionPoint::clientDependency() const
+QUmlExtensionPoint::~QUmlExtensionPoint()
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlExtensionPoint::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlExtensionPoint::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlExtensionPoint::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlExtensionPoint::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlExtensionPoint::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlExtensionPoint::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlExtensionPoint::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlExtensionPoint::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ExtensionPoint]
+// OWNED ATTRIBUTES
/*!
References the use case that owns this extension point.
*/
-QUmlUseCase *QUmlExtensionPoint::useCase() const
+QUmlUseCase *
+QUmlExtensionPoint::useCase() const
{
- return reinterpret_cast<QUmlUseCase *>(_useCase);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlExtensionPoint::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtensionPoint::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlExtensionPoint::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlExtensionPoint::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlExtensionPoint::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlExtensionPoint::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlExtensionPoint::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ return _useCase;
}
-/*!
- 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.
- */
-bool QUmlExtensionPoint::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlExtensionPoint::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlExtensionPoint::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlExtensionPoint::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlExtensionPoint::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlExtensionPoint::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlExtensionPoint::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlExtensionPoint::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlExtensionPoint::setUseCase(QUmlUseCase *useCase)
{
- UmlNamedElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlExtensionPoint::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
+ if (_useCase != useCase) {
+ // Adjust subsetted properties
-// SLOTS FOR OWNED ATTRIBUTES [ExtensionPoint]
+ _useCase = useCase;
+ if (useCase->asQObject() && this->asQObject())
+ QObject::connect(useCase->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setUseCase()));
-void QUmlExtensionPoint::setUseCase(QUmlUseCase *useCase)
-{
- UmlExtensionPoint::setUseCase(useCase);
+ // Adjust subsetted properties
+ setNamespace(useCase);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlextensionpoint.h b/src/uml/qumlextensionpoint.h
index ebb989dd..adf190fa 100644
--- a/src/uml/qumlextensionpoint.h
+++ b/src/uml/qumlextensionpoint.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlextensionpoint_p.h"
+#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,105 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
class QUmlUseCase;
-class Q_UML_EXPORT QUmlExtensionPoint : public QObject, public UmlExtensionPoint
+class Q_UML_EXPORT QUmlExtensionPoint : public QUmlRedefinableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ExtensionPoint]
- Q_PROPERTY(QUmlUseCase * useCase READ useCase)
-
public:
- Q_INVOKABLE explicit QUmlExtensionPoint(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ExtensionPoint]
- Q_INVOKABLE QUmlUseCase *useCase() const;
+ explicit QUmlExtensionPoint(bool createQObject = true);
+ virtual ~QUmlExtensionPoint();
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ExtensionPoint]
+ // Owned attributes
+ QUmlUseCase *useCase() const;
void setUseCase(QUmlUseCase *useCase);
+
+protected:
+ QUmlUseCase *_useCase;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlExtensionPoint *)
-Q_DECLARE_METATYPE(QList<QUmlExtensionPoint *> *)
-Q_DECLARE_METATYPE(QSet<QUmlExtensionPoint *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlExtensionPoint) *)
QT_END_HEADER
diff --git a/src/uml/qumlfeature.cpp b/src/uml/qumlfeature.cpp
index 81f3fac7..d43f2a5d 100644
--- a/src/uml/qumlfeature.cpp
+++ b/src/uml/qumlfeature.cpp
@@ -41,281 +41,83 @@
#include "qumlfeature.h"
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlFeature
+ \class QUmlFeature
\inmodule QtUml
\brief A feature declares a behavioral or structural characteristic of instances of classifiers.
*/
-
-QUmlFeature::QUmlFeature(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlFeature::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlFeature::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlFeature::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlFeature::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlFeature::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlFeature::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlFeature::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlFeature::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlFeature::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlFeature::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlFeature::redefinedElement() const
+QUmlFeature::QUmlFeature() :
+ _isStatic(false)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlFeature::redefinitionContext() const
+QUmlFeature::~QUmlFeature()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
}
-// OWNED ATTRIBUTES [Feature]
+// OWNED ATTRIBUTES
/*!
The Classifiers that have this Feature as a feature.
*/
-const QSet<QUmlClassifier *> QUmlFeature::featuringClassifier() const
+const QSet<QUmlClassifier *>
+QUmlFeature::featuringClassifier() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
+ // This is a read-only derived union association end
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlFeature::isStatic() const
-{
- return _isStatic;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlFeature::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFeature::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _featuringClassifier;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlFeature::allNamespaces() const
+void QUmlFeature::addFeaturingClassifier(QUmlClassifier *featuringClassifier)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-only derived union association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlFeature::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (!_featuringClassifier.contains(featuringClassifier)) {
+ _featuringClassifier.insert(featuringClassifier);
+ if (featuringClassifier->asQObject() && this->asQObject())
+ QObject::connect(featuringClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeFeaturingClassifier(QObject *)));
-/*!
- 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.
- */
-bool QUmlFeature::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust opposite properties
+ if (featuringClassifier) {
+ featuringClassifier->addFeature(this);
+ }
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlFeature::separator() const
+void QUmlFeature::removeFeaturingClassifier(QUmlClassifier *featuringClassifier)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-only derived union association end
-// OPERATIONS [RedefinableElement]
+ if (_featuringClassifier.contains(featuringClassifier)) {
+ _featuringClassifier.remove(featuringClassifier);
-/*!
- 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.
- */
-bool QUmlFeature::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust opposite properties
+ if (featuringClassifier) {
+ featuringClassifier->removeFeature(this);
+ }
+ }
}
/*!
- 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.
+ Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
*/
-bool QUmlFeature::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlFeature::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlFeature::removeOwnedComment(UmlComment *ownedComment)
+bool
+QUmlFeature::isStatic() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlFeature::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlFeature::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write property
-void QUmlFeature::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlFeature::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlFeature::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlFeature::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return _isStatic;
}
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
void QUmlFeature::setStatic(bool isStatic)
{
- UmlFeature::setStatic(isStatic);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isStatic != isStatic) {
+ _isStatic = isStatic;
+ }
+}
diff --git a/src/uml/qumlfeature.h b/src/uml/qumlfeature.h
index 0fff9d68..b98c9947 100644
--- a/src/uml/qumlfeature.h
+++ b/src/uml/qumlfeature.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlfeature_p.h"
+#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,105 +53,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlFeature : public QObject, public UmlFeature
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
+class Q_UML_EXPORT QUmlFeature : public QUmlRedefinableElement
+{
public:
- Q_DECL_HIDDEN explicit QUmlFeature(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
+ virtual ~QUmlFeature();
+
+ // Owned attributes
+ const QSet<QUmlClassifier *> featuringClassifier() const;
+ Q_DECL_HIDDEN void addFeaturingClassifier(QUmlClassifier *featuringClassifier);
+ Q_DECL_HIDDEN void removeFeaturingClassifier(QUmlClassifier *featuringClassifier);
+ bool isStatic() const;
void setStatic(bool isStatic);
+
+protected:
+ explicit QUmlFeature();
+
+ QSet<QUmlClassifier *> _featuringClassifier;
+ bool _isStatic;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlFeature *)
-Q_DECLARE_METATYPE(QList<QUmlFeature *> *)
-Q_DECLARE_METATYPE(QSet<QUmlFeature *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlFeature) *)
QT_END_HEADER
diff --git a/src/uml/qumlfinalnode.cpp b/src/uml/qumlfinalnode.cpp
index cabb036e..da781a70 100644
--- a/src/uml/qumlfinalnode.cpp
+++ b/src/uml/qumlfinalnode.cpp
@@ -40,392 +40,18 @@
****************************************************************************/
#include "qumlfinalnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlFinalNode
+ \class QUmlFinalNode
\inmodule QtUml
\brief A final node is an abstract control node at which a flow in an activity stops.
*/
-
-QUmlFinalNode::QUmlFinalNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlFinalNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlFinalNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlFinalNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlFinalNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlFinalNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlFinalNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlFinalNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlFinalNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlFinalNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlFinalNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlFinalNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlFinalNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlFinalNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlFinalNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlFinalNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlFinalNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlFinalNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlFinalNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlFinalNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlFinalNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlFinalNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFinalNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlFinalNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlFinalNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFinalNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlFinalNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlFinalNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlFinalNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlFinalNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlFinalNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlFinalNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlFinalNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlFinalNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlFinalNode::setNameExpression(QUmlStringExpression *nameExpression)
+QUmlFinalNode::QUmlFinalNode()
{
- UmlNamedElement::setNameExpression(nameExpression);
}
-void QUmlFinalNode::setVisibility(QtUml::VisibilityKind visibility)
+QUmlFinalNode::~QUmlFinalNode()
{
- UmlNamedElement::setVisibility(visibility);
}
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlFinalNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlFinalNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlFinalNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlFinalNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlFinalNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlFinalNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlFinalNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlFinalNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlFinalNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlFinalNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlFinalNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlFinalNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlFinalNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlfinalnode.h b/src/uml/qumlfinalnode.h
index 2ae179ca..e71466eb 100644
--- a/src/uml/qumlfinalnode.h
+++ b/src/uml/qumlfinalnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlfinalnode_p.h"
+#include <QtUml/QUmlControlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlFinalNode : public QObject, public UmlFinalNode
+class Q_UML_EXPORT QUmlFinalNode : public QUmlControlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_DECL_HIDDEN explicit QUmlFinalNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ virtual ~QUmlFinalNode();
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
+protected:
+ explicit QUmlFinalNode();
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlFinalNode *)
-Q_DECLARE_METATYPE(QList<QUmlFinalNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlFinalNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlFinalNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlfinalstate.cpp b/src/uml/qumlfinalstate.cpp
index e1157ae4..e9ee211f 100644
--- a/src/uml/qumlfinalstate.cpp
+++ b/src/uml/qumlfinalstate.cpp
@@ -40,627 +40,27 @@
****************************************************************************/
#include "qumlfinalstate.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectionPointReference>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlPseudostate>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRegion>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTransition>
-#include <QtUml/QUmlTrigger>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlfinalstateobject_p.h"
/*!
- \class UmlFinalState
+ \class QUmlFinalState
\inmodule QtUml
\brief 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.
*/
-
-QUmlFinalState::QUmlFinalState(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlFinalState::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlFinalState::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlFinalState::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlFinalState::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlFinalState::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlFinalState::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlFinalState::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlFinalState::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlFinalState::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlFinalState::elementImport() const
+QUmlFinalState::QUmlFinalState(bool createQObject) :
+ QUmlState(false)
{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ if (createQObject)
+ _qObject = new QUmlFinalStateObject(this);
}
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlFinalState::importedMember() const
+QUmlFinalState::~QUmlFinalState()
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlFinalState::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlFinalState::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlFinalState::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlFinalState::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlFinalState::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlFinalState::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-// OWNED ATTRIBUTES [Vertex]
-
-/*!
- The region that contains this vertex.
- */
-QUmlRegion *QUmlFinalState::container() const
-{
- return reinterpret_cast<QUmlRegion *>(_container);
-}
-
-/*!
- Specifies the transitions entering this vertex.
- */
-const QSet<QUmlTransition *> QUmlFinalState::incoming() const
-{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::incoming())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
-
-/*!
- Specifies the transitions departing from this vertex.
- */
-const QSet<QUmlTransition *> QUmlFinalState::outgoing() const
-{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::outgoing())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [State]
-
-/*!
- The entry and exit connection points used in conjunction with this (submachine) state, i.e. as targets and sources, respectively, in the region with the submachine state. A connection point reference references the corresponding definition of a connection point pseudostate in the statemachine referenced by the submachinestate.
- */
-const QSet<QUmlConnectionPointReference *> QUmlFinalState::connection() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectionPointReference *> *>(&_connection));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlPseudostate *> QUmlFinalState::connectionPoint() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_connectionPoint));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlTrigger *> QUmlFinalState::deferrableTrigger() const
-{
- return *(reinterpret_cast<const QSet<QUmlTrigger *> *>(&_deferrableTrigger));
-}
-
-/*!
- 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.
- */
-QUmlBehavior *QUmlFinalState::doActivity() const
-{
- return reinterpret_cast<QUmlBehavior *>(_doActivity);
-}
-
-/*!
- 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.
- */
-QUmlBehavior *QUmlFinalState::entry() const
-{
- return reinterpret_cast<QUmlBehavior *>(_entry);
-}
-
-/*!
- 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.
- */
-QUmlBehavior *QUmlFinalState::exit() const
-{
- return reinterpret_cast<QUmlBehavior *>(_exit);
-}
-
-/*!
- A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region.
- */
-bool QUmlFinalState::isComposite() const
-{
- return UmlState::isComposite();
-}
-
-/*!
- A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions.
- */
-bool QUmlFinalState::isOrthogonal() const
-{
- return UmlState::isOrthogonal();
-}
-
-/*!
- 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.
- */
-bool QUmlFinalState::isSimple() const
-{
- return UmlState::isSimple();
-}
-
-/*!
- A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine).
- */
-bool QUmlFinalState::isSubmachineState() const
-{
- return UmlState::isSubmachineState();
-}
-
-/*!
- The state of which this state is a redefinition.
- */
-QUmlState *QUmlFinalState::redefinedState() const
-{
- return reinterpret_cast<QUmlState *>(_redefinedState);
-}
-
-/*!
- References the classifier in which context this element may be redefined.
- */
-QUmlClassifier *QUmlFinalState::redefinitionContext() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlState::redefinitionContext());
-}
-
-/*!
- The regions owned directly by the state.
- */
-const QSet<QUmlRegion *> QUmlFinalState::region() const
-{
- return *(reinterpret_cast<const QSet<QUmlRegion *> *>(&_region));
-}
-
-/*!
- 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.
- */
-QUmlConstraint *QUmlFinalState::stateInvariant() const
-{
- return reinterpret_cast<QUmlConstraint *>(_stateInvariant);
-}
-
-/*!
- The state machine that is to be inserted in place of the (submachine) state.
- */
-QUmlStateMachine *QUmlFinalState::submachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(_submachine);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlFinalState::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFinalState::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlFinalState::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlFinalState::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFinalState::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlFinalState::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlFinalState::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlFinalState::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlFinalState::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlFinalState::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [RedefinableElement]
-// OPERATIONS [Vertex]
-// OPERATIONS [State]
-
-/*!
- The query containingStateMachine() returns the state machine that contains the state either directly or transitively.
- */
-QUmlStateMachine *QUmlFinalState::containingStateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(UmlState::containingStateMachine());
-}
-
-/*!
- 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.
- */
-bool QUmlFinalState::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlState::isConsistentWith(redefinee);
-}
-
-/*!
- 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.
- */
-bool QUmlFinalState::isRedefinitionContextValid(QUmlState *redefined) const
-{
- return UmlState::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlFinalState::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlFinalState::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlFinalState::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlFinalState::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlFinalState::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlFinalState::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlFinalState::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlFinalState::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlFinalState::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlFinalState::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlFinalState::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlFinalState::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlFinalState::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlFinalState::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Vertex]
-
-void QUmlFinalState::setContainer(QUmlRegion *container)
-{
- UmlVertex::setContainer(container);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [State]
-
-void QUmlFinalState::addConnection(UmlConnectionPointReference *connection)
-{
- UmlState::addConnection(connection);
-}
-
-void QUmlFinalState::removeConnection(UmlConnectionPointReference *connection)
-{
- UmlState::removeConnection(connection);
-}
-
-void QUmlFinalState::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlState::addConnectionPoint(connectionPoint);
-}
-
-void QUmlFinalState::removeConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlState::removeConnectionPoint(connectionPoint);
-}
-
-void QUmlFinalState::addDeferrableTrigger(UmlTrigger *deferrableTrigger)
-{
- UmlState::addDeferrableTrigger(deferrableTrigger);
-}
-
-void QUmlFinalState::removeDeferrableTrigger(UmlTrigger *deferrableTrigger)
-{
- UmlState::removeDeferrableTrigger(deferrableTrigger);
-}
-
-void QUmlFinalState::setDoActivity(QUmlBehavior *doActivity)
-{
- UmlState::setDoActivity(doActivity);
-}
-
-void QUmlFinalState::setEntry(QUmlBehavior *entry)
-{
- UmlState::setEntry(entry);
-}
-
-void QUmlFinalState::setExit(QUmlBehavior *exit)
-{
- UmlState::setExit(exit);
-}
-
-void QUmlFinalState::setRedefinedState(QUmlState *redefinedState)
-{
- UmlState::setRedefinedState(redefinedState);
-}
-
-void QUmlFinalState::addRegion(UmlRegion *region)
-{
- UmlState::addRegion(region);
-}
-
-void QUmlFinalState::removeRegion(UmlRegion *region)
-{
- UmlState::removeRegion(region);
-}
-
-void QUmlFinalState::setStateInvariant(QUmlConstraint *stateInvariant)
-{
- UmlState::setStateInvariant(stateInvariant);
-}
-
-void QUmlFinalState::setSubmachine(QUmlStateMachine *submachine)
-{
- UmlState::setSubmachine(submachine);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlfinalstate.h b/src/uml/qumlfinalstate.h
index 25c0ac8a..9eb5c1a2 100644
--- a/src/uml/qumlfinalstate.h
+++ b/src/uml/qumlfinalstate.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlfinalstate_p.h"
+#include <QtUml/QUmlState>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,203 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConnectionPointReference;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlPseudostate;
-class QUmlRedefinableElement;
-class QUmlRegion;
-class QUmlState;
-class QUmlStateMachine;
-class QUmlStringExpression;
-class QUmlTransition;
-class QUmlTrigger;
-
-class Q_UML_EXPORT QUmlFinalState : public QObject, public UmlFinalState
+class Q_UML_EXPORT QUmlFinalState : public QUmlState
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
-
- // Properties [Vertex]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QSet<QUmlTransition *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlTransition *> outgoing READ outgoing)
-
- // Properties [State]
- Q_PROPERTY(QSet<QUmlConnectionPointReference *> connection READ connection)
- Q_PROPERTY(QSet<QUmlPseudostate *> connectionPoint READ connectionPoint)
- Q_PROPERTY(QSet<QUmlTrigger *> deferrableTrigger READ deferrableTrigger)
- Q_PROPERTY(QUmlBehavior * doActivity READ doActivity)
- Q_PROPERTY(QUmlBehavior * entry READ entry)
- Q_PROPERTY(QUmlBehavior * exit READ exit)
- Q_PROPERTY(bool isComposite READ isComposite)
- Q_PROPERTY(bool isOrthogonal READ isOrthogonal)
- Q_PROPERTY(bool isSimple READ isSimple)
- Q_PROPERTY(bool isSubmachineState READ isSubmachineState)
- Q_PROPERTY(QUmlState * redefinedState READ redefinedState)
- Q_PROPERTY(QUmlClassifier * redefinitionContext READ redefinitionContext)
- Q_PROPERTY(QSet<QUmlRegion *> region READ region)
- Q_PROPERTY(QUmlConstraint * stateInvariant READ stateInvariant)
- Q_PROPERTY(QUmlStateMachine * submachine READ submachine)
-
public:
- Q_INVOKABLE explicit QUmlFinalState(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
-
- // Owned attributes [Vertex]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE const QSet<QUmlTransition *> incoming() const;
- Q_INVOKABLE const QSet<QUmlTransition *> outgoing() const;
-
- // Owned attributes [State]
- Q_INVOKABLE const QSet<QUmlConnectionPointReference *> connection() const;
- Q_INVOKABLE const QSet<QUmlPseudostate *> connectionPoint() const;
- Q_INVOKABLE const QSet<QUmlTrigger *> deferrableTrigger() const;
- Q_INVOKABLE QUmlBehavior *doActivity() const;
- Q_INVOKABLE QUmlBehavior *entry() const;
- Q_INVOKABLE QUmlBehavior *exit() const;
- Q_INVOKABLE bool isComposite() const;
- Q_INVOKABLE bool isOrthogonal() const;
- Q_INVOKABLE bool isSimple() const;
- Q_INVOKABLE bool isSubmachineState() const;
- Q_INVOKABLE QUmlState *redefinedState() const;
- Q_INVOKABLE QUmlClassifier *redefinitionContext() const;
- Q_INVOKABLE const QSet<QUmlRegion *> region() const;
- Q_INVOKABLE QUmlConstraint *stateInvariant() const;
- Q_INVOKABLE QUmlStateMachine *submachine() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [RedefinableElement]
-
- // Operations [Vertex]
-
- // Operations [State]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlState *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
+ explicit QUmlFinalState(bool createQObject = true);
+ virtual ~QUmlFinalState();
- // Slots for owned attributes [Vertex]
- void setContainer(QUmlRegion *container);
- // Slots for owned attributes [State]
- void addConnection(UmlConnectionPointReference *connection);
- void removeConnection(UmlConnectionPointReference *connection);
- void addConnectionPoint(UmlPseudostate *connectionPoint);
- void removeConnectionPoint(UmlPseudostate *connectionPoint);
- void addDeferrableTrigger(UmlTrigger *deferrableTrigger);
- void removeDeferrableTrigger(UmlTrigger *deferrableTrigger);
- void setDoActivity(QUmlBehavior *doActivity);
- void setEntry(QUmlBehavior *entry);
- void setExit(QUmlBehavior *exit);
- void setRedefinedState(QUmlState *redefinedState);
- void addRegion(UmlRegion *region);
- void removeRegion(UmlRegion *region);
- void setStateInvariant(QUmlConstraint *stateInvariant);
- void setSubmachine(QUmlStateMachine *submachine);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlFinalState *)
-Q_DECLARE_METATYPE(QList<QUmlFinalState *> *)
-Q_DECLARE_METATYPE(QSet<QUmlFinalState *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlFinalState) *)
QT_END_HEADER
diff --git a/src/uml/qumlflowfinalnode.cpp b/src/uml/qumlflowfinalnode.cpp
index 20345c61..11967912 100644
--- a/src/uml/qumlflowfinalnode.cpp
+++ b/src/uml/qumlflowfinalnode.cpp
@@ -40,392 +40,26 @@
****************************************************************************/
#include "qumlflowfinalnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlflowfinalnodeobject_p.h"
/*!
- \class UmlFlowFinalNode
+ \class QUmlFlowFinalNode
\inmodule QtUml
\brief A flow final node is a final node that terminates a flow.
*/
-
-QUmlFlowFinalNode::QUmlFlowFinalNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlFlowFinalNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlFlowFinalNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlFlowFinalNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlFlowFinalNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlFlowFinalNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlFlowFinalNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlFlowFinalNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlFlowFinalNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlFlowFinalNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlFlowFinalNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlFlowFinalNode::redefinedElement() const
+QUmlFlowFinalNode::QUmlFlowFinalNode(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (createQObject)
+ _qObject = new QUmlFlowFinalNodeObject(this);
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlFlowFinalNode::redefinitionContext() const
+QUmlFlowFinalNode::~QUmlFlowFinalNode()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlFlowFinalNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlFlowFinalNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlFlowFinalNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlFlowFinalNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlFlowFinalNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlFlowFinalNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlFlowFinalNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlFlowFinalNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlFlowFinalNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFlowFinalNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlFlowFinalNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlFlowFinalNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFlowFinalNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlFlowFinalNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlFlowFinalNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlFlowFinalNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlFlowFinalNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlFlowFinalNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlFlowFinalNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlFlowFinalNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlFlowFinalNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlFlowFinalNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlFlowFinalNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlFlowFinalNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlFlowFinalNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlFlowFinalNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlFlowFinalNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlFlowFinalNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlFlowFinalNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlFlowFinalNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlFlowFinalNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlFlowFinalNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlFlowFinalNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlFlowFinalNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlFlowFinalNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlFlowFinalNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlflowfinalnode.h b/src/uml/qumlflowfinalnode.h
index a3a9dbbc..8d9c9e96 100644
--- a/src/uml/qumlflowfinalnode.h
+++ b/src/uml/qumlflowfinalnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlflowfinalnode_p.h"
+#include <QtUml/QUmlFinalNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlFlowFinalNode : public QObject, public UmlFlowFinalNode
+class Q_UML_EXPORT QUmlFlowFinalNode : public QUmlFinalNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_INVOKABLE explicit QUmlFlowFinalNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlFlowFinalNode(bool createQObject = true);
+ virtual ~QUmlFlowFinalNode();
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlFlowFinalNode *)
-Q_DECLARE_METATYPE(QList<QUmlFlowFinalNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlFlowFinalNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlFlowFinalNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlforknode.cpp b/src/uml/qumlforknode.cpp
index 19e29d06..87627bdb 100644
--- a/src/uml/qumlforknode.cpp
+++ b/src/uml/qumlforknode.cpp
@@ -40,392 +40,26 @@
****************************************************************************/
#include "qumlforknode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlforknodeobject_p.h"
/*!
- \class UmlForkNode
+ \class QUmlForkNode
\inmodule QtUml
\brief A fork node is a control node that splits a flow into multiple concurrent flows.
*/
-
-QUmlForkNode::QUmlForkNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlForkNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlForkNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlForkNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlForkNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlForkNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlForkNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlForkNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlForkNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlForkNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlForkNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlForkNode::redefinedElement() const
+QUmlForkNode::QUmlForkNode(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (createQObject)
+ _qObject = new QUmlForkNodeObject(this);
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlForkNode::redefinitionContext() const
+QUmlForkNode::~QUmlForkNode()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlForkNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlForkNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlForkNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlForkNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlForkNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlForkNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlForkNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlForkNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlForkNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlForkNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlForkNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlForkNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlForkNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlForkNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlForkNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlForkNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlForkNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlForkNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlForkNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlForkNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlForkNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlForkNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlForkNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlForkNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlForkNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlForkNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlForkNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlForkNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlForkNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlForkNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlForkNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlForkNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlForkNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlForkNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlForkNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlForkNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlforknode.h b/src/uml/qumlforknode.h
index ee4c9448..94a50a09 100644
--- a/src/uml/qumlforknode.h
+++ b/src/uml/qumlforknode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlforknode_p.h"
+#include <QtUml/QUmlControlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlForkNode : public QObject, public UmlForkNode
+class Q_UML_EXPORT QUmlForkNode : public QUmlControlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_INVOKABLE explicit QUmlForkNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlForkNode(bool createQObject = true);
+ virtual ~QUmlForkNode();
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlForkNode *)
-Q_DECLARE_METATYPE(QList<QUmlForkNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlForkNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlForkNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlfunctionbehavior.cpp b/src/uml/qumlfunctionbehavior.cpp
index 2e08a0c6..10ef995b 100644
--- a/src/uml/qumlfunctionbehavior.cpp
+++ b/src/uml/qumlfunctionbehavior.cpp
@@ -40,1212 +40,27 @@
****************************************************************************/
#include "qumlfunctionbehavior.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlfunctionbehaviorobject_p.h"
/*!
- \class UmlFunctionBehavior
+ \class QUmlFunctionBehavior
\inmodule QtUml
\brief A function behavior is an opaque behavior that does not access or modify any objects or other external data.
*/
-
-QUmlFunctionBehavior::QUmlFunctionBehavior(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlFunctionBehavior::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlFunctionBehavior::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlFunctionBehavior::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlFunctionBehavior::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlFunctionBehavior::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlFunctionBehavior::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlFunctionBehavior::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlFunctionBehavior::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlFunctionBehavior::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlFunctionBehavior::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlFunctionBehavior::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlFunctionBehavior::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlFunctionBehavior::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlFunctionBehavior::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlFunctionBehavior::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlFunctionBehavior::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlFunctionBehavior::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlFunctionBehavior::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlFunctionBehavior::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlFunctionBehavior::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlFunctionBehavior::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlFunctionBehavior::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlFunctionBehavior::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlFunctionBehavior::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlFunctionBehavior::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlFunctionBehavior::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlFunctionBehavior::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlFunctionBehavior::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlFunctionBehavior::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlFunctionBehavior::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlFunctionBehavior::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlFunctionBehavior::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlFunctionBehavior::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlFunctionBehavior::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlFunctionBehavior::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlFunctionBehavior::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlFunctionBehavior::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlFunctionBehavior::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlFunctionBehavior::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlFunctionBehavior::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlFunctionBehavior::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlFunctionBehavior::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlFunctionBehavior::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlFunctionBehavior::isAbstract() const
+QUmlFunctionBehavior::QUmlFunctionBehavior(bool createQObject) :
+ QUmlOpaqueBehavior(false)
{
- return _isAbstract;
+ if (createQObject)
+ _qObject = new QUmlFunctionBehaviorObject(this);
}
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlFunctionBehavior::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlFunctionBehavior::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlFunctionBehavior::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlFunctionBehavior::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlFunctionBehavior::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlFunctionBehavior::context() const
-{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
-
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlFunctionBehavior::isReentrant() const
-{
- return _isReentrant;
-}
-
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlFunctionBehavior::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
-
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlFunctionBehavior::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
-
-/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
- */
-const QSet<QUmlConstraint *> QUmlFunctionBehavior::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
-
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlFunctionBehavior::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlBehavior *> QUmlFunctionBehavior::redefinedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_redefinedBehavior));
-}
-
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlFunctionBehavior::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
-}
-
-// OWNED ATTRIBUTES [OpaqueBehavior]
-
-/*!
- Specifies the behavior in one or more languages.
- */
-const QList<QString> QUmlFunctionBehavior::body() const
-{
- return *(reinterpret_cast<const QList<QString> *>(&_body));
-}
-
-/*!
- Languages the body strings use in the same order as the body strings.
- */
-const QList<QString> QUmlFunctionBehavior::language() const
-{
- return *(reinterpret_cast<const QList<QString> *>(&_language));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlFunctionBehavior::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlFunctionBehavior::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlFunctionBehavior::allOwningPackages() const
+QUmlFunctionBehavior::~QUmlFunctionBehavior()
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlFunctionBehavior::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlFunctionBehavior::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlFunctionBehavior::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlFunctionBehavior::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlFunctionBehavior::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlFunctionBehavior::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlFunctionBehavior::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlFunctionBehavior::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlFunctionBehavior::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlFunctionBehavior::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlFunctionBehavior::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlFunctionBehavior::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlFunctionBehavior::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlFunctionBehavior::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlFunctionBehavior::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlFunctionBehavior::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlFunctionBehavior::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlFunctionBehavior::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlFunctionBehavior::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlFunctionBehavior::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlFunctionBehavior::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlFunctionBehavior::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlFunctionBehavior::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlFunctionBehavior::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlFunctionBehavior::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlFunctionBehavior::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlFunctionBehavior::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlFunctionBehavior::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlFunctionBehavior::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlFunctionBehavior::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlFunctionBehavior::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlFunctionBehavior::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlFunctionBehavior::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlFunctionBehavior::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlFunctionBehavior::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlFunctionBehavior::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlFunctionBehavior::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlFunctionBehavior::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlFunctionBehavior::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlFunctionBehavior::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlFunctionBehavior::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlFunctionBehavior::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlFunctionBehavior::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlFunctionBehavior::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlFunctionBehavior::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlFunctionBehavior::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlFunctionBehavior::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlFunctionBehavior::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlFunctionBehavior::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlFunctionBehavior::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlFunctionBehavior::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlFunctionBehavior::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlFunctionBehavior::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlFunctionBehavior::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlFunctionBehavior::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlFunctionBehavior::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlFunctionBehavior::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlFunctionBehavior::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlFunctionBehavior::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlFunctionBehavior::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlFunctionBehavior::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlFunctionBehavior::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlFunctionBehavior::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlFunctionBehavior::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlFunctionBehavior::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlFunctionBehavior::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlFunctionBehavior::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlFunctionBehavior::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlFunctionBehavior::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlFunctionBehavior::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlFunctionBehavior::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlFunctionBehavior::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlFunctionBehavior::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlFunctionBehavior::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlFunctionBehavior::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlFunctionBehavior::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlFunctionBehavior::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlFunctionBehavior::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlFunctionBehavior::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlFunctionBehavior::addRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::addRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlFunctionBehavior::removeRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::removeRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlFunctionBehavior::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OpaqueBehavior]
-
-void QUmlFunctionBehavior::addBody(QString body)
-{
- UmlOpaqueBehavior::addBody(body);
-}
-
-void QUmlFunctionBehavior::removeBody(QString body)
-{
- UmlOpaqueBehavior::removeBody(body);
-}
-
-void QUmlFunctionBehavior::addLanguage(QString language)
-{
- UmlOpaqueBehavior::addLanguage(language);
-}
-
-void QUmlFunctionBehavior::removeLanguage(QString language)
-{
- UmlOpaqueBehavior::removeLanguage(language);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlfunctionbehavior.h b/src/uml/qumlfunctionbehavior.h
index 1ecd6e38..fce9a079 100644
--- a/src/uml/qumlfunctionbehavior.h
+++ b/src/uml/qumlfunctionbehavior.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlfunctionbehavior_p.h"
+#include <QtUml/QUmlOpaqueBehavior>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,385 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlBehavioralFeature;
-class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlFunctionBehavior : public QObject, public UmlFunctionBehavior
+class Q_UML_EXPORT QUmlFunctionBehavior : public QUmlOpaqueBehavior
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QSet<QUmlBehavior *> redefinedBehavior READ redefinedBehavior)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
- // Properties [OpaqueBehavior]
- Q_PROPERTY(QList<QString> body READ body)
- Q_PROPERTY(QList<QString> language READ language)
-
public:
- Q_INVOKABLE explicit QUmlFunctionBehavior(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> redefinedBehavior() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Owned attributes [OpaqueBehavior]
- Q_INVOKABLE const QList<QString> body() const;
- Q_INVOKABLE const QList<QString> language() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ explicit QUmlFunctionBehavior(bool createQObject = true);
+ virtual ~QUmlFunctionBehavior();
- // Slots for owned attributes [Behavior]
- void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void addRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void removeRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void setSpecification(QUmlBehavioralFeature *specification);
- // Slots for owned attributes [OpaqueBehavior]
- void addBody(QString body);
- void removeBody(QString body);
- void addLanguage(QString language);
- void removeLanguage(QString language);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlFunctionBehavior *)
-Q_DECLARE_METATYPE(QList<QUmlFunctionBehavior *> *)
-Q_DECLARE_METATYPE(QSet<QUmlFunctionBehavior *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlFunctionBehavior) *)
QT_END_HEADER
diff --git a/src/uml/qumlgate.cpp b/src/uml/qumlgate.cpp
index 4531bfa2..94e38d76 100644
--- a/src/uml/qumlgate.cpp
+++ b/src/uml/qumlgate.cpp
@@ -40,222 +40,26 @@
****************************************************************************/
#include "qumlgate.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlMessage>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlgateobject_p.h"
/*!
- \class UmlGate
+ \class QUmlGate
\inmodule QtUml
\brief A gate is a connection point for relating a message outside an interaction fragment with a message inside the interaction fragment.
*/
-
-QUmlGate::QUmlGate(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlGate::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlGate::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlGate::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlGate::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlGate::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlGate::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlGate::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlGate::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlGate::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [MessageEnd]
-
-/*!
- References a Message.
- */
-QUmlMessage *QUmlGate::message() const
-{
- return reinterpret_cast<QUmlMessage *>(_message);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlGate::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlGate::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlGate::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlGate::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlGate::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlGate::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlGate::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlGate::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlGate::addClientDependency(UmlDependency *clientDependency)
+QUmlGate::QUmlGate(bool createQObject)
{
- UmlNamedElement::addClientDependency(clientDependency);
+ if (createQObject)
+ _qObject = new QUmlGateObject(this);
}
-void QUmlGate::removeClientDependency(UmlDependency *clientDependency)
+QUmlGate::~QUmlGate()
{
- UmlNamedElement::removeClientDependency(clientDependency);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-void QUmlGate::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlGate::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlGate::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
-
-void QUmlGate::setMessage(QUmlMessage *message)
-{
- UmlMessageEnd::setMessage(message);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlgate.h b/src/uml/qumlgate.h
index 2fe3b74b..51ce07e4 100644
--- a/src/uml/qumlgate.h
+++ b/src/uml/qumlgate.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlgate_p.h"
+#include <QtUml/QUmlMessageEnd>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,86 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlMessage;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlGate : public QObject, public UmlGate
+class Q_UML_EXPORT QUmlGate : public QUmlMessageEnd
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [MessageEnd]
- Q_PROPERTY(QUmlMessage * message READ message)
-
public:
- Q_INVOKABLE explicit QUmlGate(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [MessageEnd]
- Q_INVOKABLE QUmlMessage *message() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ explicit QUmlGate(bool createQObject = true);
+ virtual ~QUmlGate();
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
- // Slots for owned attributes [MessageEnd]
- void setMessage(QUmlMessage *message);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlGate *)
-Q_DECLARE_METATYPE(QList<QUmlGate *> *)
-Q_DECLARE_METATYPE(QSet<QUmlGate *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlGate) *)
QT_END_HEADER
diff --git a/src/uml/qumlgeneralization.cpp b/src/uml/qumlgeneralization.cpp
index cda73f1e..0674bfd0 100644
--- a/src/uml/qumlgeneralization.cpp
+++ b/src/uml/qumlgeneralization.cpp
@@ -40,177 +40,156 @@
****************************************************************************/
#include "qumlgeneralization.h"
+#include "private/qumlgeneralizationobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlGeneralizationSet>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlGeneralization
+ \class QUmlGeneralization
\inmodule QtUml
\brief A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.
*/
-
-QUmlGeneralization::QUmlGeneralization(QObject *parent) :
- QObject(parent)
+QUmlGeneralization::QUmlGeneralization(bool createQObject) :
+ _general(0),
+ _isSubstitutable(true),
+ _specific(0)
{
+ if (createQObject)
+ _qObject = new QUmlGeneralizationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlGeneralization::ownedComment() const
+QUmlGeneralization::~QUmlGeneralization()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ References the general classifier in the Generalization relationship.
*/
-const QSet<QUmlElement *> QUmlGeneralization::ownedElement() const
+QUmlClassifier *
+QUmlGeneralization::general() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _general;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlGeneralization::owner() const
+void QUmlGeneralization::setGeneral(QUmlClassifier *general)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Relationship]
+ if (_general != general) {
+ // Adjust subsetted properties
+ removeTarget(_general);
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlGeneralization::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
+ _general = general;
+ if (general->asQObject() && this->asQObject())
+ QObject::connect(general->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setGeneral()));
-// OWNED ATTRIBUTES [DirectedRelationship]
+ // Adjust subsetted properties
+ if (general) {
+ addTarget(general);
+ }
+ }
+}
/*!
- Specifies the sources of the DirectedRelationship.
+ Designates a set in which instances of Generalization is considered members.
*/
-const QSet<QUmlElement *> QUmlGeneralization::source() const
+const QSet<QUmlGeneralizationSet *>
+QUmlGeneralization::generalizationSet() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
+ // This is a read-write association end
+
+ return _generalizationSet;
}
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlGeneralization::target() const
+void QUmlGeneralization::addGeneralizationSet(QUmlGeneralizationSet *generalizationSet)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Generalization]
+ if (!_generalizationSet.contains(generalizationSet)) {
+ _generalizationSet.insert(generalizationSet);
+ if (generalizationSet->asQObject() && this->asQObject())
+ QObject::connect(generalizationSet->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeGeneralizationSet(QObject *)));
-/*!
- References the general classifier in the Generalization relationship.
- */
-QUmlClassifier *QUmlGeneralization::general() const
-{
- return reinterpret_cast<QUmlClassifier *>(_general);
+ // Adjust opposite properties
+ if (generalizationSet) {
+ generalizationSet->addGeneralization(this);
+ }
+ }
}
-/*!
- Designates a set in which instances of Generalization is considered members.
- */
-const QSet<QUmlGeneralizationSet *> QUmlGeneralization::generalizationSet() const
+void QUmlGeneralization::removeGeneralizationSet(QUmlGeneralizationSet *generalizationSet)
{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_generalizationSet));
+ // This is a read-write association end
+
+ if (_generalizationSet.contains(generalizationSet)) {
+ _generalizationSet.remove(generalizationSet);
+
+ // Adjust opposite properties
+ if (generalizationSet) {
+ generalizationSet->removeGeneralization(this);
+ }
+ }
}
/*!
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.
*/
-bool QUmlGeneralization::isSubstitutable() const
+bool
+QUmlGeneralization::isSubstitutable() const
{
+ // This is a read-write property
+
return _isSubstitutable;
}
-/*!
- References the specializing classifier in the Generalization relationship.
- */
-QUmlClassifier *QUmlGeneralization::specific() const
+void QUmlGeneralization::setSubstitutable(bool isSubstitutable)
{
- return reinterpret_cast<QUmlClassifier *>(_specific);
-}
+ // This is a read-write property
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlGeneralization::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_isSubstitutable != isSubstitutable) {
+ _isSubstitutable = isSubstitutable;
+ }
}
/*!
- 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.
+ References the specializing classifier in the Generalization relationship.
*/
-bool QUmlGeneralization::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlGeneralization::addOwnedComment(UmlComment *ownedComment)
+QUmlClassifier *
+QUmlGeneralization::specific() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlGeneralization::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _specific;
}
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Generalization]
-
-void QUmlGeneralization::setGeneral(QUmlClassifier *general)
-{
- UmlGeneralization::setGeneral(general);
-}
-
-void QUmlGeneralization::addGeneralizationSet(UmlGeneralizationSet *generalizationSet)
+void QUmlGeneralization::setSpecific(QUmlClassifier *specific)
{
- UmlGeneralization::addGeneralizationSet(generalizationSet);
-}
+ // This is a read-write association end
-void QUmlGeneralization::removeGeneralizationSet(UmlGeneralizationSet *generalizationSet)
-{
- UmlGeneralization::removeGeneralizationSet(generalizationSet);
-}
+ if (_specific != specific) {
+ // Adjust subsetted properties
+ removeSource(_specific);
-void QUmlGeneralization::setSubstitutable(bool isSubstitutable)
-{
- UmlGeneralization::setSubstitutable(isSubstitutable);
-}
+ _specific = specific;
+ if (specific->asQObject() && this->asQObject())
+ QObject::connect(specific->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecific()));
-void QUmlGeneralization::setSpecific(QUmlClassifier *specific)
-{
- UmlGeneralization::setSpecific(specific);
+ // Adjust subsetted properties
+ setOwner(specific);
+ if (specific) {
+ addSource(specific);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlgeneralization.h b/src/uml/qumlgeneralization.h
index 04463a52..1fe36aee 100644
--- a/src/uml/qumlgeneralization.h
+++ b/src/uml/qumlgeneralization.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlgeneralization_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
QT_BEGIN_HEADER
@@ -53,80 +53,35 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlElement;
class QUmlGeneralizationSet;
-class Q_UML_EXPORT QUmlGeneralization : public QObject, public UmlGeneralization
+class Q_UML_EXPORT QUmlGeneralization : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Generalization]
- Q_PROPERTY(QUmlClassifier * general READ general)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> generalizationSet READ generalizationSet)
- Q_PROPERTY(bool isSubstitutable READ isSubstitutable)
- Q_PROPERTY(QUmlClassifier * specific READ specific)
-
public:
- Q_INVOKABLE explicit QUmlGeneralization(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
+ explicit QUmlGeneralization(bool createQObject = true);
+ virtual ~QUmlGeneralization();
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [Generalization]
- Q_INVOKABLE QUmlClassifier *general() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> generalizationSet() const;
- Q_INVOKABLE bool isSubstitutable() const;
- Q_INVOKABLE QUmlClassifier *specific() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Generalization]
+ // Owned attributes
+ QUmlClassifier *general() const;
void setGeneral(QUmlClassifier *general);
- void addGeneralizationSet(UmlGeneralizationSet *generalizationSet);
- void removeGeneralizationSet(UmlGeneralizationSet *generalizationSet);
+ const QSet<QUmlGeneralizationSet *> generalizationSet() const;
+ void addGeneralizationSet(QUmlGeneralizationSet *generalizationSet);
+ void removeGeneralizationSet(QUmlGeneralizationSet *generalizationSet);
+ bool isSubstitutable() const;
void setSubstitutable(bool isSubstitutable);
+ QUmlClassifier *specific() const;
void setSpecific(QUmlClassifier *specific);
+
+protected:
+ QUmlClassifier *_general;
+ QSet<QUmlGeneralizationSet *> _generalizationSet;
+ bool _isSubstitutable;
+ QUmlClassifier *_specific;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlGeneralization *)
-Q_DECLARE_METATYPE(QList<QUmlGeneralization *> *)
-Q_DECLARE_METATYPE(QSet<QUmlGeneralization *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlGeneralization) *)
QT_END_HEADER
diff --git a/src/uml/qumlgeneralizationset.cpp b/src/uml/qumlgeneralizationset.cpp
index acda2a12..fc51e6ff 100644
--- a/src/uml/qumlgeneralizationset.cpp
+++ b/src/uml/qumlgeneralizationset.cpp
@@ -40,319 +40,137 @@
****************************************************************************/
#include "qumlgeneralizationset.h"
+#include "private/qumlgeneralizationsetobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlGeneralizationSet
+ \class QUmlGeneralizationSet
\inmodule QtUml
\brief A generalization set is a packageable element whose instances define collections of subsets of generalization relationships.
*/
-
-QUmlGeneralizationSet::QUmlGeneralizationSet(QObject *parent) :
- QObject(parent)
+QUmlGeneralizationSet::QUmlGeneralizationSet(bool createQObject) :
+ _isCovering(false),
+ _isDisjoint(false),
+ _powertype(0)
{
+ if (createQObject)
+ _qObject = new QUmlGeneralizationSetObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlGeneralizationSet::ownedComment() const
+QUmlGeneralizationSet::~QUmlGeneralizationSet()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlGeneralizationSet::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Designates the instances of Generalization which are members of a given GeneralizationSet.
*/
-QUmlElement *QUmlGeneralizationSet::owner() const
+const QSet<QUmlGeneralization *>
+QUmlGeneralizationSet::generalization() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlGeneralizationSet::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ return _generalization;
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlGeneralizationSet::templateParameter() const
+void QUmlGeneralizationSet::addGeneralization(QUmlGeneralization *generalization)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (!_generalization.contains(generalization)) {
+ _generalization.insert(generalization);
+ if (generalization->asQObject() && this->asQObject())
+ QObject::connect(generalization->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeGeneralization(QObject *)));
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlGeneralizationSet::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ // Adjust opposite properties
+ if (generalization) {
+ generalization->addGeneralizationSet(this);
+ }
+ }
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlGeneralizationSet::name() const
+void QUmlGeneralizationSet::removeGeneralization(QUmlGeneralization *generalization)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlGeneralizationSet::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (_generalization.contains(generalization)) {
+ _generalization.remove(generalization);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlGeneralizationSet::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlGeneralizationSet::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlGeneralizationSet::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [GeneralizationSet]
-
-/*!
- Designates the instances of Generalization which are members of a given GeneralizationSet.
- */
-const QSet<QUmlGeneralization *> QUmlGeneralizationSet::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
+ // Adjust opposite properties
+ if (generalization) {
+ generalization->removeGeneralizationSet(this);
+ }
+ }
}
/*!
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.
*/
-bool QUmlGeneralizationSet::isCovering() const
-{
- return _isCovering;
-}
-
-/*!
- 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.
- */
-bool QUmlGeneralizationSet::isDisjoint() const
+bool
+QUmlGeneralizationSet::isCovering() const
{
- return _isDisjoint;
-}
+ // This is a read-write property
-/*!
- Designates the Classifier that is defined as the power type for the associated GeneralizationSet.
- */
-QUmlClassifier *QUmlGeneralizationSet::powertype() const
-{
- return reinterpret_cast<QUmlClassifier *>(_powertype);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlGeneralizationSet::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _isCovering;
}
-/*!
- 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.
- */
-bool QUmlGeneralizationSet::mustBeOwned() const
+void QUmlGeneralizationSet::setCovering(bool isCovering)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlGeneralizationSet::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ if (_isCovering != isCovering) {
+ _isCovering = isCovering;
+ }
}
/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ 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.
*/
-bool QUmlGeneralizationSet::isTemplateParameter() const
+bool
+QUmlGeneralizationSet::isDisjoint() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write property
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlGeneralizationSet::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _isDisjoint;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlGeneralizationSet::allOwningPackages() const
+void QUmlGeneralizationSet::setDisjoint(bool isDisjoint)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlGeneralizationSet::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_isDisjoint != isDisjoint) {
+ _isDisjoint = isDisjoint;
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ Designates the Classifier that is defined as the power type for the associated GeneralizationSet.
*/
-QString QUmlGeneralizationSet::separator() const
+QUmlClassifier *
+QUmlGeneralizationSet::powertype() const
{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlGeneralizationSet::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlGeneralizationSet::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlGeneralizationSet::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlGeneralizationSet::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlGeneralizationSet::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlGeneralizationSet::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlGeneralizationSet::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlGeneralizationSet::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlGeneralizationSet::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [GeneralizationSet]
-
-void QUmlGeneralizationSet::addGeneralization(UmlGeneralization *generalization)
-{
- UmlGeneralizationSet::addGeneralization(generalization);
-}
-
-void QUmlGeneralizationSet::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlGeneralizationSet::removeGeneralization(generalization);
-}
-
-void QUmlGeneralizationSet::setCovering(bool isCovering)
-{
- UmlGeneralizationSet::setCovering(isCovering);
-}
-
-void QUmlGeneralizationSet::setDisjoint(bool isDisjoint)
-{
- UmlGeneralizationSet::setDisjoint(isDisjoint);
+ return _powertype;
}
void QUmlGeneralizationSet::setPowertype(QUmlClassifier *powertype)
{
- UmlGeneralizationSet::setPowertype(powertype);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_powertype != powertype) {
+ _powertype = powertype;
+ if (powertype->asQObject() && this->asQObject())
+ QObject::connect(powertype->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setPowertype()));
+ }
+}
diff --git a/src/uml/qumlgeneralizationset.h b/src/uml/qumlgeneralizationset.h
index dca6f934..efdf6a88 100644
--- a/src/uml/qumlgeneralizationset.h
+++ b/src/uml/qumlgeneralizationset.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlgeneralizationset_p.h"
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,120 +53,35 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlGeneralization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlGeneralizationSet : public QObject, public UmlGeneralizationSet
+class Q_UML_EXPORT QUmlGeneralizationSet : public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [GeneralizationSet]
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(bool isCovering READ isCovering)
- Q_PROPERTY(bool isDisjoint READ isDisjoint)
- Q_PROPERTY(QUmlClassifier * powertype READ powertype)
-
public:
- Q_INVOKABLE explicit QUmlGeneralizationSet(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [GeneralizationSet]
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE bool isCovering() const;
- Q_INVOKABLE bool isDisjoint() const;
- Q_INVOKABLE QUmlClassifier *powertype() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [GeneralizationSet]
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
+ explicit QUmlGeneralizationSet(bool createQObject = true);
+ virtual ~QUmlGeneralizationSet();
+
+ // Owned attributes
+ const QSet<QUmlGeneralization *> generalization() const;
+ void addGeneralization(QUmlGeneralization *generalization);
+ void removeGeneralization(QUmlGeneralization *generalization);
+ bool isCovering() const;
void setCovering(bool isCovering);
+ bool isDisjoint() const;
void setDisjoint(bool isDisjoint);
+ QUmlClassifier *powertype() const;
void setPowertype(QUmlClassifier *powertype);
+
+protected:
+ QSet<QUmlGeneralization *> _generalization;
+ bool _isCovering;
+ bool _isDisjoint;
+ QUmlClassifier *_powertype;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlGeneralizationSet *)
-Q_DECLARE_METATYPE(QList<QUmlGeneralizationSet *> *)
-Q_DECLARE_METATYPE(QSet<QUmlGeneralizationSet *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlGeneralizationSet) *)
QT_END_HEADER
diff --git a/src/uml/qumlgeneralordering.cpp b/src/uml/qumlgeneralordering.cpp
index 96a9bbe2..80132d45 100644
--- a/src/uml/qumlgeneralordering.cpp
+++ b/src/uml/qumlgeneralordering.cpp
@@ -40,235 +40,76 @@
****************************************************************************/
#include "qumlgeneralordering.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOccurrenceSpecification>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
+#include "private/qumlgeneralorderingobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOccurrenceSpecification>
/*!
- \class UmlGeneralOrdering
+ \class QUmlGeneralOrdering
\inmodule QtUml
\brief A general ordering represents a binary relation between two occurrence specifications, to describe that one occurrence specification must occur before the other in a valid trace. This mechanism provides the ability to define partial orders of occurrence cpecifications that may otherwise not have a specified order.
*/
-
-QUmlGeneralOrdering::QUmlGeneralOrdering(QObject *parent) :
- QObject(parent)
+QUmlGeneralOrdering::QUmlGeneralOrdering(bool createQObject) :
+ _after(0),
+ _before(0)
{
+ if (createQObject)
+ _qObject = new QUmlGeneralOrderingObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlGeneralOrdering::ownedComment() const
+QUmlGeneralOrdering::~QUmlGeneralOrdering()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlGeneralOrdering::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlGeneralOrdering::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlGeneralOrdering::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlGeneralOrdering::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlGeneralOrdering::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlGeneralOrdering::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlGeneralOrdering::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlGeneralOrdering::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [GeneralOrdering]
+// OWNED ATTRIBUTES
/*!
The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before.
*/
-QUmlOccurrenceSpecification *QUmlGeneralOrdering::after() const
-{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_after);
-}
-
-/*!
- The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after.
- */
-QUmlOccurrenceSpecification *QUmlGeneralOrdering::before() const
+QUmlOccurrenceSpecification *
+QUmlGeneralOrdering::after() const
{
- return reinterpret_cast<QUmlOccurrenceSpecification *>(_before);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlGeneralOrdering::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlGeneralOrdering::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _after;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlGeneralOrdering::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlGeneralOrdering::allOwningPackages() const
+void QUmlGeneralOrdering::setAfter(QUmlOccurrenceSpecification *after)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlGeneralOrdering::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_after != after) {
+ _after = after;
+ if (after->asQObject() && this->asQObject())
+ QObject::connect(after->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAfter()));
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after.
*/
-QString QUmlGeneralOrdering::separator() const
+QUmlOccurrenceSpecification *
+QUmlGeneralOrdering::before() const
{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlGeneralOrdering::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlGeneralOrdering::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlGeneralOrdering::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlGeneralOrdering::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlGeneralOrdering::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlGeneralOrdering::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlGeneralOrdering::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [GeneralOrdering]
-
-void QUmlGeneralOrdering::setAfter(QUmlOccurrenceSpecification *after)
-{
- UmlGeneralOrdering::setAfter(after);
+ return _before;
}
void QUmlGeneralOrdering::setBefore(QUmlOccurrenceSpecification *before)
{
- UmlGeneralOrdering::setBefore(before);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_before != before) {
+ _before = before;
+ if (before->asQObject() && this->asQObject())
+ QObject::connect(before->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setBefore()));
+ }
+}
diff --git a/src/uml/qumlgeneralordering.h b/src/uml/qumlgeneralordering.h
index 55e3037e..f3fc4bda 100644
--- a/src/uml/qumlgeneralordering.h
+++ b/src/uml/qumlgeneralordering.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlgeneralordering_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,89 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOccurrenceSpecification;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlGeneralOrdering : public QObject, public UmlGeneralOrdering
+class Q_UML_EXPORT QUmlGeneralOrdering : public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [GeneralOrdering]
- Q_PROPERTY(QUmlOccurrenceSpecification * after READ after)
- Q_PROPERTY(QUmlOccurrenceSpecification * before READ before)
-
public:
- Q_INVOKABLE explicit QUmlGeneralOrdering(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [GeneralOrdering]
- Q_INVOKABLE QUmlOccurrenceSpecification *after() const;
- Q_INVOKABLE QUmlOccurrenceSpecification *before() const;
+ explicit QUmlGeneralOrdering(bool createQObject = true);
+ virtual ~QUmlGeneralOrdering();
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [GeneralOrdering]
+ // Owned attributes
+ QUmlOccurrenceSpecification *after() const;
void setAfter(QUmlOccurrenceSpecification *after);
+ QUmlOccurrenceSpecification *before() const;
void setBefore(QUmlOccurrenceSpecification *before);
+
+protected:
+ QUmlOccurrenceSpecification *_after;
+ QUmlOccurrenceSpecification *_before;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlGeneralOrdering *)
-Q_DECLARE_METATYPE(QList<QUmlGeneralOrdering *> *)
-Q_DECLARE_METATYPE(QSet<QUmlGeneralOrdering *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlGeneralOrdering) *)
QT_END_HEADER
diff --git a/src/uml/qumlimage.cpp b/src/uml/qumlimage.cpp
index dcdf5e3d..10456ba8 100644
--- a/src/uml/qumlimage.cpp
+++ b/src/uml/qumlimage.cpp
@@ -40,125 +40,88 @@
****************************************************************************/
#include "qumlimage.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlimageobject_p.h"
/*!
- \class UmlImage
+ \class QUmlImage
\inmodule QtUml
\brief Physical definition of a graphical image.
*/
-
-QUmlImage::QUmlImage(QObject *parent) :
- QObject(parent)
+QUmlImage::QUmlImage(bool createQObject)
{
+ if (createQObject)
+ _qObject = new QUmlImageObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlImage::ownedComment() const
+QUmlImage::~QUmlImage()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlImage::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlImage::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [Image]
+// OWNED ATTRIBUTES
/*!
This contains the serialization of the image according to the format. The value could represent a bitmap, image such as a GIF file, or drawing 'instructions' using a standard such as Scalable Vector Graphic (SVG) (which is XML based).
*/
-QString QUmlImage::content() const
+QString
+QUmlImage::content() const
{
+ // This is a read-write property
+
return _content;
}
-/*!
- This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP. In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example "SVG" could instead be expressed as "MIME: image/svg+xml".
- */
-QString QUmlImage::format() const
+void QUmlImage::setContent(QString content)
{
- return _format;
-}
+ // This is a read-write property
-/*!
- This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype.
- */
-QString QUmlImage::location() const
-{
- return _location;
+ if (_content != content) {
+ _content = content;
+ }
}
-// OPERATIONS [Element]
-
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ This indicates the format of the content - which is how the string content should be interpreted. The following values are reserved: SVG, GIF, PNG, JPG, WMF, EMF, BMP. In addition the prefix 'MIME: ' is also reserved. This option can be used as an alternative to express the reserved values above, for example "SVG" could instead be expressed as "MIME: image/svg+xml".
*/
-QSet<QUmlElement *> QUmlImage::allOwnedElements() const
+QString
+QUmlImage::format() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlImage::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _format;
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlImage::addOwnedComment(UmlComment *ownedComment)
+void QUmlImage::setFormat(QString format)
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write property
-void QUmlImage::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ if (_format != format) {
+ _format = format;
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Image]
-
-void QUmlImage::setContent(QString content)
+/*!
+ This contains a location that can be used by a tool to locate the image as an alternative to embedding it in the stereotype.
+ */
+QString
+QUmlImage::location() const
{
- UmlImage::setContent(content);
-}
+ // This is a read-write property
-void QUmlImage::setFormat(QString format)
-{
- UmlImage::setFormat(format);
+ return _location;
}
void QUmlImage::setLocation(QString location)
{
- UmlImage::setLocation(location);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_location != location) {
+ _location = location;
+ }
+}
diff --git a/src/uml/qumlimage.h b/src/uml/qumlimage.h
index 14a4f66e..3bc5155f 100644
--- a/src/uml/qumlimage.h
+++ b/src/uml/qumlimage.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlimage_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,57 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
-
-class Q_UML_EXPORT QUmlImage : public QObject, public UmlImage
+class Q_UML_EXPORT QUmlImage : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Image]
- Q_PROPERTY(QString content READ content)
- Q_PROPERTY(QString format READ format)
- Q_PROPERTY(QString location READ location)
-
public:
- Q_INVOKABLE explicit QUmlImage(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ explicit QUmlImage(bool createQObject = true);
+ virtual ~QUmlImage();
- // Owned attributes [Image]
- Q_INVOKABLE QString content() const;
- Q_INVOKABLE QString format() const;
- Q_INVOKABLE QString location() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Image]
+ // Owned attributes
+ QString content() const;
void setContent(QString content);
+ QString format() const;
void setFormat(QString format);
+ QString location() const;
void setLocation(QString location);
+
+protected:
+ QString _content;
+ QString _format;
+ QString _location;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlImage *)
-Q_DECLARE_METATYPE(QList<QUmlImage *> *)
-Q_DECLARE_METATYPE(QSet<QUmlImage *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlImage) *)
QT_END_HEADER
diff --git a/src/uml/qumlinclude.cpp b/src/uml/qumlinclude.cpp
index 213bce8f..c0cba095 100644
--- a/src/uml/qumlinclude.cpp
+++ b/src/uml/qumlinclude.cpp
@@ -40,267 +40,93 @@
****************************************************************************/
#include "qumlinclude.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlUseCase>
+#include "private/qumlincludeobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlUseCase>
/*!
- \class UmlInclude
+ \class QUmlInclude
\inmodule QtUml
\brief An include relationship defines that a use case contains the behavior defined in another use case.
*/
-
-QUmlInclude::QUmlInclude(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInclude::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInclude::ownedElement() const
+QUmlInclude::QUmlInclude(bool createQObject) :
+ _addition(0),
+ _includingCase(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlIncludeObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInclude::owner() const
+QUmlInclude::~QUmlInclude()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlInclude::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlInclude::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlInclude::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInclude::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInclude::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInclude::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInclude::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInclude::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInclude::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Include]
+// OWNED ATTRIBUTES
/*!
References the use case that is to be included.
*/
-QUmlUseCase *QUmlInclude::addition() const
+QUmlUseCase *
+QUmlInclude::addition() const
{
- return reinterpret_cast<QUmlUseCase *>(_addition);
-}
+ // This is a read-write association end
-/*!
- References the use case which will include the addition and owns the include relationship.
- */
-QUmlUseCase *QUmlInclude::includingCase() const
-{
- return reinterpret_cast<QUmlUseCase *>(_includingCase);
+ return _addition;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInclude::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInclude::mustBeOwned() const
+void QUmlInclude::setAddition(QUmlUseCase *addition)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_addition != addition) {
+ // Adjust subsetted properties
+ removeTarget(_addition);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInclude::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ _addition = addition;
+ if (addition->asQObject() && this->asQObject())
+ QObject::connect(addition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAddition()));
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInclude::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInclude::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ if (addition) {
+ addTarget(addition);
+ }
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ References the use case which will include the addition and owns the include relationship.
*/
-QString QUmlInclude::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInclude::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInclude::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInclude::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInclude::removeClientDependency(UmlDependency *clientDependency)
+QUmlUseCase *
+QUmlInclude::includingCase() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlInclude::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _includingCase;
}
-void QUmlInclude::setNameExpression(QUmlStringExpression *nameExpression)
+void QUmlInclude::setIncludingCase(QUmlUseCase *includingCase)
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlInclude::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
+ if (_includingCase != includingCase) {
+ // Adjust subsetted properties
+ removeSource(_includingCase);
-// SLOTS FOR OWNED ATTRIBUTES [Include]
+ _includingCase = includingCase;
+ if (includingCase->asQObject() && this->asQObject())
+ QObject::connect(includingCase->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setIncludingCase()));
-void QUmlInclude::setAddition(QUmlUseCase *addition)
-{
- UmlInclude::setAddition(addition);
+ // Adjust subsetted properties
+ if (includingCase) {
+ addSource(includingCase);
+ }
+ setNamespace(includingCase);
+ }
}
-void QUmlInclude::setIncludingCase(QUmlUseCase *includingCase)
-{
- UmlInclude::setIncludingCase(includingCase);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinclude.h b/src/uml/qumlinclude.h
index c08918c4..fcdd813d 100644
--- a/src/uml/qumlinclude.h
+++ b/src/uml/qumlinclude.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinclude_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,107 +53,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
class QUmlUseCase;
-class Q_UML_EXPORT QUmlInclude : public QObject, public UmlInclude
+class Q_UML_EXPORT QUmlInclude : public QUmlDirectedRelationship, public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Include]
- Q_PROPERTY(QUmlUseCase * addition READ addition)
- Q_PROPERTY(QUmlUseCase * includingCase READ includingCase)
-
public:
- Q_INVOKABLE explicit QUmlInclude(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlInclude(bool createQObject = true);
+ virtual ~QUmlInclude();
- // Owned attributes [Include]
- Q_INVOKABLE QUmlUseCase *addition() const;
- Q_INVOKABLE QUmlUseCase *includingCase() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Include]
+ // Owned attributes
+ QUmlUseCase *addition() const;
void setAddition(QUmlUseCase *addition);
+ QUmlUseCase *includingCase() const;
void setIncludingCase(QUmlUseCase *includingCase);
+
+protected:
+ QUmlUseCase *_addition;
+ QUmlUseCase *_includingCase;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInclude *)
-Q_DECLARE_METATYPE(QList<QUmlInclude *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInclude *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInclude) *)
QT_END_HEADER
diff --git a/src/uml/qumlinformationflow.cpp b/src/uml/qumlinformationflow.cpp
index f5b1d878..08162e48 100644
--- a/src/uml/qumlinformationflow.cpp
+++ b/src/uml/qumlinformationflow.cpp
@@ -40,423 +40,264 @@
****************************************************************************/
#include "qumlinformationflow.h"
+#include "private/qumlinformationflowobject_p.h"
+
#include <QtUml/QUmlActivityEdge>
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlMessage>
#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlRelationship>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInformationFlow
+ \class QUmlInformationFlow
\inmodule QtUml
\brief 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 instance specification), they may be represented by a link that joins the two, and so on.
*/
-
-QUmlInformationFlow::QUmlInformationFlow(QObject *parent) :
- QObject(parent)
+QUmlInformationFlow::QUmlInformationFlow(bool createQObject)
{
+ if (createQObject)
+ _qObject = new QUmlInformationFlowObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInformationFlow::ownedComment() const
+QUmlInformationFlow::~QUmlInformationFlow()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInformationFlow::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Specifies the information items that may circulate on this information flow.
*/
-QUmlElement *QUmlInformationFlow::owner() const
+const QSet<QUmlClassifier *>
+QUmlInformationFlow::conveyed() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [Relationship]
+ // This is a read-write association end
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlInformationFlow::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ return _conveyed;
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlInformationFlow::source() const
+void QUmlInformationFlow::addConveyed(QUmlClassifier *conveyed)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
+ // This is a read-write association end
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlInformationFlow::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
+ if (!_conveyed.contains(conveyed)) {
+ _conveyed.insert(conveyed);
+ if (conveyed->asQObject() && this->asQObject())
+ QObject::connect(conveyed->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConveyed(QObject *)));
+ }
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInformationFlow::owningTemplateParameter() const
+void QUmlInformationFlow::removeConveyed(QUmlClassifier *conveyed)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
+ // This is a read-write association end
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlInformationFlow::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ if (_conveyed.contains(conveyed)) {
+ _conveyed.remove(conveyed);
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
/*!
- Indicates the dependencies that reference the client.
+ Defines from which source the conveyed InformationItems are initiated.
*/
-const QSet<QUmlDependency *> QUmlInformationFlow::clientDependency() const
+const QSet<QUmlNamedElement *>
+QUmlInformationFlow::informationSource() const
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ // This is a read-write association end
-/*!
- The name of the NamedElement.
- */
-QString QUmlInformationFlow::name() const
-{
- return _name;
+ return _informationSource;
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInformationFlow::nameExpression() const
+void QUmlInformationFlow::addInformationSource(QUmlNamedElement *informationSource)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-write association end
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInformationFlow::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ if (!_informationSource.contains(informationSource)) {
+ _informationSource.insert(informationSource);
+ if (informationSource->asQObject() && this->asQObject())
+ QObject::connect(informationSource->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInformationSource(QObject *)));
-/*!
- 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.
- */
-QString QUmlInformationFlow::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust subsetted properties
+ addSource(informationSource);
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInformationFlow::visibility() const
+void QUmlInformationFlow::removeInformationSource(QUmlNamedElement *informationSource)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [InformationFlow]
+ if (_informationSource.contains(informationSource)) {
+ _informationSource.remove(informationSource);
-/*!
- Specifies the information items that may circulate on this information flow.
- */
-const QSet<QUmlClassifier *> QUmlInformationFlow::conveyed() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_conveyed));
-}
-
-/*!
- Defines from which source the conveyed InformationItems are initiated.
- */
-const QSet<QUmlNamedElement *> QUmlInformationFlow::informationSource() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_informationSource));
+ // Adjust subsetted properties
+ removeSource(informationSource);
+ }
}
/*!
Defines to which target the conveyed InformationItems are directed.
*/
-const QSet<QUmlNamedElement *> QUmlInformationFlow::informationTarget() const
+const QSet<QUmlNamedElement *>
+QUmlInformationFlow::informationTarget() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_informationTarget));
-}
+ // This is a read-write association end
-/*!
- Determines which Relationship will realize the specified flow
- */
-const QSet<QUmlRelationship *> QUmlInformationFlow::realization() const
-{
- return *(reinterpret_cast<const QSet<QUmlRelationship *> *>(&_realization));
+ return _informationTarget;
}
-/*!
- Determines which ActivityEdges will realize the specified flow.
- */
-const QSet<QUmlActivityEdge *> QUmlInformationFlow::realizingActivityEdge() const
+void QUmlInformationFlow::addInformationTarget(QUmlNamedElement *informationTarget)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_realizingActivityEdge));
-}
+ // This is a read-write association end
-/*!
- Determines which Connectors will realize the specified flow.
- */
-const QSet<QUmlConnector *> QUmlInformationFlow::realizingConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_realizingConnector));
+ if (!_informationTarget.contains(informationTarget)) {
+ _informationTarget.insert(informationTarget);
+ if (informationTarget->asQObject() && this->asQObject())
+ QObject::connect(informationTarget->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInformationTarget(QObject *)));
+
+ // Adjust subsetted properties
+ addTarget(informationTarget);
+ }
}
-/*!
- Determines which Messages will realize the specified flow.
- */
-const QSet<QUmlMessage *> QUmlInformationFlow::realizingMessage() const
+void QUmlInformationFlow::removeInformationTarget(QUmlNamedElement *informationTarget)
{
- return *(reinterpret_cast<const QSet<QUmlMessage *> *>(&_realizingMessage));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_informationTarget.contains(informationTarget)) {
+ _informationTarget.remove(informationTarget);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInformationFlow::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeTarget(informationTarget);
+ }
}
/*!
- 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.
+ Determines which Relationship will realize the specified flow
*/
-bool QUmlInformationFlow::mustBeOwned() const
+const QSet<QUmlRelationship *>
+QUmlInformationFlow::realization() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInformationFlow::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _realization;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInformationFlow::isTemplateParameter() const
+void QUmlInformationFlow::addRealization(QUmlRelationship *realization)
{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInformationFlow::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (!_realization.contains(realization)) {
+ _realization.insert(realization);
+ if (realization->asQObject() && this->asQObject())
+ QObject::connect(realization->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRealization(QObject *)));
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInformationFlow::allOwningPackages() const
+void QUmlInformationFlow::removeRealization(QUmlRelationship *realization)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInformationFlow::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_realization.contains(realization)) {
+ _realization.remove(realization);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ Determines which ActivityEdges will realize the specified flow.
*/
-QString QUmlInformationFlow::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInformationFlow::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInformationFlow::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInformationFlow::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+const QSet<QUmlActivityEdge *>
+QUmlInformationFlow::realizingActivityEdge() const
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return _realizingActivityEdge;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInformationFlow::addClientDependency(UmlDependency *clientDependency)
+void QUmlInformationFlow::addRealizingActivityEdge(QUmlActivityEdge *realizingActivityEdge)
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ if (!_realizingActivityEdge.contains(realizingActivityEdge)) {
+ _realizingActivityEdge.insert(realizingActivityEdge);
+ if (realizingActivityEdge->asQObject() && this->asQObject())
+ QObject::connect(realizingActivityEdge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRealizingActivityEdge(QObject *)));
+ }
}
-void QUmlInformationFlow::setName(QString name)
+void QUmlInformationFlow::removeRealizingActivityEdge(QUmlActivityEdge *realizingActivityEdge)
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ if (_realizingActivityEdge.contains(realizingActivityEdge)) {
+ _realizingActivityEdge.remove(realizingActivityEdge);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-void QUmlInformationFlow::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InformationFlow]
-
-void QUmlInformationFlow::addConveyed(UmlClassifier *conveyed)
-{
- UmlInformationFlow::addConveyed(conveyed);
-}
-
-void QUmlInformationFlow::removeConveyed(UmlClassifier *conveyed)
-{
- UmlInformationFlow::removeConveyed(conveyed);
-}
-
-void QUmlInformationFlow::addInformationSource(UmlNamedElement *informationSource)
+/*!
+ Determines which Connectors will realize the specified flow.
+ */
+const QSet<QUmlConnector *>
+QUmlInformationFlow::realizingConnector() const
{
- UmlInformationFlow::addInformationSource(informationSource);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeInformationSource(UmlNamedElement *informationSource)
-{
- UmlInformationFlow::removeInformationSource(informationSource);
+ return _realizingConnector;
}
-void QUmlInformationFlow::addInformationTarget(UmlNamedElement *informationTarget)
+void QUmlInformationFlow::addRealizingConnector(QUmlConnector *realizingConnector)
{
- UmlInformationFlow::addInformationTarget(informationTarget);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeInformationTarget(UmlNamedElement *informationTarget)
-{
- UmlInformationFlow::removeInformationTarget(informationTarget);
+ if (!_realizingConnector.contains(realizingConnector)) {
+ _realizingConnector.insert(realizingConnector);
+ if (realizingConnector->asQObject() && this->asQObject())
+ QObject::connect(realizingConnector->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRealizingConnector(QObject *)));
+ }
}
-void QUmlInformationFlow::addRealization(UmlRelationship *realization)
+void QUmlInformationFlow::removeRealizingConnector(QUmlConnector *realizingConnector)
{
- UmlInformationFlow::addRealization(realization);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeRealization(UmlRelationship *realization)
-{
- UmlInformationFlow::removeRealization(realization);
+ if (_realizingConnector.contains(realizingConnector)) {
+ _realizingConnector.remove(realizingConnector);
+ }
}
-void QUmlInformationFlow::addRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge)
+/*!
+ Determines which Messages will realize the specified flow.
+ */
+const QSet<QUmlMessage *>
+QUmlInformationFlow::realizingMessage() const
{
- UmlInformationFlow::addRealizingActivityEdge(realizingActivityEdge);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge)
-{
- UmlInformationFlow::removeRealizingActivityEdge(realizingActivityEdge);
+ return _realizingMessage;
}
-void QUmlInformationFlow::addRealizingConnector(UmlConnector *realizingConnector)
+void QUmlInformationFlow::addRealizingMessage(QUmlMessage *realizingMessage)
{
- UmlInformationFlow::addRealizingConnector(realizingConnector);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeRealizingConnector(UmlConnector *realizingConnector)
-{
- UmlInformationFlow::removeRealizingConnector(realizingConnector);
+ if (!_realizingMessage.contains(realizingMessage)) {
+ _realizingMessage.insert(realizingMessage);
+ if (realizingMessage->asQObject() && this->asQObject())
+ QObject::connect(realizingMessage->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRealizingMessage(QObject *)));
+ }
}
-void QUmlInformationFlow::addRealizingMessage(UmlMessage *realizingMessage)
+void QUmlInformationFlow::removeRealizingMessage(QUmlMessage *realizingMessage)
{
- UmlInformationFlow::addRealizingMessage(realizingMessage);
-}
+ // This is a read-write association end
-void QUmlInformationFlow::removeRealizingMessage(UmlMessage *realizingMessage)
-{
- UmlInformationFlow::removeRealizingMessage(realizingMessage);
+ if (_realizingMessage.contains(realizingMessage)) {
+ _realizingMessage.remove(realizingMessage);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinformationflow.h b/src/uml/qumlinformationflow.h
index 8ae53faf..53782212 100644
--- a/src/uml/qumlinformationflow.h
+++ b/src/uml/qumlinformationflow.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinformationflow_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -56,155 +55,53 @@ QT_MODULE(QtUml)
class QUmlActivityEdge;
class QUmlClassifier;
-class QUmlComment;
class QUmlConnector;
-class QUmlDependency;
-class QUmlElement;
class QUmlMessage;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
class QUmlRelationship;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlInformationFlow : public QObject, public UmlInformationFlow
+class Q_UML_EXPORT QUmlInformationFlow : public QUmlDirectedRelationship, public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InformationFlow]
- Q_PROPERTY(QSet<QUmlClassifier *> conveyed READ conveyed)
- Q_PROPERTY(QSet<QUmlNamedElement *> informationSource READ informationSource)
- Q_PROPERTY(QSet<QUmlNamedElement *> informationTarget READ informationTarget)
- Q_PROPERTY(QSet<QUmlRelationship *> realization READ realization)
- Q_PROPERTY(QSet<QUmlActivityEdge *> realizingActivityEdge READ realizingActivityEdge)
- Q_PROPERTY(QSet<QUmlConnector *> realizingConnector READ realizingConnector)
- Q_PROPERTY(QSet<QUmlMessage *> realizingMessage READ realizingMessage)
-
public:
- Q_INVOKABLE explicit QUmlInformationFlow(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InformationFlow]
- Q_INVOKABLE const QSet<QUmlClassifier *> conveyed() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> informationSource() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> informationTarget() const;
- Q_INVOKABLE const QSet<QUmlRelationship *> realization() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> realizingActivityEdge() const;
- Q_INVOKABLE const QSet<QUmlConnector *> realizingConnector() const;
- Q_INVOKABLE const QSet<QUmlMessage *> realizingMessage() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InformationFlow]
- void addConveyed(UmlClassifier *conveyed);
- void removeConveyed(UmlClassifier *conveyed);
- void addInformationSource(UmlNamedElement *informationSource);
- void removeInformationSource(UmlNamedElement *informationSource);
- void addInformationTarget(UmlNamedElement *informationTarget);
- void removeInformationTarget(UmlNamedElement *informationTarget);
- void addRealization(UmlRelationship *realization);
- void removeRealization(UmlRelationship *realization);
- void addRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge);
- void removeRealizingActivityEdge(UmlActivityEdge *realizingActivityEdge);
- void addRealizingConnector(UmlConnector *realizingConnector);
- void removeRealizingConnector(UmlConnector *realizingConnector);
- void addRealizingMessage(UmlMessage *realizingMessage);
- void removeRealizingMessage(UmlMessage *realizingMessage);
+ explicit QUmlInformationFlow(bool createQObject = true);
+ virtual ~QUmlInformationFlow();
+
+ // Owned attributes
+ const QSet<QUmlClassifier *> conveyed() const;
+ void addConveyed(QUmlClassifier *conveyed);
+ void removeConveyed(QUmlClassifier *conveyed);
+ const QSet<QUmlNamedElement *> informationSource() const;
+ void addInformationSource(QUmlNamedElement *informationSource);
+ void removeInformationSource(QUmlNamedElement *informationSource);
+ const QSet<QUmlNamedElement *> informationTarget() const;
+ void addInformationTarget(QUmlNamedElement *informationTarget);
+ void removeInformationTarget(QUmlNamedElement *informationTarget);
+ const QSet<QUmlRelationship *> realization() const;
+ void addRealization(QUmlRelationship *realization);
+ void removeRealization(QUmlRelationship *realization);
+ const QSet<QUmlActivityEdge *> realizingActivityEdge() const;
+ void addRealizingActivityEdge(QUmlActivityEdge *realizingActivityEdge);
+ void removeRealizingActivityEdge(QUmlActivityEdge *realizingActivityEdge);
+ const QSet<QUmlConnector *> realizingConnector() const;
+ void addRealizingConnector(QUmlConnector *realizingConnector);
+ void removeRealizingConnector(QUmlConnector *realizingConnector);
+ const QSet<QUmlMessage *> realizingMessage() const;
+ void addRealizingMessage(QUmlMessage *realizingMessage);
+ void removeRealizingMessage(QUmlMessage *realizingMessage);
+
+protected:
+ QSet<QUmlClassifier *> _conveyed;
+ QSet<QUmlNamedElement *> _informationSource;
+ QSet<QUmlNamedElement *> _informationTarget;
+ QSet<QUmlRelationship *> _realization;
+ QSet<QUmlActivityEdge *> _realizingActivityEdge;
+ QSet<QUmlConnector *> _realizingConnector;
+ QSet<QUmlMessage *> _realizingMessage;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInformationFlow *)
-Q_DECLARE_METATYPE(QList<QUmlInformationFlow *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInformationFlow *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInformationFlow) *)
QT_END_HEADER
diff --git a/src/uml/qumlinformationitem.cpp b/src/uml/qumlinformationitem.cpp
index bad020b3..51ea5463 100644
--- a/src/uml/qumlinformationitem.cpp
+++ b/src/uml/qumlinformationitem.cpp
@@ -40,842 +40,59 @@
****************************************************************************/
#include "qumlinformationitem.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlinformationitemobject_p.h"
/*!
- \class UmlInformationItem
+ \class QUmlInformationItem
\inmodule QtUml
\brief 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.
*/
-
-QUmlInformationItem::QUmlInformationItem(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInformationItem::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInformationItem::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInformationItem::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInformationItem::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInformationItem::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInformationItem::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInformationItem::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInformationItem::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlInformationItem::elementImport() const
+QUmlInformationItem::QUmlInformationItem(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ if (createQObject)
+ _qObject = new QUmlInformationItemObject(this);
}
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlInformationItem::importedMember() const
+QUmlInformationItem::~QUmlInformationItem()
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlInformationItem::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlInformationItem::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlInformationItem::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlInformationItem::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInformationItem::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInformationItem::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlInformationItem::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlInformationItem::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlInformationItem::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlInformationItem::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlInformationItem::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlInformationItem::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlInformationItem::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlInformationItem::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlInformationItem::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlInformationItem::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlInformationItem::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInformationItem::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlInformationItem::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlInformationItem::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlInformationItem::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlInformationItem::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlInformationItem::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlInformationItem::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlInformationItem::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlInformationItem::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlInformationItem::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [InformationItem]
+// OWNED ATTRIBUTES
/*!
Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers.
*/
-const QSet<QUmlClassifier *> QUmlInformationItem::represented() const
+const QSet<QUmlClassifier *>
+QUmlInformationItem::represented() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_represented));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInformationItem::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _represented;
}
-/*!
- 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.
- */
-bool QUmlInformationItem::mustBeOwned() const
+void QUmlInformationItem::addRepresented(QUmlClassifier *represented)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInformationItem::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (!_represented.contains(represented)) {
+ _represented.insert(represented);
+ if (represented->asQObject() && this->asQObject())
+ QObject::connect(represented->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRepresented(QObject *)));
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInformationItem::allOwningPackages() const
+void QUmlInformationItem::removeRepresented(QUmlClassifier *represented)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInformationItem::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_represented.contains(represented)) {
+ _represented.remove(represented);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInformationItem::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlInformationItem::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlInformationItem::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlInformationItem::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlInformationItem::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlInformationItem::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInformationItem::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlInformationItem::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlInformationItem::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlInformationItem::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlInformationItem::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlInformationItem::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInformationItem::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlInformationItem::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlInformationItem::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlInformationItem::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlInformationItem::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlInformationItem::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlInformationItem::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInformationItem::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInformationItem::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInformationItem::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInformationItem::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInformationItem::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInformationItem::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlInformationItem::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlInformationItem::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlInformationItem::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlInformationItem::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlInformationItem::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlInformationItem::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInformationItem::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInformationItem::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlInformationItem::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlInformationItem::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlInformationItem::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlInformationItem::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlInformationItem::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlInformationItem::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlInformationItem::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlInformationItem::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlInformationItem::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlInformationItem::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlInformationItem::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlInformationItem::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlInformationItem::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlInformationItem::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlInformationItem::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlInformationItem::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlInformationItem::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlInformationItem::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlInformationItem::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlInformationItem::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlInformationItem::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlInformationItem::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlInformationItem::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlInformationItem::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlInformationItem::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InformationItem]
-
-void QUmlInformationItem::addRepresented(UmlClassifier *represented)
-{
- UmlInformationItem::addRepresented(represented);
-}
-
-void QUmlInformationItem::removeRepresented(UmlClassifier *represented)
-{
- UmlInformationItem::removeRepresented(represented);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinformationitem.h b/src/uml/qumlinformationitem.h
index c68b70f8..eb6352c1 100644
--- a/src/uml/qumlinformationitem.h
+++ b/src/uml/qumlinformationitem.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinformationitem_p.h"
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,266 +52,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlInformationItem : public QObject, public UmlInformationItem
+class Q_UML_EXPORT QUmlInformationItem : public QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [InformationItem]
- Q_PROPERTY(QSet<QUmlClassifier *> represented READ represented)
-
public:
- Q_INVOKABLE explicit QUmlInformationItem(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [InformationItem]
- Q_INVOKABLE const QSet<QUmlClassifier *> represented() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ explicit QUmlInformationItem(bool createQObject = true);
+ virtual ~QUmlInformationItem();
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ // Owned attributes
+ const QSet<QUmlClassifier *> represented() const;
+ void addRepresented(QUmlClassifier *represented);
+ void removeRepresented(QUmlClassifier *represented);
- // Slots for owned attributes [InformationItem]
- void addRepresented(UmlClassifier *represented);
- void removeRepresented(UmlClassifier *represented);
+protected:
+ QSet<QUmlClassifier *> _represented;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInformationItem *)
-Q_DECLARE_METATYPE(QList<QUmlInformationItem *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInformationItem *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInformationItem) *)
QT_END_HEADER
diff --git a/src/uml/qumlinitialnode.cpp b/src/uml/qumlinitialnode.cpp
index da01074e..7d1d0fc5 100644
--- a/src/uml/qumlinitialnode.cpp
+++ b/src/uml/qumlinitialnode.cpp
@@ -40,392 +40,26 @@
****************************************************************************/
#include "qumlinitialnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlinitialnodeobject_p.h"
/*!
- \class UmlInitialNode
+ \class QUmlInitialNode
\inmodule QtUml
\brief An initial node is a control node at which flow starts when the activity is invoked.
*/
-
-QUmlInitialNode::QUmlInitialNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInitialNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInitialNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInitialNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInitialNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInitialNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInitialNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInitialNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInitialNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInitialNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlInitialNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlInitialNode::redefinedElement() const
+QUmlInitialNode::QUmlInitialNode(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (createQObject)
+ _qObject = new QUmlInitialNodeObject(this);
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlInitialNode::redefinitionContext() const
+QUmlInitialNode::~QUmlInitialNode()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlInitialNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlInitialNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlInitialNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlInitialNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlInitialNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlInitialNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlInitialNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlInitialNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInitialNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInitialNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInitialNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInitialNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInitialNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInitialNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlInitialNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlInitialNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInitialNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInitialNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInitialNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInitialNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInitialNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInitialNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlInitialNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlInitialNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlInitialNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlInitialNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlInitialNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlInitialNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlInitialNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlInitialNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlInitialNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlInitialNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlInitialNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlInitialNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlInitialNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlInitialNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinitialnode.h b/src/uml/qumlinitialnode.h
index 3ca92179..0d113261 100644
--- a/src/uml/qumlinitialnode.h
+++ b/src/uml/qumlinitialnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinitialnode_p.h"
+#include <QtUml/QUmlControlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlInitialNode : public QObject, public UmlInitialNode
+class Q_UML_EXPORT QUmlInitialNode : public QUmlControlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_INVOKABLE explicit QUmlInitialNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlInitialNode(bool createQObject = true);
+ virtual ~QUmlInitialNode();
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInitialNode *)
-Q_DECLARE_METATYPE(QList<QUmlInitialNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInitialNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInitialNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlinputpin.cpp b/src/uml/qumlinputpin.cpp
index af418aee..10b9ce37 100644
--- a/src/uml/qumlinputpin.cpp
+++ b/src/uml/qumlinputpin.cpp
@@ -40,645 +40,26 @@
****************************************************************************/
#include "qumlinputpin.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlinputpinobject_p.h"
/*!
- \class UmlInputPin
+ \class QUmlInputPin
\inmodule QtUml
\brief An input pin is a pin that holds input values to be consumed by an action.
*/
-
-QUmlInputPin::QUmlInputPin(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInputPin::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInputPin::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInputPin::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlInputPin::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlInputPin::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlInputPin::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlInputPin::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlInputPin::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlInputPin::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInputPin::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInputPin::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInputPin::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInputPin::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInputPin::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInputPin::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlInputPin::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlInputPin::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlInputPin::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlInputPin::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlInputPin::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlInputPin::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlInputPin::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlInputPin::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlInputPin::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlInputPin::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlInputPin::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlInputPin::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlInputPin::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlInputPin::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlInputPin::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlInputPin::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
-
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlInputPin::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OWNED ATTRIBUTES [Pin]
-
-/*!
- Tells whether the pins provide data to the actions, or just controls when it executes it.
- */
-bool QUmlInputPin::isControl() const
-{
- return _isControl;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInputPin::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInputPin::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlInputPin::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlInputPin::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlInputPin::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlInputPin::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlInputPin::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlInputPin::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-//int QUmlInputPin::upperBound() const
-//{
-// return UmlMultiplicityElement::upperBound();
-//}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInputPin::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInputPin::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInputPin::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInputPin::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlInputPin::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlInputPin::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInputPin::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInputPin::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlInputPin::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlInputPin::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlInputPin::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlInputPin::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlInputPin::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlInputPin::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInputPin::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInputPin::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInputPin::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInputPin::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlInputPin::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlInputPin::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlInputPin::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlInputPin::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlInputPin::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlInputPin::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlInputPin::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlInputPin::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlInputPin::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlInputPin::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlInputPin::addOutgoing(UmlActivityEdge *outgoing)
+QUmlInputPin::QUmlInputPin(bool createQObject)
{
- UmlActivityNode::addOutgoing(outgoing);
+ if (createQObject)
+ _qObject = new QUmlInputPinObject(this);
}
-void QUmlInputPin::removeOutgoing(UmlActivityEdge *outgoing)
+QUmlInputPin::~QUmlInputPin()
{
- UmlActivityNode::removeOutgoing(outgoing);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-void QUmlInputPin::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlInputPin::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlInputPin::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlInputPin::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlInputPin::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlInputPin::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlInputPin::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlInputPin::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlInputPin::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Pin]
-
-void QUmlInputPin::setControl(bool isControl)
-{
- UmlPin::setControl(isControl);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinputpin.h b/src/uml/qumlinputpin.h
index 9086edd7..50d91403 100644
--- a/src/uml/qumlinputpin.h
+++ b/src/uml/qumlinputpin.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinputpin_p.h"
+#include <QtUml/QUmlPin>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,214 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlInputPin : public QObject, public UmlInputPin
+class Q_UML_EXPORT QUmlInputPin : public QUmlPin
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [Pin]
- Q_PROPERTY(bool isControl READ isControl)
-
public:
- Q_INVOKABLE explicit QUmlInputPin(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Owned attributes [Pin]
- Q_INVOKABLE bool isControl() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
-// Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
+ explicit QUmlInputPin(bool createQObject = true);
+ virtual ~QUmlInputPin();
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
- // Slots for owned attributes [Pin]
- void setControl(bool isControl);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInputPin *)
-Q_DECLARE_METATYPE(QList<QUmlInputPin *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInputPin *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInputPin) *)
QT_END_HEADER
diff --git a/src/uml/qumlinstancespecification.cpp b/src/uml/qumlinstancespecification.cpp
index 124ebdce..41b8323d 100644
--- a/src/uml/qumlinstancespecification.cpp
+++ b/src/uml/qumlinstancespecification.cpp
@@ -40,347 +40,145 @@
****************************************************************************/
#include "qumlinstancespecification.h"
+#include "private/qumlinstancespecificationobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlSlot>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlInstanceSpecification
+ \class QUmlInstanceSpecification
\inmodule QtUml
\brief An instance specification has the capability of being a deployment target in a deployment relationship, in the case that it is an instance of a node. It is also has the capability of being a deployed artifact, if it is an instance of an artifact.An instance specification is a model element that represents an instance in a modeled system.
*/
-
-QUmlInstanceSpecification::QUmlInstanceSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInstanceSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInstanceSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInstanceSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInstanceSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInstanceSpecification::name() const
+QUmlInstanceSpecification::QUmlInstanceSpecification(bool createQObject) :
+ _specification(0)
{
- return _name;
+ if (createQObject)
+ _qObject = new QUmlInstanceSpecificationObject(this);
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInstanceSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInstanceSpecification::namespace_() const
+QUmlInstanceSpecification::~QUmlInstanceSpecification()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlInstanceSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [ParameterableElement]
+// OWNED ATTRIBUTES
/*!
- The formal template parameter that owns this element.
+ The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them.
*/
-QUmlTemplateParameter *QUmlInstanceSpecification::owningTemplateParameter() const
+const QSet<QUmlClassifier *>
+QUmlInstanceSpecification::classifier() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
+ // This is a read-write association end
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlInstanceSpecification::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ return _classifier;
}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInstanceSpecification::visibility() const
+void QUmlInstanceSpecification::addClassifier(QUmlClassifier *classifier)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlInstanceSpecification::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (!_classifier.contains(classifier)) {
+ _classifier.insert(classifier);
+ if (classifier->asQObject() && this->asQObject())
+ QObject::connect(classifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeClassifier(QObject *)));
+ }
}
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlInstanceSpecification::deployment() const
+void QUmlInstanceSpecification::removeClassifier(QUmlClassifier *classifier)
{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [InstanceSpecification]
-
-/*!
- The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them.
- */
-const QSet<QUmlClassifier *> QUmlInstanceSpecification::classifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_classifier));
+ if (_classifier.contains(classifier)) {
+ _classifier.remove(classifier);
+ }
}
/*!
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.
*/
-const QSet<QUmlSlot *> QUmlInstanceSpecification::slot_() const
+const QSet<QUmlSlot *>
+QUmlInstanceSpecification::slot_() const
{
- return *(reinterpret_cast<const QSet<QUmlSlot *> *>(&_slot_));
-}
+ // This is a read-write association end
-/*!
- A specification of how to compute, derive, or construct the instance.
- */
-QUmlValueSpecification *QUmlInstanceSpecification::specification() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_specification);
+ return _slot_;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInstanceSpecification::allOwnedElements() const
+void QUmlInstanceSpecification::addSlot(QUmlSlot *slot_)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInstanceSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (!_slot_.contains(slot_)) {
+ _slot_.insert(slot_);
+ if (slot_->asQObject() && this->asQObject())
+ QObject::connect(slot_->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSlot(QObject *)));
+ slot_->asQObject()->setParent(this->asQObject());
-// OPERATIONS [NamedElement]
+ // Adjust subsetted properties
+ addOwnedElement(slot_);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInstanceSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInstanceSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (slot_) {
+ slot_->setOwningInstance(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlInstanceSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlInstanceSpecification::removeSlot(QUmlSlot *slot_)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInstanceSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_slot_.contains(slot_)) {
+ _slot_.remove(slot_);
+ if (slot_->asQObject())
+ slot_->asQObject()->setParent(0);
-// OPERATIONS [ParameterableElement]
+ // Adjust subsetted properties
+ removeOwnedElement(slot_);
-/*!
- 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.
- */
-bool QUmlInstanceSpecification::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (slot_) {
+ slot_->setOwningInstance(0);
+ }
+ }
}
/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ A specification of how to compute, derive, or construct the instance.
*/
-bool QUmlInstanceSpecification::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInstanceSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInstanceSpecification::removeOwnedComment(UmlComment *ownedComment)
+QUmlValueSpecification *
+QUmlInstanceSpecification::specification() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInstanceSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ return _specification;
}
-void QUmlInstanceSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInstanceSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInstanceSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInstanceSpecification::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlInstanceSpecification::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInstanceSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlInstanceSpecification::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlInstanceSpecification::removeDeployment(UmlDeployment *deployment)
+void QUmlInstanceSpecification::setSpecification(QUmlValueSpecification *specification)
{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [InstanceSpecification]
+ if (_specification != specification) {
+ // Adjust subsetted properties
+ removeOwnedElement(_specification);
-void QUmlInstanceSpecification::addClassifier(UmlClassifier *classifier)
-{
- UmlInstanceSpecification::addClassifier(classifier);
-}
+ _specification = specification;
+ if (specification->asQObject() && this->asQObject())
+ QObject::connect(specification->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecification()));
+ specification->asQObject()->setParent(this->asQObject());
-void QUmlInstanceSpecification::removeClassifier(UmlClassifier *classifier)
-{
- UmlInstanceSpecification::removeClassifier(classifier);
-}
-
-void QUmlInstanceSpecification::addSlot(UmlSlot *slot_)
-{
- UmlInstanceSpecification::addSlot(slot_);
+ // Adjust subsetted properties
+ if (specification) {
+ addOwnedElement(specification);
+ }
+ }
}
-void QUmlInstanceSpecification::removeSlot(UmlSlot *slot_)
-{
- UmlInstanceSpecification::removeSlot(slot_);
-}
-
-void QUmlInstanceSpecification::setSpecification(QUmlValueSpecification *specification)
-{
- UmlInstanceSpecification::setSpecification(specification);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinstancespecification.h b/src/uml/qumlinstancespecification.h
index 375ba04a..5f172ade 100644
--- a/src/uml/qumlinstancespecification.h
+++ b/src/uml/qumlinstancespecification.h
@@ -43,10 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinstancespecification_p.h"
+#include <QtUml/QUmlDeployedArtifact>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlDeploymentTarget>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,133 +55,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlParameterableElement;
class QUmlSlot;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlInstanceSpecification : public QObject, public UmlInstanceSpecification
+class Q_UML_EXPORT QUmlInstanceSpecification : public QUmlDeployedArtifact, public QUmlPackageableElement, public QUmlDeploymentTarget
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [InstanceSpecification]
- Q_PROPERTY(QSet<QUmlClassifier *> classifier READ classifier)
- Q_PROPERTY(QSet<QUmlSlot *> slot_ READ slot_)
- Q_PROPERTY(QUmlValueSpecification * specification READ specification)
-
public:
- Q_INVOKABLE explicit QUmlInstanceSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Owned attributes [InstanceSpecification]
- Q_INVOKABLE const QSet<QUmlClassifier *> classifier() const;
- Q_INVOKABLE const QSet<QUmlSlot *> slot_() const;
- Q_INVOKABLE QUmlValueSpecification *specification() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
-
- // Slots for owned attributes [InstanceSpecification]
- void addClassifier(UmlClassifier *classifier);
- void removeClassifier(UmlClassifier *classifier);
- void addSlot(UmlSlot *slot_);
- void removeSlot(UmlSlot *slot_);
+ explicit QUmlInstanceSpecification(bool createQObject = true);
+ virtual ~QUmlInstanceSpecification();
+
+ // Owned attributes
+ const QSet<QUmlClassifier *> classifier() const;
+ void addClassifier(QUmlClassifier *classifier);
+ void removeClassifier(QUmlClassifier *classifier);
+ const QSet<QUmlSlot *> slot_() const;
+ void addSlot(QUmlSlot *slot_);
+ void removeSlot(QUmlSlot *slot_);
+ QUmlValueSpecification *specification() const;
void setSpecification(QUmlValueSpecification *specification);
+
+protected:
+ QSet<QUmlClassifier *> _classifier;
+ QSet<QUmlSlot *> _slot_;
+ QUmlValueSpecification *_specification;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInstanceSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlInstanceSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInstanceSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInstanceSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlinstancevalue.cpp b/src/uml/qumlinstancevalue.cpp
index 62ad16e3..2e0f307f 100644
--- a/src/uml/qumlinstancevalue.cpp
+++ b/src/uml/qumlinstancevalue.cpp
@@ -40,350 +40,53 @@
****************************************************************************/
#include "qumlinstancevalue.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInstanceSpecification>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
+#include "private/qumlinstancevalueobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInstanceSpecification>
/*!
- \class UmlInstanceValue
+ \class QUmlInstanceValue
\inmodule QtUml
\brief An instance value is a value specification that identifies an instance.
*/
-
-QUmlInstanceValue::QUmlInstanceValue(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInstanceValue::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInstanceValue::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInstanceValue::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInstanceValue::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInstanceValue::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInstanceValue::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInstanceValue::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInstanceValue::qualifiedName() const
+QUmlInstanceValue::QUmlInstanceValue(bool createQObject) :
+ _instance(0)
{
- return UmlNamedElement::qualifiedName();
+ if (createQObject)
+ _qObject = new QUmlInstanceValueObject(this);
}
-// OWNED ATTRIBUTES [TypedElement]
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlInstanceValue::type() const
+QUmlInstanceValue::~QUmlInstanceValue()
{
- return reinterpret_cast<QUmlType *>(_type);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInstanceValue::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlInstanceValue::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInstanceValue::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InstanceValue]
+// OWNED ATTRIBUTES
/*!
The instance that is the specified value.
*/
-QUmlInstanceSpecification *QUmlInstanceValue::instance() const
+QUmlInstanceSpecification *
+QUmlInstanceValue::instance() const
{
- return reinterpret_cast<QUmlInstanceSpecification *>(_instance);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInstanceValue::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInstanceValue::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInstanceValue::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInstanceValue::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInstanceValue::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _instance;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInstanceValue::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInstanceValue::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlInstanceValue::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlInstanceValue::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlInstanceValue::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- 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.
- */
-bool QUmlInstanceValue::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlInstanceValue::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlInstanceValue::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlInstanceValue::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
-
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlInstanceValue::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInstanceValue::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInstanceValue::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInstanceValue::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInstanceValue::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInstanceValue::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInstanceValue::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlInstanceValue::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInstanceValue::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlInstanceValue::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInstanceValue::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InstanceValue]
-
void QUmlInstanceValue::setInstance(QUmlInstanceSpecification *instance)
{
- UmlInstanceValue::setInstance(instance);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_instance != instance) {
+ _instance = instance;
+ if (instance->asQObject() && this->asQObject())
+ QObject::connect(instance->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInstance()));
+ }
+}
diff --git a/src/uml/qumlinstancevalue.h b/src/uml/qumlinstancevalue.h
index c641fc64..fdadaaae 100644
--- a/src/uml/qumlinstancevalue.h
+++ b/src/uml/qumlinstancevalue.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinstancevalue_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,129 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlInstanceSpecification;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class Q_UML_EXPORT QUmlInstanceValue : public QObject, public UmlInstanceValue
+class Q_UML_EXPORT QUmlInstanceValue : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InstanceValue]
- Q_PROPERTY(QUmlInstanceSpecification * instance READ instance)
-
public:
- Q_INVOKABLE explicit QUmlInstanceValue(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlInstanceValue(bool createQObject = true);
+ virtual ~QUmlInstanceValue();
- // Owned attributes [InstanceValue]
- Q_INVOKABLE QUmlInstanceSpecification *instance() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InstanceValue]
+ // Owned attributes
+ QUmlInstanceSpecification *instance() const;
void setInstance(QUmlInstanceSpecification *instance);
+
+protected:
+ QUmlInstanceSpecification *_instance;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInstanceValue *)
-Q_DECLARE_METATYPE(QList<QUmlInstanceValue *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInstanceValue *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInstanceValue) *)
QT_END_HEADER
diff --git a/src/uml/qumlinteraction.cpp b/src/uml/qumlinteraction.cpp
index ab8f98fa..14ef94b3 100644
--- a/src/uml/qumlinteraction.cpp
+++ b/src/uml/qumlinteraction.cpp
@@ -40,1339 +40,263 @@
****************************************************************************/
#include "qumlinteraction.h"
+#include "private/qumlinteractionobject_p.h"
+
#include <QtUml/QUmlAction>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
#include <QtUml/QUmlGate>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlInterfaceRealization>
#include <QtUml/QUmlLifeline>
#include <QtUml/QUmlMessage>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInteraction
+ \class QUmlInteraction
\inmodule QtUml
\brief An interaction is a unit of behavior that focuses on the observable exchange of information between connectable elements.
*/
-
-QUmlInteraction::QUmlInteraction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInteraction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInteraction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInteraction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInteraction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInteraction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInteraction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInteraction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInteraction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlInteraction::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlInteraction::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlInteraction::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlInteraction::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlInteraction::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlInteraction::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInteraction::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInteraction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlInteraction::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlInteraction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlInteraction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlInteraction::redefinitionContext() const
+QUmlInteraction::QUmlInteraction(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (createQObject)
+ _qObject = new QUmlInteractionObject(this);
}
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlInteraction::templateBinding() const
+QUmlInteraction::~QUmlInteraction()
{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlInteraction::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlInteraction::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlInteraction::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlInteraction::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlInteraction::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlInteraction::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlInteraction::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlInteraction::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlInteraction::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlInteraction::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlInteraction::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
+// OWNED ATTRIBUTES
/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlInteraction::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlInteraction::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlInteraction::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlInteraction::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlInteraction::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlInteraction::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlInteraction::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlInteraction::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlInteraction::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlInteraction::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlInteraction::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlInteraction::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlInteraction::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlInteraction::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlInteraction::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlInteraction::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlInteraction::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlInteraction::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlInteraction::context() const
-{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
-
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlInteraction::isReentrant() const
-{
- return _isReentrant;
-}
-
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlInteraction::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
-
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlInteraction::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
-
-/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
- */
-const QSet<QUmlConstraint *> QUmlInteraction::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
-
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlInteraction::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
-
-/*!
- 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.
+ Actions owned by the Interaction.
*/
-const QSet<QUmlBehavior *> QUmlInteraction::redefinedBehavior() const
+const QSet<QUmlAction *>
+QUmlInteraction::action() const
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_redefinedBehavior));
-}
+ // This is a read-write association end
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlInteraction::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
+ return _action;
}
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlInteraction::covered() const
+void QUmlInteraction::addAction(QUmlAction *action)
{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
+ // This is a read-write association end
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlInteraction::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
+ if (!_action.contains(action)) {
+ _action.insert(action);
+ if (action->asQObject() && this->asQObject())
+ QObject::connect(action->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeAction(QObject *)));
+ action->asQObject()->setParent(this->asQObject());
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlInteraction::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
+ // Adjust subsetted properties
+ addOwnedElement(action);
+ }
}
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlInteraction::generalOrdering() const
+void QUmlInteraction::removeAction(QUmlAction *action)
{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Interaction]
+ if (_action.contains(action)) {
+ _action.remove(action);
+ if (action->asQObject())
+ action->asQObject()->setParent(0);
-/*!
- Actions owned by the Interaction.
- */
-const QSet<QUmlAction *> QUmlInteraction::action() const
-{
- return *(reinterpret_cast<const QSet<QUmlAction *> *>(&_action));
+ // Adjust subsetted properties
+ removeOwnedElement(action);
+ }
}
/*!
Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.
*/
-const QSet<QUmlGate *> QUmlInteraction::formalGate() const
-{
- return *(reinterpret_cast<const QSet<QUmlGate *> *>(&_formalGate));
-}
-
-/*!
- The ordered set of fragments in the Interaction.
- */
-const QList<QUmlInteractionFragment *> QUmlInteraction::fragment() const
+const QSet<QUmlGate *>
+QUmlInteraction::formalGate() const
{
- return *(reinterpret_cast<const QList<QUmlInteractionFragment *> *>(&_fragment));
-}
+ // This is a read-write association end
-/*!
- Specifies the participants in this Interaction.
- */
-const QSet<QUmlLifeline *> QUmlInteraction::lifeline() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_lifeline));
+ return _formalGate;
}
-/*!
- The Messages contained in this Interaction.
- */
-const QSet<QUmlMessage *> QUmlInteraction::message() const
+void QUmlInteraction::addFormalGate(QUmlGate *formalGate)
{
- return *(reinterpret_cast<const QSet<QUmlMessage *> *>(&_message));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_formalGate.contains(formalGate)) {
+ _formalGate.insert(formalGate);
+ if (formalGate->asQObject() && this->asQObject())
+ QObject::connect(formalGate->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeFormalGate(QObject *)));
+ formalGate->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInteraction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(formalGate);
+ }
}
-/*!
- 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.
- */
-bool QUmlInteraction::mustBeOwned() const
+void QUmlInteraction::removeFormalGate(QUmlGate *formalGate)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_formalGate.contains(formalGate)) {
+ _formalGate.remove(formalGate);
+ if (formalGate->asQObject())
+ formalGate->asQObject()->setParent(0);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInteraction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedMember(formalGate);
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ The ordered set of fragments in the Interaction.
*/
-QSet<QUmlPackage *> QUmlInteraction::allOwningPackages() const
+const QList<QUmlInteractionFragment *>
+QUmlInteraction::fragment() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInteraction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _fragment;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInteraction::separator() const
+void QUmlInteraction::addFragment(QUmlInteractionFragment *fragment)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
+ // This is a read-write association end
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlInteraction::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ if (!_fragment.contains(fragment)) {
+ _fragment.append(fragment);
+ if (fragment->asQObject() && this->asQObject())
+ QObject::connect(fragment->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeFragment(QObject *)));
+ fragment->asQObject()->setParent(this->asQObject());
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlInteraction::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // Adjust subsetted properties
+ addOwnedMember(fragment);
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlInteraction::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (fragment) {
+ fragment->setEnclosingInteraction(this);
+ }
+ }
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlInteraction::membersAreDistinguishable() const
+void QUmlInteraction::removeFragment(QUmlInteractionFragment *fragment)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (_fragment.contains(fragment)) {
+ _fragment.removeAll(fragment);
+ if (fragment->asQObject())
+ fragment->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlInteraction::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(fragment);
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInteraction::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ // Adjust opposite properties
+ if (fragment) {
+ fragment->setEnclosingInteraction(0);
+ }
+ }
}
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
/*!
- 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.
- */
-bool QUmlInteraction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ Specifies the participants in this Interaction.
*/
-bool QUmlInteraction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+const QSet<QUmlLifeline *>
+QUmlInteraction::lifeline() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlInteraction::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
+ return _lifeline;
}
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlInteraction::allFeatures() const
+void QUmlInteraction::addLifeline(QUmlLifeline *lifeline)
{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlInteraction::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ if (!_lifeline.contains(lifeline)) {
+ _lifeline.insert(lifeline);
+ if (lifeline->asQObject() && this->asQObject())
+ QObject::connect(lifeline->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeLifeline(QObject *)));
+ lifeline->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlInteraction::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
+ // Adjust subsetted properties
+ addOwnedMember(lifeline);
-/*!
- 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.
- */
-bool QUmlInteraction::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ // Adjust opposite properties
+ if (lifeline) {
+ lifeline->setInteraction(this);
+ }
+ }
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlInteraction::inheritableMembers(QUmlClassifier *c) const
+void QUmlInteraction::removeLifeline(QUmlLifeline *lifeline)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlInteraction::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ if (_lifeline.contains(lifeline)) {
+ _lifeline.remove(lifeline);
+ if (lifeline->asQObject())
+ lifeline->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlInteraction::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(lifeline);
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlInteraction::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (lifeline) {
+ lifeline->setInteraction(0);
+ }
+ }
}
-// OPERATIONS [Class]
-
/*!
- The inherit operation is overridden to exclude redefined properties.
+ The Messages contained in this Interaction.
*/
-QSet<QUmlNamedElement *> QUmlInteraction::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInteraction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInteraction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInteraction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInteraction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInteraction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInteraction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlInteraction::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlInteraction::removeElementImport(UmlElementImport *elementImport)
+const QSet<QUmlMessage *>
+QUmlInteraction::message() const
{
- UmlNamespace::removeElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlInteraction::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
+ return _message;
}
-void QUmlInteraction::removeOwnedRule(UmlConstraint *ownedRule)
+void QUmlInteraction::addMessage(QUmlMessage *message)
{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // This is a read-write association end
-void QUmlInteraction::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
+ if (!_message.contains(message)) {
+ _message.insert(message);
+ if (message->asQObject() && this->asQObject())
+ QObject::connect(message->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMessage(QObject *)));
+ message->asQObject()->setParent(this->asQObject());
-void QUmlInteraction::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
+ // Adjust subsetted properties
+ addOwnedMember(message);
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInteraction::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
+ // Adjust opposite properties
+ if (message) {
+ message->setInteraction(this);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-void QUmlInteraction::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlInteraction::removeMessage(QUmlMessage *message)
{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlInteraction::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+ if (_message.contains(message)) {
+ _message.remove(message);
+ if (message->asQObject())
+ message->asQObject()->setParent(0);
-void QUmlInteraction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+ // Adjust subsetted properties
+ removeOwnedMember(message);
-void QUmlInteraction::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
+ // Adjust opposite properties
+ if (message) {
+ message->setInteraction(0);
+ }
+ }
}
-void QUmlInteraction::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlInteraction::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlInteraction::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlInteraction::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlInteraction::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlInteraction::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlInteraction::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlInteraction::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlInteraction::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlInteraction::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlInteraction::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlInteraction::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlInteraction::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlInteraction::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlInteraction::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlInteraction::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlInteraction::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlInteraction::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlInteraction::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlInteraction::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlInteraction::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlInteraction::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlInteraction::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlInteraction::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlInteraction::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlInteraction::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlInteraction::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlInteraction::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlInteraction::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlInteraction::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlInteraction::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlInteraction::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlInteraction::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlInteraction::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlInteraction::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlInteraction::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlInteraction::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlInteraction::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlInteraction::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlInteraction::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlInteraction::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlInteraction::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlInteraction::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlInteraction::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlInteraction::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlInteraction::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlInteraction::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlInteraction::addRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::addRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlInteraction::removeRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::removeRedefinedBehavior(redefinedBehavior);
-}
-
-void QUmlInteraction::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlInteraction::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlInteraction::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlInteraction::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlInteraction::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlInteraction::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlInteraction::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Interaction]
-
-void QUmlInteraction::addAction(UmlAction *action)
-{
- UmlInteraction::addAction(action);
-}
-
-void QUmlInteraction::removeAction(UmlAction *action)
-{
- UmlInteraction::removeAction(action);
-}
-
-void QUmlInteraction::addFormalGate(UmlGate *formalGate)
-{
- UmlInteraction::addFormalGate(formalGate);
-}
-
-void QUmlInteraction::removeFormalGate(UmlGate *formalGate)
-{
- UmlInteraction::removeFormalGate(formalGate);
-}
-
-void QUmlInteraction::addFragment(UmlInteractionFragment *fragment)
-{
- UmlInteraction::addFragment(fragment);
-}
-
-void QUmlInteraction::removeFragment(UmlInteractionFragment *fragment)
-{
- UmlInteraction::removeFragment(fragment);
-}
-
-void QUmlInteraction::addLifeline(UmlLifeline *lifeline)
-{
- UmlInteraction::addLifeline(lifeline);
-}
-
-void QUmlInteraction::removeLifeline(UmlLifeline *lifeline)
-{
- UmlInteraction::removeLifeline(lifeline);
-}
-
-void QUmlInteraction::addMessage(UmlMessage *message)
-{
- UmlInteraction::addMessage(message);
-}
-
-void QUmlInteraction::removeMessage(UmlMessage *message)
-{
- UmlInteraction::removeMessage(message);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinteraction.h b/src/uml/qumlinteraction.h
index 49f7a3d8..fa22e312 100644
--- a/src/uml/qumlinteraction.h
+++ b/src/uml/qumlinteraction.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinteraction_p.h"
+#include <QtUml/QUmlBehavior>
+#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,423 +54,44 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlAction;
-class QUmlBehavior;
-class QUmlBehavioralFeature;
-class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
class QUmlGate;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlGeneralOrdering;
-class QUmlInteractionFragment;
-class QUmlInteractionOperand;
-class QUmlInterfaceRealization;
class QUmlLifeline;
class QUmlMessage;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlInteraction : public QObject, public UmlInteraction
+class Q_UML_EXPORT QUmlInteraction : public QUmlBehavior, public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QSet<QUmlBehavior *> redefinedBehavior READ redefinedBehavior)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [Interaction]
- Q_PROPERTY(QSet<QUmlAction *> action READ action)
- Q_PROPERTY(QSet<QUmlGate *> formalGate READ formalGate)
- Q_PROPERTY(QList<QUmlInteractionFragment *> fragment READ fragment)
- Q_PROPERTY(QSet<QUmlLifeline *> lifeline READ lifeline)
- Q_PROPERTY(QSet<QUmlMessage *> message READ message)
-
public:
- Q_INVOKABLE explicit QUmlInteraction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> redefinedBehavior() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [Interaction]
- Q_INVOKABLE const QSet<QUmlAction *> action() const;
- Q_INVOKABLE const QSet<QUmlGate *> formalGate() const;
- Q_INVOKABLE const QList<QUmlInteractionFragment *> fragment() const;
- Q_INVOKABLE const QSet<QUmlLifeline *> lifeline() const;
- Q_INVOKABLE const QSet<QUmlMessage *> message() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Slots for owned attributes [Behavior]
- void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void addRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void removeRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void setSpecification(QUmlBehavioralFeature *specification);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [Interaction]
- void addAction(UmlAction *action);
- void removeAction(UmlAction *action);
- void addFormalGate(UmlGate *formalGate);
- void removeFormalGate(UmlGate *formalGate);
- void addFragment(UmlInteractionFragment *fragment);
- void removeFragment(UmlInteractionFragment *fragment);
- void addLifeline(UmlLifeline *lifeline);
- void removeLifeline(UmlLifeline *lifeline);
- void addMessage(UmlMessage *message);
- void removeMessage(UmlMessage *message);
+ explicit QUmlInteraction(bool createQObject = true);
+ virtual ~QUmlInteraction();
+
+ // Owned attributes
+ const QSet<QUmlAction *> action() const;
+ void addAction(QUmlAction *action);
+ void removeAction(QUmlAction *action);
+ const QSet<QUmlGate *> formalGate() const;
+ void addFormalGate(QUmlGate *formalGate);
+ void removeFormalGate(QUmlGate *formalGate);
+ const QList<QUmlInteractionFragment *> fragment() const;
+ void addFragment(QUmlInteractionFragment *fragment);
+ void removeFragment(QUmlInteractionFragment *fragment);
+ const QSet<QUmlLifeline *> lifeline() const;
+ void addLifeline(QUmlLifeline *lifeline);
+ void removeLifeline(QUmlLifeline *lifeline);
+ const QSet<QUmlMessage *> message() const;
+ void addMessage(QUmlMessage *message);
+ void removeMessage(QUmlMessage *message);
+
+protected:
+ QSet<QUmlAction *> _action;
+ QSet<QUmlGate *> _formalGate;
+ QList<QUmlInteractionFragment *> _fragment;
+ QSet<QUmlLifeline *> _lifeline;
+ QSet<QUmlMessage *> _message;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInteraction *)
-Q_DECLARE_METATYPE(QList<QUmlInteraction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInteraction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInteraction) *)
QT_END_HEADER
diff --git a/src/uml/qumlinteractionconstraint.cpp b/src/uml/qumlinteractionconstraint.cpp
index 5fe44423..bcadba41 100644
--- a/src/uml/qumlinteractionconstraint.cpp
+++ b/src/uml/qumlinteractionconstraint.cpp
@@ -40,335 +40,95 @@
****************************************************************************/
#include "qumlinteractionconstraint.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlinteractionconstraintobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlValueSpecification>
/*!
- \class UmlInteractionConstraint
+ \class QUmlInteractionConstraint
\inmodule QtUml
\brief An interaction constraint is a Boolean expression that guards an operand in a combined fragment.
*/
-
-QUmlInteractionConstraint::QUmlInteractionConstraint(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInteractionConstraint::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInteractionConstraint::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInteractionConstraint::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInteractionConstraint::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlInteractionConstraint::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInteractionConstraint::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInteractionConstraint::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInteractionConstraint::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInteractionConstraint::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInteractionConstraint::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInteractionConstraint::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Constraint]
-
-/*!
- The ordered set of Elements referenced by this Constraint.
- */
-const QList<QUmlElement *> QUmlInteractionConstraint::constrainedElement() const
-{
- return *(reinterpret_cast<const QList<QUmlElement *> *>(&_constrainedElement));
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInteractionConstraint::context() const
+QUmlInteractionConstraint::QUmlInteractionConstraint(bool createQObject) :
+ QUmlConstraint(false),
+ _maxint(0),
+ _minint(0)
{
- return reinterpret_cast<QUmlNamespace *>(_context);
+ if (createQObject)
+ _qObject = new QUmlInteractionConstraintObject(this);
}
-/*!
- A condition that must be true when evaluated in order for the constraint to be satisfied.
- */
-QUmlValueSpecification *QUmlInteractionConstraint::specification() const
+QUmlInteractionConstraint::~QUmlInteractionConstraint()
{
- return reinterpret_cast<QUmlValueSpecification *>(_specification);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [InteractionConstraint]
+// OWNED ATTRIBUTES
/*!
The maximum number of iterations of a loop
*/
-QUmlValueSpecification *QUmlInteractionConstraint::maxint() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_maxint);
-}
-
-/*!
- The minimum number of iterations of a loop
- */
-QUmlValueSpecification *QUmlInteractionConstraint::minint() const
+QUmlValueSpecification *
+QUmlInteractionConstraint::maxint() const
{
- return reinterpret_cast<QUmlValueSpecification *>(_minint);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInteractionConstraint::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInteractionConstraint::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInteractionConstraint::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _maxint;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInteractionConstraint::isTemplateParameter() const
+void QUmlInteractionConstraint::setMaxint(QUmlValueSpecification *maxint)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_maxint != maxint) {
+ // Adjust subsetted properties
+ removeOwnedElement(_maxint);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInteractionConstraint::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInteractionConstraint::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ _maxint = maxint;
+ if (maxint->asQObject() && this->asQObject())
+ QObject::connect(maxint->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMaxint()));
+ maxint->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlInteractionConstraint::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ if (maxint) {
+ addOwnedElement(maxint);
+ }
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The minimum number of iterations of a loop
*/
-QString QUmlInteractionConstraint::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInteractionConstraint::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInteractionConstraint::removeOwnedComment(UmlComment *ownedComment)
+QUmlValueSpecification *
+QUmlInteractionConstraint::minint() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInteractionConstraint::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlInteractionConstraint::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInteractionConstraint::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInteractionConstraint::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInteractionConstraint::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInteractionConstraint::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInteractionConstraint::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Constraint]
-
-void QUmlInteractionConstraint::addConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::addConstrainedElement(constrainedElement);
-}
-
-void QUmlInteractionConstraint::removeConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::removeConstrainedElement(constrainedElement);
-}
+ // This is a read-write association end
-void QUmlInteractionConstraint::setContext(QUmlNamespace *context)
-{
- UmlConstraint::setContext(context);
+ return _minint;
}
-void QUmlInteractionConstraint::setSpecification(QUmlValueSpecification *specification)
+void QUmlInteractionConstraint::setMinint(QUmlValueSpecification *minint)
{
- UmlConstraint::setSpecification(specification);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [InteractionConstraint]
+ if (_minint != minint) {
+ // Adjust subsetted properties
+ removeOwnedElement(_minint);
-void QUmlInteractionConstraint::setMaxint(QUmlValueSpecification *maxint)
-{
- UmlInteractionConstraint::setMaxint(maxint);
-}
+ _minint = minint;
+ if (minint->asQObject() && this->asQObject())
+ QObject::connect(minint->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMinint()));
+ minint->asQObject()->setParent(this->asQObject());
-void QUmlInteractionConstraint::setMinint(QUmlValueSpecification *minint)
-{
- UmlInteractionConstraint::setMinint(minint);
+ // Adjust subsetted properties
+ if (minint) {
+ addOwnedElement(minint);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinteractionconstraint.h b/src/uml/qumlinteractionconstraint.h
index 0e36a36a..b3e0f54d 100644
--- a/src/uml/qumlinteractionconstraint.h
+++ b/src/uml/qumlinteractionconstraint.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinteractionconstraint_p.h"
+#include <QtUml/QUmlConstraint>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,129 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlInteractionConstraint : public QObject, public UmlInteractionConstraint
+class Q_UML_EXPORT QUmlInteractionConstraint : public QUmlConstraint
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Constraint]
- Q_PROPERTY(QList<QUmlElement *> constrainedElement READ constrainedElement)
- Q_PROPERTY(QUmlNamespace * context READ context)
- Q_PROPERTY(QUmlValueSpecification * specification READ specification)
-
- // Properties [InteractionConstraint]
- Q_PROPERTY(QUmlValueSpecification * maxint READ maxint)
- Q_PROPERTY(QUmlValueSpecification * minint READ minint)
-
public:
- Q_INVOKABLE explicit QUmlInteractionConstraint(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Constraint]
- Q_INVOKABLE const QList<QUmlElement *> constrainedElement() const;
- Q_INVOKABLE QUmlNamespace *context() const;
- Q_INVOKABLE QUmlValueSpecification *specification() const;
+ explicit QUmlInteractionConstraint(bool createQObject = true);
+ virtual ~QUmlInteractionConstraint();
- // Owned attributes [InteractionConstraint]
- Q_INVOKABLE QUmlValueSpecification *maxint() const;
- Q_INVOKABLE QUmlValueSpecification *minint() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Constraint]
- void addConstrainedElement(UmlElement *constrainedElement);
- void removeConstrainedElement(UmlElement *constrainedElement);
- void setContext(QUmlNamespace *context);
- void setSpecification(QUmlValueSpecification *specification);
-
- // Slots for owned attributes [InteractionConstraint]
+ // Owned attributes
+ QUmlValueSpecification *maxint() const;
void setMaxint(QUmlValueSpecification *maxint);
+ QUmlValueSpecification *minint() const;
void setMinint(QUmlValueSpecification *minint);
+
+protected:
+ QUmlValueSpecification *_maxint;
+ QUmlValueSpecification *_minint;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInteractionConstraint *)
-Q_DECLARE_METATYPE(QList<QUmlInteractionConstraint *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInteractionConstraint *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInteractionConstraint) *)
QT_END_HEADER
diff --git a/src/uml/qumlinteractionfragment.cpp b/src/uml/qumlinteractionfragment.cpp
index 86ebaee1..d984fdc1 100644
--- a/src/uml/qumlinteractionfragment.cpp
+++ b/src/uml/qumlinteractionfragment.cpp
@@ -40,274 +40,162 @@
****************************************************************************/
#include "qumlinteractionfragment.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlGeneralOrdering>
#include <QtUml/QUmlInteraction>
#include <QtUml/QUmlInteractionOperand>
#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInteractionFragment
+ \class QUmlInteractionFragment
\inmodule QtUml
\brief 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.
*/
-
-QUmlInteractionFragment::QUmlInteractionFragment(QObject *parent) :
- QObject(parent)
+QUmlInteractionFragment::QUmlInteractionFragment() :
+ _enclosingInteraction(0),
+ _enclosingOperand(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInteractionFragment::ownedComment() const
+QUmlInteractionFragment::~QUmlInteractionFragment()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInteractionFragment::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInteractionFragment::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
+ References the Lifelines that the InteractionFragment involves.
*/
-const QSet<QUmlDependency *> QUmlInteractionFragment::clientDependency() const
+const QSet<QUmlLifeline *>
+QUmlInteractionFragment::covered() const
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ // This is a read-write association end
-/*!
- The name of the NamedElement.
- */
-QString QUmlInteractionFragment::name() const
-{
- return _name;
+ return _covered;
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInteractionFragment::nameExpression() const
+void QUmlInteractionFragment::addCovered(QUmlLifeline *covered)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-write association end
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInteractionFragment::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ if (!_covered.contains(covered)) {
+ _covered.insert(covered);
+ if (covered->asQObject() && this->asQObject())
+ QObject::connect(covered->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeCovered(QObject *)));
-/*!
- 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.
- */
-QString QUmlInteractionFragment::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust opposite properties
+ if (covered) {
+ covered->addCoveredBy(this);
+ }
+ }
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInteractionFragment::visibility() const
+void QUmlInteractionFragment::removeCovered(QUmlLifeline *covered)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [InteractionFragment]
+ if (_covered.contains(covered)) {
+ _covered.remove(covered);
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlInteractionFragment::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
+ // Adjust opposite properties
+ if (covered) {
+ covered->removeCoveredBy(this);
+ }
+ }
}
/*!
The Interaction enclosing this InteractionFragment.
*/
-QUmlInteraction *QUmlInteractionFragment::enclosingInteraction() const
+QUmlInteraction *
+QUmlInteractionFragment::enclosingInteraction() const
{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
+ // This is a read-write association end
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlInteractionFragment::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlInteractionFragment::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
+ return _enclosingInteraction;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInteractionFragment::allOwnedElements() const
+void QUmlInteractionFragment::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInteractionFragment::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (_enclosingInteraction != enclosingInteraction) {
+ // Adjust subsetted properties
-// OPERATIONS [NamedElement]
+ _enclosingInteraction = enclosingInteraction;
+ if (enclosingInteraction->asQObject() && this->asQObject())
+ QObject::connect(enclosingInteraction->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEnclosingInteraction()));
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInteractionFragment::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ setNamespace(enclosingInteraction);
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ The operand enclosing this InteractionFragment (they may nest recursively)
*/
-QSet<QUmlPackage *> QUmlInteractionFragment::allOwningPackages() const
+QUmlInteractionOperand *
+QUmlInteractionFragment::enclosingOperand() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInteractionFragment::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _enclosingOperand;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInteractionFragment::separator() const
+void QUmlInteractionFragment::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ if (_enclosingOperand != enclosingOperand) {
+ // Adjust subsetted properties
-void QUmlInteractionFragment::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ _enclosingOperand = enclosingOperand;
+ if (enclosingOperand->asQObject() && this->asQObject())
+ QObject::connect(enclosingOperand->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEnclosingOperand()));
-void QUmlInteractionFragment::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ // Adjust subsetted properties
+ setNamespace(enclosingOperand);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInteractionFragment::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInteractionFragment::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInteractionFragment::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInteractionFragment::setNameExpression(QUmlStringExpression *nameExpression)
+/*!
+ The general ordering relationships contained in this fragment.
+ */
+const QSet<QUmlGeneralOrdering *>
+QUmlInteractionFragment::generalOrdering() const
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlInteractionFragment::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _generalOrdering;
}
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlInteractionFragment::addCovered(UmlLifeline *covered)
+void QUmlInteractionFragment::addGeneralOrdering(QUmlGeneralOrdering *generalOrdering)
{
- UmlInteractionFragment::addCovered(covered);
-}
+ // This is a read-write association end
-void QUmlInteractionFragment::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
+ if (!_generalOrdering.contains(generalOrdering)) {
+ _generalOrdering.insert(generalOrdering);
+ if (generalOrdering->asQObject() && this->asQObject())
+ QObject::connect(generalOrdering->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeGeneralOrdering(QObject *)));
+ generalOrdering->asQObject()->setParent(this->asQObject());
-void QUmlInteractionFragment::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
+ // Adjust subsetted properties
+ addOwnedElement(generalOrdering);
+ }
}
-void QUmlInteractionFragment::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
+void QUmlInteractionFragment::removeGeneralOrdering(QUmlGeneralOrdering *generalOrdering)
{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
+ // This is a read-write association end
-void QUmlInteractionFragment::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
+ if (_generalOrdering.contains(generalOrdering)) {
+ _generalOrdering.remove(generalOrdering);
+ if (generalOrdering->asQObject())
+ generalOrdering->asQObject()->setParent(0);
-void QUmlInteractionFragment::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
+ // Adjust subsetted properties
+ removeOwnedElement(generalOrdering);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinteractionfragment.h b/src/uml/qumlinteractionfragment.h
index 85544db0..7347aa28 100644
--- a/src/uml/qumlinteractionfragment.h
+++ b/src/uml/qumlinteractionfragment.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinteractionfragment_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,100 +52,40 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlGeneralOrdering;
class QUmlInteraction;
class QUmlInteractionOperand;
class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlInteractionFragment : public QObject, public UmlInteractionFragment
+class Q_UML_EXPORT QUmlInteractionFragment : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
public:
- Q_DECL_HIDDEN explicit QUmlInteractionFragment(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
+ virtual ~QUmlInteractionFragment();
+
+ // Owned attributes
+ const QSet<QUmlLifeline *> covered() const;
+ void addCovered(QUmlLifeline *covered);
+ void removeCovered(QUmlLifeline *covered);
+ QUmlInteraction *enclosingInteraction() const;
void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
+ QUmlInteractionOperand *enclosingOperand() const;
void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
+ const QSet<QUmlGeneralOrdering *> generalOrdering() const;
+ void addGeneralOrdering(QUmlGeneralOrdering *generalOrdering);
+ void removeGeneralOrdering(QUmlGeneralOrdering *generalOrdering);
+
+protected:
+ explicit QUmlInteractionFragment();
+
+ QSet<QUmlLifeline *> _covered;
+ QUmlInteraction *_enclosingInteraction;
+ QUmlInteractionOperand *_enclosingOperand;
+ QSet<QUmlGeneralOrdering *> _generalOrdering;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInteractionFragment *)
-Q_DECLARE_METATYPE(QList<QUmlInteractionFragment *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInteractionFragment *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInteractionFragment) *)
QT_END_HEADER
diff --git a/src/uml/qumlinteractionoperand.cpp b/src/uml/qumlinteractionoperand.cpp
index 7dcc08ba..54496d5a 100644
--- a/src/uml/qumlinteractionoperand.cpp
+++ b/src/uml/qumlinteractionoperand.cpp
@@ -40,439 +40,112 @@
****************************************************************************/
#include "qumlinteractionoperand.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionConstraint>
-#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlStringExpression>
+#include "private/qumlinteractionoperandobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInteractionConstraint>
/*!
- \class UmlInteractionOperand
+ \class QUmlInteractionOperand
\inmodule QtUml
\brief An interaction operand is contained in a combined fragment. An interaction operand represents one operand of the expression given by the enclosing combined fragment.
*/
-
-QUmlInteractionOperand::QUmlInteractionOperand(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInteractionOperand::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInteractionOperand::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInteractionOperand::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInteractionOperand::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInteractionOperand::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInteractionOperand::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInteractionOperand::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInteractionOperand::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInteractionOperand::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlInteractionOperand::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlInteractionOperand::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlInteractionOperand::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlInteractionOperand::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlInteractionOperand::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlInteractionOperand::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlInteractionOperand::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlInteractionOperand::ownedMember() const
+QUmlInteractionOperand::QUmlInteractionOperand(bool createQObject) :
+ _guard(0)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ if (createQObject)
+ _qObject = new QUmlInteractionOperandObject(this);
}
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlInteractionOperand::ownedRule() const
+QUmlInteractionOperand::~QUmlInteractionOperand()
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlInteractionOperand::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [InteractionOperand]
+// OWNED ATTRIBUTES
/*!
The fragments of the operand.
*/
-const QList<QUmlInteractionFragment *> QUmlInteractionOperand::fragment() const
-{
- return *(reinterpret_cast<const QList<QUmlInteractionFragment *> *>(&_fragment));
-}
-
-/*!
- Constraint of the operand.
- */
-QUmlInteractionConstraint *QUmlInteractionOperand::guard() const
+const QList<QUmlInteractionFragment *>
+QUmlInteractionOperand::fragment() const
{
- return reinterpret_cast<QUmlInteractionConstraint *>(_guard);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInteractionOperand::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _fragment;
}
-/*!
- 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.
- */
-bool QUmlInteractionOperand::mustBeOwned() const
+void QUmlInteractionOperand::addFragment(QUmlInteractionFragment *fragment)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInteractionOperand::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ if (!_fragment.contains(fragment)) {
+ _fragment.append(fragment);
+ if (fragment->asQObject() && this->asQObject())
+ QObject::connect(fragment->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeFragment(QObject *)));
+ fragment->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInteractionOperand::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addOwnedMember(fragment);
-/*!
- 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.
- */
-bool QUmlInteractionOperand::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust opposite properties
+ if (fragment) {
+ fragment->setEnclosingOperand(this);
+ }
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInteractionOperand::separator() const
+void QUmlInteractionOperand::removeFragment(QUmlInteractionFragment *fragment)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
+ // This is a read-write association end
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlInteractionOperand::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ if (_fragment.contains(fragment)) {
+ _fragment.removeAll(fragment);
+ if (fragment->asQObject())
+ fragment->asQObject()->setParent(0);
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlInteractionOperand::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(fragment);
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlInteractionOperand::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (fragment) {
+ fragment->setEnclosingOperand(0);
+ }
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ Constraint of the operand.
*/
-bool QUmlInteractionOperand::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInteractionOperand::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInteractionOperand::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInteractionOperand::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInteractionOperand::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInteractionOperand::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInteractionOperand::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlInteractionOperand::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlInteractionOperand::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlInteractionOperand::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlInteractionOperand::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlInteractionOperand::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlInteractionOperand::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlInteractionOperand::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlInteractionOperand::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlInteractionOperand::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlInteractionOperand::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlInteractionOperand::removeOwnedRule(UmlConstraint *ownedRule)
+QUmlInteractionConstraint *
+QUmlInteractionOperand::guard() const
{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // This is a read-write association end
-void QUmlInteractionOperand::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
+ return _guard;
}
-void QUmlInteractionOperand::removePackageImport(UmlPackageImport *packageImport)
+void QUmlInteractionOperand::setGuard(QUmlInteractionConstraint *guard)
{
- UmlNamespace::removePackageImport(packageImport);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [InteractionOperand]
+ if (_guard != guard) {
+ // Adjust subsetted properties
+ removeOwnedElement(_guard);
-void QUmlInteractionOperand::addFragment(UmlInteractionFragment *fragment)
-{
- UmlInteractionOperand::addFragment(fragment);
-}
+ _guard = guard;
+ if (guard->asQObject() && this->asQObject())
+ QObject::connect(guard->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setGuard()));
+ guard->asQObject()->setParent(this->asQObject());
-void QUmlInteractionOperand::removeFragment(UmlInteractionFragment *fragment)
-{
- UmlInteractionOperand::removeFragment(fragment);
-}
-
-void QUmlInteractionOperand::setGuard(QUmlInteractionConstraint *guard)
-{
- UmlInteractionOperand::setGuard(guard);
+ // Adjust subsetted properties
+ if (guard) {
+ addOwnedElement(guard);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinteractionoperand.h b/src/uml/qumlinteractionoperand.h
index 70034163..3f1f5670 100644
--- a/src/uml/qumlinteractionoperand.h
+++ b/src/uml/qumlinteractionoperand.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinteractionoperand_p.h"
+#include <QtUml/QUmlInteractionFragment>
+#include <QtUml/QUmlNamespace>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,148 +53,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
class QUmlInteractionConstraint;
-class QUmlInteractionFragment;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlInteractionOperand : public QObject, public UmlInteractionOperand
+class Q_UML_EXPORT QUmlInteractionOperand : public QUmlInteractionFragment, public QUmlNamespace
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [InteractionOperand]
- Q_PROPERTY(QList<QUmlInteractionFragment *> fragment READ fragment)
- Q_PROPERTY(QUmlInteractionConstraint * guard READ guard)
-
public:
- Q_INVOKABLE explicit QUmlInteractionOperand(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [InteractionOperand]
- Q_INVOKABLE const QList<QUmlInteractionFragment *> fragment() const;
- Q_INVOKABLE QUmlInteractionConstraint *guard() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [InteractionOperand]
- void addFragment(UmlInteractionFragment *fragment);
- void removeFragment(UmlInteractionFragment *fragment);
+ explicit QUmlInteractionOperand(bool createQObject = true);
+ virtual ~QUmlInteractionOperand();
+
+ // Owned attributes
+ const QList<QUmlInteractionFragment *> fragment() const;
+ void addFragment(QUmlInteractionFragment *fragment);
+ void removeFragment(QUmlInteractionFragment *fragment);
+ QUmlInteractionConstraint *guard() const;
void setGuard(QUmlInteractionConstraint *guard);
+
+protected:
+ QList<QUmlInteractionFragment *> _fragment;
+ QUmlInteractionConstraint *_guard;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInteractionOperand *)
-Q_DECLARE_METATYPE(QList<QUmlInteractionOperand *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInteractionOperand *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInteractionOperand) *)
QT_END_HEADER
diff --git a/src/uml/qumlinteractionuse.cpp b/src/uml/qumlinteractionuse.cpp
index 6f327a67..b497f7be 100644
--- a/src/uml/qumlinteractionuse.cpp
+++ b/src/uml/qumlinteractionuse.cpp
@@ -40,356 +40,191 @@
****************************************************************************/
#include "qumlinteractionuse.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
+#include "private/qumlinteractionuseobject_p.h"
+
#include <QtUml/QUmlGate>
-#include <QtUml/QUmlGeneralOrdering>
#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlInteractionUse
+ \class QUmlInteractionUse
\inmodule QtUml
\brief An interaction use refers to an interaction. The interaction use is a shorthand for copying the contents of the referenced interaction where the interaction use is. To be accurate the copying must take into account substituting parameters with arguments and connect the formal gates with the actual ones.
*/
-
-QUmlInteractionUse::QUmlInteractionUse(QObject *parent) :
- QObject(parent)
+QUmlInteractionUse::QUmlInteractionUse(bool createQObject) :
+ _refersTo(0),
+ _returnValue(0),
+ _returnValueRecipient(0)
{
+ if (createQObject)
+ _qObject = new QUmlInteractionUseObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInteractionUse::ownedComment() const
+QUmlInteractionUse::~QUmlInteractionUse()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInteractionUse::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The actual gates of the InteractionUse
*/
-QUmlElement *QUmlInteractionUse::owner() const
+const QSet<QUmlGate *>
+QUmlInteractionUse::actualGate() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInteractionUse::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _actualGate;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlInteractionUse::name() const
+void QUmlInteractionUse::addActualGate(QUmlGate *actualGate)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInteractionUse::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInteractionUse::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ if (!_actualGate.contains(actualGate)) {
+ _actualGate.insert(actualGate);
+ if (actualGate->asQObject() && this->asQObject())
+ QObject::connect(actualGate->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeActualGate(QObject *)));
+ actualGate->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-QString QUmlInteractionUse::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust subsetted properties
+ addOwnedElement(actualGate);
+ }
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInteractionUse::visibility() const
+void QUmlInteractionUse::removeActualGate(QUmlGate *actualGate)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [InteractionFragment]
+ if (_actualGate.contains(actualGate)) {
+ _actualGate.remove(actualGate);
+ if (actualGate->asQObject())
+ actualGate->asQObject()->setParent(0);
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlInteractionUse::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
+ // Adjust subsetted properties
+ removeOwnedElement(actualGate);
+ }
}
/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlInteractionUse::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlInteractionUse::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
+ The actual arguments of the Interaction
*/
-const QSet<QUmlGeneralOrdering *> QUmlInteractionUse::generalOrdering() const
+const QList<QUmlValueSpecification *>
+QUmlInteractionUse::argument() const
{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [InteractionUse]
-
-/*!
- The actual gates of the InteractionUse
- */
-const QSet<QUmlGate *> QUmlInteractionUse::actualGate() const
-{
- return *(reinterpret_cast<const QSet<QUmlGate *> *>(&_actualGate));
+ return _argument;
}
-/*!
- The actual arguments of the Interaction
- */
-const QList<QUmlValueSpecification *> QUmlInteractionUse::argument() const
+void QUmlInteractionUse::addArgument(QUmlValueSpecification *argument)
{
- return *(reinterpret_cast<const QList<QUmlValueSpecification *> *>(&_argument));
-}
+ // This is a read-write association end
-/*!
- Refers to the Interaction that defines its meaning
- */
-QUmlInteraction *QUmlInteractionUse::refersTo() const
-{
- return reinterpret_cast<QUmlInteraction *>(_refersTo);
-}
+ if (!_argument.contains(argument)) {
+ _argument.append(argument);
+ if (argument->asQObject() && this->asQObject())
+ QObject::connect(argument->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeArgument(QObject *)));
+ argument->asQObject()->setParent(this->asQObject());
-/*!
- The value of the executed Interaction.
- */
-QUmlValueSpecification *QUmlInteractionUse::returnValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_returnValue);
+ // Adjust subsetted properties
+ addOwnedElement(argument);
+ }
}
-/*!
- The recipient of the return value.
- */
-QUmlProperty *QUmlInteractionUse::returnValueRecipient() const
+void QUmlInteractionUse::removeArgument(QUmlValueSpecification *argument)
{
- return reinterpret_cast<QUmlProperty *>(_returnValueRecipient);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_argument.contains(argument)) {
+ _argument.removeAll(argument);
+ if (argument->asQObject())
+ argument->asQObject()->setParent(0);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInteractionUse::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedElement(argument);
+ }
}
/*!
- 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.
+ Refers to the Interaction that defines its meaning
*/
-bool QUmlInteractionUse::mustBeOwned() const
+QUmlInteraction *
+QUmlInteractionUse::refersTo() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInteractionUse::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _refersTo;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInteractionUse::allOwningPackages() const
+void QUmlInteractionUse::setRefersTo(QUmlInteraction *refersTo)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInteractionUse::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_refersTo != refersTo) {
+ _refersTo = refersTo;
+ if (refersTo->asQObject() && this->asQObject())
+ QObject::connect(refersTo->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRefersTo()));
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The value of the executed Interaction.
*/
-QString QUmlInteractionUse::separator() const
+QUmlValueSpecification *
+QUmlInteractionUse::returnValue() const
{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlInteractionUse::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInteractionUse::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInteractionUse::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInteractionUse::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInteractionUse::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInteractionUse::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlInteractionUse::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _returnValue;
}
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlInteractionUse::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlInteractionUse::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlInteractionUse::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlInteractionUse::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlInteractionUse::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlInteractionUse::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionUse]
-
-void QUmlInteractionUse::addActualGate(UmlGate *actualGate)
+void QUmlInteractionUse::setReturnValue(QUmlValueSpecification *returnValue)
{
- UmlInteractionUse::addActualGate(actualGate);
-}
+ // This is a read-write association end
-void QUmlInteractionUse::removeActualGate(UmlGate *actualGate)
-{
- UmlInteractionUse::removeActualGate(actualGate);
-}
+ if (_returnValue != returnValue) {
+ // Adjust subsetted properties
+ removeOwnedElement(_returnValue);
-void QUmlInteractionUse::addArgument(UmlValueSpecification *argument)
-{
- UmlInteractionUse::addArgument(argument);
-}
+ _returnValue = returnValue;
+ if (returnValue->asQObject() && this->asQObject())
+ QObject::connect(returnValue->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReturnValue()));
+ returnValue->asQObject()->setParent(this->asQObject());
-void QUmlInteractionUse::removeArgument(UmlValueSpecification *argument)
-{
- UmlInteractionUse::removeArgument(argument);
+ // Adjust subsetted properties
+ if (returnValue) {
+ addOwnedElement(returnValue);
+ }
+ }
}
-void QUmlInteractionUse::setRefersTo(QUmlInteraction *refersTo)
+/*!
+ The recipient of the return value.
+ */
+QUmlProperty *
+QUmlInteractionUse::returnValueRecipient() const
{
- UmlInteractionUse::setRefersTo(refersTo);
-}
+ // This is a read-write association end
-void QUmlInteractionUse::setReturnValue(QUmlValueSpecification *returnValue)
-{
- UmlInteractionUse::setReturnValue(returnValue);
+ return _returnValueRecipient;
}
void QUmlInteractionUse::setReturnValueRecipient(QUmlProperty *returnValueRecipient)
{
- UmlInteractionUse::setReturnValueRecipient(returnValueRecipient);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_returnValueRecipient != returnValueRecipient) {
+ _returnValueRecipient = returnValueRecipient;
+ if (returnValueRecipient->asQObject() && this->asQObject())
+ QObject::connect(returnValueRecipient->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReturnValueRecipient()));
+ }
+}
diff --git a/src/uml/qumlinteractionuse.h b/src/uml/qumlinteractionuse.h
index 240fe944..1ac36054 100644
--- a/src/uml/qumlinteractionuse.h
+++ b/src/uml/qumlinteractionuse.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinteractionuse_p.h"
+#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,126 +52,42 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlGate;
-class QUmlGeneralOrdering;
class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlProperty;
-class QUmlStringExpression;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlInteractionUse : public QObject, public UmlInteractionUse
+class Q_UML_EXPORT QUmlInteractionUse : public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [InteractionUse]
- Q_PROPERTY(QSet<QUmlGate *> actualGate READ actualGate)
- Q_PROPERTY(QList<QUmlValueSpecification *> argument READ argument)
- Q_PROPERTY(QUmlInteraction * refersTo READ refersTo)
- Q_PROPERTY(QUmlValueSpecification * returnValue READ returnValue)
- Q_PROPERTY(QUmlProperty * returnValueRecipient READ returnValueRecipient)
-
public:
- Q_INVOKABLE explicit QUmlInteractionUse(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [InteractionUse]
- Q_INVOKABLE const QSet<QUmlGate *> actualGate() const;
- Q_INVOKABLE const QList<QUmlValueSpecification *> argument() const;
- Q_INVOKABLE QUmlInteraction *refersTo() const;
- Q_INVOKABLE QUmlValueSpecification *returnValue() const;
- Q_INVOKABLE QUmlProperty *returnValueRecipient() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [InteractionUse]
- void addActualGate(UmlGate *actualGate);
- void removeActualGate(UmlGate *actualGate);
- void addArgument(UmlValueSpecification *argument);
- void removeArgument(UmlValueSpecification *argument);
+ explicit QUmlInteractionUse(bool createQObject = true);
+ virtual ~QUmlInteractionUse();
+
+ // Owned attributes
+ const QSet<QUmlGate *> actualGate() const;
+ void addActualGate(QUmlGate *actualGate);
+ void removeActualGate(QUmlGate *actualGate);
+ const QList<QUmlValueSpecification *> argument() const;
+ void addArgument(QUmlValueSpecification *argument);
+ void removeArgument(QUmlValueSpecification *argument);
+ QUmlInteraction *refersTo() const;
void setRefersTo(QUmlInteraction *refersTo);
+ QUmlValueSpecification *returnValue() const;
void setReturnValue(QUmlValueSpecification *returnValue);
+ QUmlProperty *returnValueRecipient() const;
void setReturnValueRecipient(QUmlProperty *returnValueRecipient);
+
+protected:
+ QSet<QUmlGate *> _actualGate;
+ QList<QUmlValueSpecification *> _argument;
+ QUmlInteraction *_refersTo;
+ QUmlValueSpecification *_returnValue;
+ QUmlProperty *_returnValueRecipient;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInteractionUse *)
-Q_DECLARE_METATYPE(QList<QUmlInteractionUse *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInteractionUse *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInteractionUse) *)
QT_END_HEADER
diff --git a/src/uml/qumlinterface.cpp b/src/uml/qumlinterface.cpp
index 9db6d69c..22433672 100644
--- a/src/uml/qumlinterface.cpp
+++ b/src/uml/qumlinterface.cpp
@@ -40,930 +40,288 @@
****************************************************************************/
#include "qumlinterface.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
+#include "private/qumlinterfaceobject_p.h"
+
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProperty>
#include <QtUml/QUmlProtocolStateMachine>
#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInterface
+ \class QUmlInterface
\inmodule QtUml
\brief 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.Interfaces may include receptions (in addition to operations).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.
*/
-
-QUmlInterface::QUmlInterface(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInterface::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInterface::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInterface::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInterface::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInterface::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInterface::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInterface::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInterface::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlInterface::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlInterface::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlInterface::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlInterface::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlInterface::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlInterface::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInterface::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInterface::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlInterface::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlInterface::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlInterface::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlInterface::redefinitionContext() const
+QUmlInterface::QUmlInterface(bool createQObject) :
+ _protocol(0)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (createQObject)
+ _qObject = new QUmlInterfaceObject(this);
}
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlInterface::templateBinding() const
+QUmlInterface::~QUmlInterface()
{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Classifier]
+// OWNED ATTRIBUTES
/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
+ References all the Classifiers that are defined (nested) within the Class.
*/
-const QSet<QUmlProperty *> QUmlInterface::attribute() const
+const QList<QUmlClassifier *>
+QUmlInterface::nestedClassifier() const
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
+ // This is a read-write association end
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlInterface::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
+ return _nestedClassifier;
}
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlInterface::feature() const
+void QUmlInterface::addNestedClassifier(QUmlClassifier *nestedClassifier)
{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
+ // This is a read-write association end
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlInterface::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ if (!_nestedClassifier.contains(nestedClassifier)) {
+ _nestedClassifier.append(nestedClassifier);
+ if (nestedClassifier->asQObject() && this->asQObject())
+ QObject::connect(nestedClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNestedClassifier(QObject *)));
+ nestedClassifier->asQObject()->setParent(this->asQObject());
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlInterface::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
+ // Adjust subsetted properties
+ addOwnedMember(nestedClassifier);
+ }
}
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlInterface::inheritedMember() const
+void QUmlInterface::removeNestedClassifier(QUmlClassifier *nestedClassifier)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInterface::isAbstract() const
-{
- return _isAbstract;
-}
+ if (_nestedClassifier.contains(nestedClassifier)) {
+ _nestedClassifier.removeAll(nestedClassifier);
+ if (nestedClassifier->asQObject())
+ nestedClassifier->asQObject()->setParent(0);
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlInterface::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlInterface::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
+ // Adjust subsetted properties
+ removeOwnedMember(nestedClassifier);
+ }
}
/*!
- References the use cases owned by this classifier.
+ The attributes (i.e. the properties) owned by the class.
*/
-const QSet<QUmlUseCase *> QUmlInterface::ownedUseCase() const
+const QList<QUmlProperty *>
+QUmlInterface::ownedAttribute() const
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
+ // This is a read-write association end
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlInterface::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
+ return _ownedAttribute;
}
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlInterface::redefinedClassifier() const
+void QUmlInterface::addOwnedAttribute(QUmlProperty *ownedAttribute)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
+ // This is a read-write association end
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlInterface::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
+ if (!_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.append(ownedAttribute);
+ if (ownedAttribute->asQObject() && this->asQObject())
+ QObject::connect(ownedAttribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedAttribute(QObject *)));
+ ownedAttribute->asQObject()->setParent(this->asQObject());
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlInterface::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
+ // Adjust subsetted properties
+ addOwnedMember(ownedAttribute);
+ addAttribute(ownedAttribute);
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlInterface::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
+ // Adjust opposite properties
+ if (ownedAttribute) {
+ ownedAttribute->setInterface(this);
+ }
+ }
}
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlInterface::useCase() const
+void QUmlInterface::removeOwnedAttribute(QUmlProperty *ownedAttribute)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Interface]
+ if (_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.removeAll(ownedAttribute);
+ if (ownedAttribute->asQObject())
+ ownedAttribute->asQObject()->setParent(0);
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlInterface::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
+ // Adjust subsetted properties
+ removeOwnedMember(ownedAttribute);
+ removeAttribute(ownedAttribute);
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlInterface::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
+ // Adjust opposite properties
+ if (ownedAttribute) {
+ ownedAttribute->setInterface(0);
+ }
+ }
}
/*!
The operations owned by the class.
*/
-const QList<QUmlOperation *> QUmlInterface::ownedOperation() const
+const QList<QUmlOperation *>
+QUmlInterface::ownedOperation() const
{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
+ // This is a read-write association end
-/*!
- Receptions that objects providing this interface are willing to accept.
- */
-const QSet<QUmlReception *> QUmlInterface::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
+ return _ownedOperation;
}
-/*!
- References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface.
- */
-QUmlProtocolStateMachine *QUmlInterface::protocol() const
+void QUmlInterface::addOwnedOperation(QUmlOperation *ownedOperation)
{
- return reinterpret_cast<QUmlProtocolStateMachine *>(_protocol);
-}
+ // This is a read-write association end
-/*!
- References all the Interfaces redefined by this Interface.
- */
-const QSet<QUmlInterface *> QUmlInterface::redefinedInterface() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterface *> *>(&_redefinedInterface));
-}
+ if (!_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.append(ownedOperation);
+ if (ownedOperation->asQObject() && this->asQObject())
+ QObject::connect(ownedOperation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedOperation(QObject *)));
+ ownedOperation->asQObject()->setParent(this->asQObject());
-// OPERATIONS [Element]
+ // Adjust subsetted properties
+ addFeature(ownedOperation);
+ addOwnedMember(ownedOperation);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInterface::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedOperation) {
+ ownedOperation->setInterface(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlInterface::mustBeOwned() const
+void QUmlInterface::removeOwnedOperation(QUmlOperation *ownedOperation)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInterface::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInterface::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (_ownedOperation.contains(ownedOperation)) {
+ _ownedOperation.removeAll(ownedOperation);
+ if (ownedOperation->asQObject())
+ ownedOperation->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlInterface::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // Adjust subsetted properties
+ removeFeature(ownedOperation);
+ removeOwnedMember(ownedOperation);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInterface::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust opposite properties
+ if (ownedOperation) {
+ ownedOperation->setInterface(0);
+ }
+ }
}
-// OPERATIONS [Namespace]
-
/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlInterface::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
+ Receptions that objects providing this interface are willing to accept.
*/
-QSet<QString> QUmlInterface::getNamesOfMember(QUmlNamedElement *element) const
+const QSet<QUmlReception *>
+QUmlInterface::ownedReception() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlInterface::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _ownedReception;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlInterface::membersAreDistinguishable() const
+void QUmlInterface::addOwnedReception(QUmlReception *ownedReception)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_ownedReception.contains(ownedReception)) {
+ _ownedReception.insert(ownedReception);
+ if (ownedReception->asQObject() && this->asQObject())
+ QObject::connect(ownedReception->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedReception(QObject *)));
+ ownedReception->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlInterface::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust subsetted properties
+ addFeature(ownedReception);
+ addOwnedMember(ownedReception);
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInterface::isTemplateParameter() const
+void QUmlInterface::removeOwnedReception(QUmlReception *ownedReception)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (_ownedReception.contains(ownedReception)) {
+ _ownedReception.remove(ownedReception);
+ if (ownedReception->asQObject())
+ ownedReception->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlInterface::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeFeature(ownedReception);
+ removeOwnedMember(ownedReception);
+ }
}
/*!
- 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.
- */
-bool QUmlInterface::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlInterface::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlInterface::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlInterface::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
+ References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface.
*/
-bool QUmlInterface::conformsTo(QUmlClassifier *other) const
+QUmlProtocolStateMachine *
+QUmlInterface::protocol() const
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInterface::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ return _protocol;
}
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlInterface::inherit(QSet<QUmlNamedElement *> inhs) const
+void QUmlInterface::setProtocol(QUmlProtocolStateMachine *protocol)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlInterface::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ if (_protocol != protocol) {
+ // Adjust subsetted properties
+ removeOwnedMember(_protocol);
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlInterface::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ _protocol = protocol;
+ if (protocol->asQObject() && this->asQObject())
+ QObject::connect(protocol->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setProtocol()));
+ protocol->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlInterface::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ // Adjust subsetted properties
+ if (protocol) {
+ addOwnedMember(protocol);
+ }
+ }
}
/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ References all the Interfaces redefined by this Interface.
*/
-QSet<QUmlClassifier *> QUmlInterface::parents() const
+const QSet<QUmlInterface *>
+QUmlInterface::redefinedInterface() const
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlInterface::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _redefinedInterface;
}
-void QUmlInterface::removeOwnedComment(UmlComment *ownedComment)
+void QUmlInterface::addRedefinedInterface(QUmlInterface *redefinedInterface)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (!_redefinedInterface.contains(redefinedInterface)) {
+ _redefinedInterface.insert(redefinedInterface);
+ if (redefinedInterface->asQObject() && this->asQObject())
+ QObject::connect(redefinedInterface->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedInterface(QObject *)));
-void QUmlInterface::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ addRedefinedClassifier(redefinedInterface);
+ }
}
-void QUmlInterface::removeClientDependency(UmlDependency *clientDependency)
+void QUmlInterface::removeRedefinedInterface(QUmlInterface *redefinedInterface)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlInterface::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (_redefinedInterface.contains(redefinedInterface)) {
+ _redefinedInterface.remove(redefinedInterface);
-void QUmlInterface::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlInterface::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlInterface::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlInterface::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
+ // Adjust subsetted properties
+ removeRedefinedClassifier(redefinedInterface);
+ }
}
-void QUmlInterface::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlInterface::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlInterface::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInterface::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInterface::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlInterface::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlInterface::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlInterface::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlInterface::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlInterface::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlInterface::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlInterface::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlInterface::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlInterface::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlInterface::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlInterface::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlInterface::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlInterface::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlInterface::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlInterface::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlInterface::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlInterface::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlInterface::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlInterface::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlInterface::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlInterface::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlInterface::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlInterface::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlInterface::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlInterface::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Interface]
-
-void QUmlInterface::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlInterface::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlInterface::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlInterface::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlInterface::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlInterface::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlInterface::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlInterface::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlInterface::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlInterface::addOwnedOperation(ownedOperation);
-}
-
-void QUmlInterface::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlInterface::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlInterface::addOwnedReception(UmlReception *ownedReception)
-{
- UmlInterface::addOwnedReception(ownedReception);
-}
-
-void QUmlInterface::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlInterface::removeOwnedReception(ownedReception);
-}
-
-void QUmlInterface::setProtocol(QUmlProtocolStateMachine *protocol)
-{
- UmlInterface::setProtocol(protocol);
-}
-
-void QUmlInterface::addRedefinedInterface(UmlInterface *redefinedInterface)
-{
- UmlInterface::addRedefinedInterface(redefinedInterface);
-}
-
-void QUmlInterface::removeRedefinedInterface(UmlInterface *redefinedInterface)
-{
- UmlInterface::removeRedefinedInterface(redefinedInterface);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinterface.h b/src/uml/qumlinterface.h
index 0419e05e..82166650 100644
--- a/src/uml/qumlinterface.h
+++ b/src/uml/qumlinterface.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinterface_p.h"
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,288 +52,48 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
class QUmlProtocolStateMachine;
class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlInterface : public QObject, public UmlInterface
+class Q_UML_EXPORT QUmlInterface : public QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Interface]
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QUmlProtocolStateMachine * protocol READ protocol)
- Q_PROPERTY(QSet<QUmlInterface *> redefinedInterface READ redefinedInterface)
-
public:
- Q_INVOKABLE explicit QUmlInterface(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Interface]
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE QUmlProtocolStateMachine *protocol() const;
- Q_INVOKABLE const QSet<QUmlInterface *> redefinedInterface() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [Interface]
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
+ explicit QUmlInterface(bool createQObject = true);
+ virtual ~QUmlInterface();
+
+ // Owned attributes
+ const QList<QUmlClassifier *> nestedClassifier() const;
+ void addNestedClassifier(QUmlClassifier *nestedClassifier);
+ void removeNestedClassifier(QUmlClassifier *nestedClassifier);
+ const QList<QUmlProperty *> ownedAttribute() const;
+ void addOwnedAttribute(QUmlProperty *ownedAttribute);
+ void removeOwnedAttribute(QUmlProperty *ownedAttribute);
+ const QList<QUmlOperation *> ownedOperation() const;
+ void addOwnedOperation(QUmlOperation *ownedOperation);
+ void removeOwnedOperation(QUmlOperation *ownedOperation);
+ const QSet<QUmlReception *> ownedReception() const;
+ void addOwnedReception(QUmlReception *ownedReception);
+ void removeOwnedReception(QUmlReception *ownedReception);
+ QUmlProtocolStateMachine *protocol() const;
void setProtocol(QUmlProtocolStateMachine *protocol);
- void addRedefinedInterface(UmlInterface *redefinedInterface);
- void removeRedefinedInterface(UmlInterface *redefinedInterface);
+ const QSet<QUmlInterface *> redefinedInterface() const;
+ void addRedefinedInterface(QUmlInterface *redefinedInterface);
+ void removeRedefinedInterface(QUmlInterface *redefinedInterface);
+
+protected:
+ QList<QUmlClassifier *> _nestedClassifier;
+ QList<QUmlProperty *> _ownedAttribute;
+ QList<QUmlOperation *> _ownedOperation;
+ QSet<QUmlReception *> _ownedReception;
+ QUmlProtocolStateMachine *_protocol;
+ QSet<QUmlInterface *> _redefinedInterface;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInterface *)
-Q_DECLARE_METATYPE(QList<QUmlInterface *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInterface *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInterface) *)
QT_END_HEADER
diff --git a/src/uml/qumlinterfacerealization.cpp b/src/uml/qumlinterfacerealization.cpp
index c4229954..d852817d 100644
--- a/src/uml/qumlinterfacerealization.cpp
+++ b/src/uml/qumlinterfacerealization.cpp
@@ -40,378 +40,95 @@
****************************************************************************/
#include "qumlinterfacerealization.h"
+#include "private/qumlinterfacerealizationobject_p.h"
+
#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlInterface>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOpaqueExpression>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInterfaceRealization
+ \class QUmlInterfaceRealization
\inmodule QtUml
\brief An interface realization 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.
*/
-
-QUmlInterfaceRealization::QUmlInterfaceRealization(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInterfaceRealization::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInterfaceRealization::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInterfaceRealization::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInterfaceRealization::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlInterfaceRealization::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInterfaceRealization::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInterfaceRealization::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInterfaceRealization::nameExpression() const
+QUmlInterfaceRealization::QUmlInterfaceRealization(bool createQObject) :
+ QUmlRealization(false),
+ _contract(0),
+ _implementingClassifier(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlInterfaceRealizationObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInterfaceRealization::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInterfaceRealization::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInterfaceRealization::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlInterfaceRealization::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlInterfaceRealization::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlInterfaceRealization::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlInterfaceRealization::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlInterfaceRealization::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Abstraction]
-
-/*!
- 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.
- */
-QUmlOpaqueExpression *QUmlInterfaceRealization::mapping() const
+QUmlInterfaceRealization::~QUmlInterfaceRealization()
{
- return reinterpret_cast<QUmlOpaqueExpression *>(_mapping);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [InterfaceRealization]
+// OWNED ATTRIBUTES
/*!
References the Interface specifying the conformance contract.
*/
-QUmlInterface *QUmlInterfaceRealization::contract() const
+QUmlInterface *
+QUmlInterfaceRealization::contract() const
{
- return reinterpret_cast<QUmlInterface *>(_contract);
-}
-
-/*!
- References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points).
- */
-QUmlBehavioredClassifier *QUmlInterfaceRealization::implementingClassifier() const
-{
- return reinterpret_cast<QUmlBehavioredClassifier *>(_implementingClassifier);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInterfaceRealization::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _contract;
}
-/*!
- 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.
- */
-bool QUmlInterfaceRealization::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlInterfaceRealization::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInterfaceRealization::isTemplateParameter() const
+void QUmlInterfaceRealization::setContract(QUmlInterface *contract)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_contract != contract) {
+ // Adjust subsetted properties
+ removeSupplier(_contract);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInterfaceRealization::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ _contract = contract;
+ if (contract->asQObject() && this->asQObject())
+ QObject::connect(contract->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setContract()));
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInterfaceRealization::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust subsetted properties
+ if (contract) {
+ addSupplier(contract);
+ }
+ }
}
/*!
- 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.
- */
-bool QUmlInterfaceRealization::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points).
*/
-QString QUmlInterfaceRealization::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInterfaceRealization::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInterfaceRealization::removeOwnedComment(UmlComment *ownedComment)
+QUmlBehavioredClassifier *
+QUmlInterfaceRealization::implementingClassifier() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInterfaceRealization::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlInterfaceRealization::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInterfaceRealization::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInterfaceRealization::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInterfaceRealization::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInterfaceRealization::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInterfaceRealization::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlInterfaceRealization::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlInterfaceRealization::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
+ // This is a read-write association end
-void QUmlInterfaceRealization::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
+ return _implementingClassifier;
}
-void QUmlInterfaceRealization::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
-
-void QUmlInterfaceRealization::setMapping(QUmlOpaqueExpression *mapping)
+void QUmlInterfaceRealization::setImplementingClassifier(QUmlBehavioredClassifier *implementingClassifier)
{
- UmlAbstraction::setMapping(mapping);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [InterfaceRealization]
+ if (_implementingClassifier != implementingClassifier) {
+ // Adjust subsetted properties
+ removeClient(_implementingClassifier);
-void QUmlInterfaceRealization::setContract(QUmlInterface *contract)
-{
- UmlInterfaceRealization::setContract(contract);
-}
+ _implementingClassifier = implementingClassifier;
+ if (implementingClassifier->asQObject() && this->asQObject())
+ QObject::connect(implementingClassifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setImplementingClassifier()));
-void QUmlInterfaceRealization::setImplementingClassifier(QUmlBehavioredClassifier *implementingClassifier)
-{
- UmlInterfaceRealization::setImplementingClassifier(implementingClassifier);
+ // Adjust subsetted properties
+ setOwner(implementingClassifier);
+ if (implementingClassifier) {
+ addClient(implementingClassifier);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinterfacerealization.h b/src/uml/qumlinterfacerealization.h
index 670d9aa7..44301350 100644
--- a/src/uml/qumlinterfacerealization.h
+++ b/src/uml/qumlinterfacerealization.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinterfacerealization_p.h"
+#include <QtUml/QUmlRealization>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,155 +53,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlBehavioredClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlInterface;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOpaqueExpression;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlInterfaceRealization : public QObject, public UmlInterfaceRealization
+class Q_UML_EXPORT QUmlInterfaceRealization : public QUmlRealization
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Abstraction]
- Q_PROPERTY(QUmlOpaqueExpression * mapping READ mapping)
-
- // Properties [InterfaceRealization]
- Q_PROPERTY(QUmlInterface * contract READ contract)
- Q_PROPERTY(QUmlBehavioredClassifier * implementingClassifier READ implementingClassifier)
-
public:
- Q_INVOKABLE explicit QUmlInterfaceRealization(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
+ explicit QUmlInterfaceRealization(bool createQObject = true);
+ virtual ~QUmlInterfaceRealization();
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Abstraction]
- Q_INVOKABLE QUmlOpaqueExpression *mapping() const;
-
- // Owned attributes [InterfaceRealization]
- Q_INVOKABLE QUmlInterface *contract() const;
- Q_INVOKABLE QUmlBehavioredClassifier *implementingClassifier() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
- // Slots for owned attributes [Abstraction]
- void setMapping(QUmlOpaqueExpression *mapping);
-
- // Slots for owned attributes [InterfaceRealization]
+ // Owned attributes
+ QUmlInterface *contract() const;
void setContract(QUmlInterface *contract);
+ QUmlBehavioredClassifier *implementingClassifier() const;
void setImplementingClassifier(QUmlBehavioredClassifier *implementingClassifier);
+
+protected:
+ QUmlInterface *_contract;
+ QUmlBehavioredClassifier *_implementingClassifier;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInterfaceRealization *)
-Q_DECLARE_METATYPE(QList<QUmlInterfaceRealization *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInterfaceRealization *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInterfaceRealization) *)
QT_END_HEADER
diff --git a/src/uml/qumlinterruptibleactivityregion.cpp b/src/uml/qumlinterruptibleactivityregion.cpp
index a763952f..2f588f66 100644
--- a/src/uml/qumlinterruptibleactivityregion.cpp
+++ b/src/uml/qumlinterruptibleactivityregion.cpp
@@ -40,297 +40,119 @@
****************************************************************************/
#include "qumlinterruptibleactivityregion.h"
-#include <QtUml/QUmlActivity>
+#include "private/qumlinterruptibleactivityregionobject_p.h"
+
#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInterruptibleActivityRegion
+ \class QUmlInterruptibleActivityRegion
\inmodule QtUml
\brief An interruptible activity region is an activity group that supports termination of tokens flowing in the portions of an activity.
*/
-
-QUmlInterruptibleActivityRegion::QUmlInterruptibleActivityRegion(QObject *parent) :
- QObject(parent)
+QUmlInterruptibleActivityRegion::QUmlInterruptibleActivityRegion(bool createQObject)
{
+ if (createQObject)
+ _qObject = new QUmlInterruptibleActivityRegionObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInterruptibleActivityRegion::ownedComment() const
+QUmlInterruptibleActivityRegion::~QUmlInterruptibleActivityRegion()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInterruptibleActivityRegion::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The edges leaving the region that will abort other tokens flowing in the region.
*/
-QUmlElement *QUmlInterruptibleActivityRegion::owner() const
+const QSet<QUmlActivityEdge *>
+QUmlInterruptibleActivityRegion::interruptingEdge() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInterruptibleActivityRegion::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _interruptingEdge;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlInterruptibleActivityRegion::name() const
+void QUmlInterruptibleActivityRegion::addInterruptingEdge(QUmlActivityEdge *interruptingEdge)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInterruptibleActivityRegion::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (!_interruptingEdge.contains(interruptingEdge)) {
+ _interruptingEdge.insert(interruptingEdge);
+ if (interruptingEdge->asQObject() && this->asQObject())
+ QObject::connect(interruptingEdge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInterruptingEdge(QObject *)));
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInterruptibleActivityRegion::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // Adjust opposite properties
+ if (interruptingEdge) {
+ interruptingEdge->setInterrupts(this);
+ }
+ }
}
-/*!
- 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.
- */
-QString QUmlInterruptibleActivityRegion::qualifiedName() const
+void QUmlInterruptibleActivityRegion::removeInterruptingEdge(QUmlActivityEdge *interruptingEdge)
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInterruptibleActivityRegion::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [ActivityGroup]
+ if (_interruptingEdge.contains(interruptingEdge)) {
+ _interruptingEdge.remove(interruptingEdge);
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlInterruptibleActivityRegion::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
+ // Adjust opposite properties
+ if (interruptingEdge) {
+ interruptingEdge->setInterrupts(0);
+ }
+ }
}
/*!
Nodes immediately contained in the group.
*/
-const QSet<QUmlActivityNode *> QUmlInterruptibleActivityRegion::containedNode() const
+const QSet<QUmlActivityNode *>
+QUmlInterruptibleActivityRegion::node() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
+ // This is a read-write association end
-/*!
- Activity containing the group.
- */
-QUmlActivity *QUmlInterruptibleActivityRegion::inActivity() const
-{
- return reinterpret_cast<QUmlActivity *>(_inActivity);
+ return _node;
}
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlInterruptibleActivityRegion::subgroup() const
+void QUmlInterruptibleActivityRegion::addNode(QUmlActivityNode *node)
{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
-}
+ // This is a read-write association end
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlInterruptibleActivityRegion::superGroup() const
-{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
-}
+ if (!_node.contains(node)) {
+ _node.insert(node);
+ if (node->asQObject() && this->asQObject())
+ QObject::connect(node->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNode(QObject *)));
-// OWNED ATTRIBUTES [InterruptibleActivityRegion]
+ // Adjust subsetted properties
+ addContainedNode(node);
-/*!
- The edges leaving the region that will abort other tokens flowing in the region.
- */
-const QSet<QUmlActivityEdge *> QUmlInterruptibleActivityRegion::interruptingEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_interruptingEdge));
+ // Adjust opposite properties
+ if (node) {
+ node->addInInterruptibleRegion(this);
+ }
+ }
}
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlInterruptibleActivityRegion::node() const
+void QUmlInterruptibleActivityRegion::removeNode(QUmlActivityNode *node)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_node.contains(node)) {
+ _node.remove(node);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInterruptibleActivityRegion::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeContainedNode(node);
-/*!
- 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.
- */
-bool QUmlInterruptibleActivityRegion::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ // Adjust opposite properties
+ if (node) {
+ node->removeInInterruptibleRegion(this);
+ }
+ }
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInterruptibleActivityRegion::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInterruptibleActivityRegion::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInterruptibleActivityRegion::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInterruptibleActivityRegion::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInterruptibleActivityRegion::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInterruptibleActivityRegion::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInterruptibleActivityRegion::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInterruptibleActivityRegion::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInterruptibleActivityRegion::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInterruptibleActivityRegion::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlInterruptibleActivityRegion::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-void QUmlInterruptibleActivityRegion::setInActivity(QUmlActivity *inActivity)
-{
- UmlActivityGroup::setInActivity(inActivity);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InterruptibleActivityRegion]
-
-void QUmlInterruptibleActivityRegion::addInterruptingEdge(UmlActivityEdge *interruptingEdge)
-{
- UmlInterruptibleActivityRegion::addInterruptingEdge(interruptingEdge);
-}
-
-void QUmlInterruptibleActivityRegion::removeInterruptingEdge(UmlActivityEdge *interruptingEdge)
-{
- UmlInterruptibleActivityRegion::removeInterruptingEdge(interruptingEdge);
-}
-
-void QUmlInterruptibleActivityRegion::addNode(UmlActivityNode *node)
-{
- UmlInterruptibleActivityRegion::addNode(node);
-}
-
-void QUmlInterruptibleActivityRegion::removeNode(UmlActivityNode *node)
-{
- UmlInterruptibleActivityRegion::removeNode(node);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlinterruptibleactivityregion.h b/src/uml/qumlinterruptibleactivityregion.h
index 95dab453..a6a7a8af 100644
--- a/src/uml/qumlinterruptibleactivityregion.h
+++ b/src/uml/qumlinterruptibleactivityregion.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinterruptibleactivityregion_p.h"
+#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,111 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
class QUmlActivityEdge;
-class QUmlActivityGroup;
class QUmlActivityNode;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlInterruptibleActivityRegion : public QObject, public UmlInterruptibleActivityRegion
+class Q_UML_EXPORT QUmlInterruptibleActivityRegion : public QUmlActivityGroup
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QUmlActivity * inActivity READ inActivity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [InterruptibleActivityRegion]
- Q_PROPERTY(QSet<QUmlActivityEdge *> interruptingEdge READ interruptingEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
-
public:
- Q_INVOKABLE explicit QUmlInterruptibleActivityRegion(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE QUmlActivity *inActivity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [InterruptibleActivityRegion]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> interruptingEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [ActivityGroup]
- void setInActivity(QUmlActivity *inActivity);
-
- // Slots for owned attributes [InterruptibleActivityRegion]
- void addInterruptingEdge(UmlActivityEdge *interruptingEdge);
- void removeInterruptingEdge(UmlActivityEdge *interruptingEdge);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
+ explicit QUmlInterruptibleActivityRegion(bool createQObject = true);
+ virtual ~QUmlInterruptibleActivityRegion();
+
+ // Owned attributes
+ const QSet<QUmlActivityEdge *> interruptingEdge() const;
+ void addInterruptingEdge(QUmlActivityEdge *interruptingEdge);
+ void removeInterruptingEdge(QUmlActivityEdge *interruptingEdge);
+ const QSet<QUmlActivityNode *> node() const;
+ void addNode(QUmlActivityNode *node);
+ void removeNode(QUmlActivityNode *node);
+
+protected:
+ QSet<QUmlActivityEdge *> _interruptingEdge;
+ QSet<QUmlActivityNode *> _node;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInterruptibleActivityRegion *)
-Q_DECLARE_METATYPE(QList<QUmlInterruptibleActivityRegion *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInterruptibleActivityRegion *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInterruptibleActivityRegion) *)
QT_END_HEADER
diff --git a/src/uml/qumlinterval.cpp b/src/uml/qumlinterval.cpp
index 6cc33227..69a25b93 100644
--- a/src/uml/qumlinterval.cpp
+++ b/src/uml/qumlinterval.cpp
@@ -40,363 +40,74 @@
****************************************************************************/
#include "qumlinterval.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlintervalobject_p.h"
/*!
- \class UmlInterval
+ \class QUmlInterval
\inmodule QtUml
\brief An interval defines the range between two value specifications.
*/
-
-QUmlInterval::QUmlInterval(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInterval::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInterval::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInterval::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInterval::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInterval::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInterval::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInterval::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInterval::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlInterval::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlInterval::owningTemplateParameter() const
+QUmlInterval::QUmlInterval(bool createQObject) :
+ _max(0),
+ _min(0)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlIntervalObject(this);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlInterval::templateParameter() const
+QUmlInterval::~QUmlInterval()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlInterval::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Interval]
+// OWNED ATTRIBUTES
/*!
Refers to the ValueSpecification denoting the maximum value of the range.
*/
-QUmlValueSpecification *QUmlInterval::max() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_max);
-}
-
-/*!
- Refers to the ValueSpecification denoting the minimum value of the range.
- */
-QUmlValueSpecification *QUmlInterval::min() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_min);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInterval::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInterval::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInterval::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInterval::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlInterval::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlValueSpecification *
+QUmlInterval::max() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInterval::separator() const
-{
- return UmlNamedElement::separator();
+ return _max;
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlInterval::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlInterval::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlInterval::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlInterval::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- 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.
- */
-bool QUmlInterval::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlInterval::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlInterval::realValue() const
+void QUmlInterval::setMax(QUmlValueSpecification *max)
{
- return UmlValueSpecification::realValue();
-}
+ // This is a read-write association end
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlInterval::stringValue() const
-{
- return UmlValueSpecification::stringValue();
+ if (_max != max) {
+ _max = max;
+ if (max->asQObject() && this->asQObject())
+ QObject::connect(max->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMax()));
+ }
}
/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
+ Refers to the ValueSpecification denoting the minimum value of the range.
*/
-int QUmlInterval::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInterval::addOwnedComment(UmlComment *ownedComment)
+QUmlValueSpecification *
+QUmlInterval::min() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlInterval::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInterval::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInterval::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInterval::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInterval::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlInterval::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlInterval::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlInterval::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlInterval::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Interval]
-
-void QUmlInterval::setMax(QUmlValueSpecification *max)
-{
- UmlInterval::setMax(max);
+ return _min;
}
void QUmlInterval::setMin(QUmlValueSpecification *min)
{
- UmlInterval::setMin(min);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_min != min) {
+ _min = min;
+ if (min->asQObject() && this->asQObject())
+ QObject::connect(min->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMin()));
+ }
+}
diff --git a/src/uml/qumlinterval.h b/src/uml/qumlinterval.h
index 1c27a526..4159fa42 100644
--- a/src/uml/qumlinterval.h
+++ b/src/uml/qumlinterval.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinterval_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,132 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlInterval : public QObject, public UmlInterval
+class Q_UML_EXPORT QUmlInterval : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Interval]
- Q_PROPERTY(QUmlValueSpecification * max READ max)
- Q_PROPERTY(QUmlValueSpecification * min READ min)
-
public:
- Q_INVOKABLE explicit QUmlInterval(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlInterval(bool createQObject = true);
+ virtual ~QUmlInterval();
- // Owned attributes [Interval]
- Q_INVOKABLE QUmlValueSpecification *max() const;
- Q_INVOKABLE QUmlValueSpecification *min() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Interval]
+ // Owned attributes
+ QUmlValueSpecification *max() const;
void setMax(QUmlValueSpecification *max);
+ QUmlValueSpecification *min() const;
void setMin(QUmlValueSpecification *min);
+
+protected:
+ QUmlValueSpecification *_max;
+ QUmlValueSpecification *_min;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInterval *)
-Q_DECLARE_METATYPE(QList<QUmlInterval *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInterval *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInterval) *)
QT_END_HEADER
diff --git a/src/uml/qumlintervalconstraint.cpp b/src/uml/qumlintervalconstraint.cpp
index 40ae320e..c7535974 100644
--- a/src/uml/qumlintervalconstraint.cpp
+++ b/src/uml/qumlintervalconstraint.cpp
@@ -40,308 +40,55 @@
****************************************************************************/
#include "qumlintervalconstraint.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterval>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlintervalconstraintobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInterval>
/*!
- \class UmlIntervalConstraint
+ \class QUmlIntervalConstraint
\inmodule QtUml
\brief An interval constraint is a constraint that refers to an interval.
*/
-
-QUmlIntervalConstraint::QUmlIntervalConstraint(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlIntervalConstraint::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlIntervalConstraint::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlIntervalConstraint::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlIntervalConstraint::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlIntervalConstraint::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlIntervalConstraint::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlIntervalConstraint::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlIntervalConstraint::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlIntervalConstraint::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlIntervalConstraint::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlIntervalConstraint::visibility() const
+QUmlIntervalConstraint::QUmlIntervalConstraint(bool createQObject) :
+ QUmlConstraint(false),
+ _specification(0)
{
- return _visibility;
+ if (createQObject)
+ _qObject = new QUmlIntervalConstraintObject(this);
}
-// OWNED ATTRIBUTES [Constraint]
-
-/*!
- The ordered set of Elements referenced by this Constraint.
- */
-const QList<QUmlElement *> QUmlIntervalConstraint::constrainedElement() const
+QUmlIntervalConstraint::~QUmlIntervalConstraint()
{
- return *(reinterpret_cast<const QList<QUmlElement *> *>(&_constrainedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlIntervalConstraint::context() const
-{
- return reinterpret_cast<QUmlNamespace *>(_context);
-}
-// OWNED ATTRIBUTES [IntervalConstraint]
+// OWNED ATTRIBUTES
/*!
A condition that must be true when evaluated in order for the constraint to be satisfied.
*/
-QUmlInterval *QUmlIntervalConstraint::specification() const
-{
- return reinterpret_cast<QUmlInterval *>(_specification);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlIntervalConstraint::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlIntervalConstraint::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlIntervalConstraint::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlIntervalConstraint::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlIntervalConstraint::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlIntervalConstraint::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlIntervalConstraint::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlIntervalConstraint::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlIntervalConstraint::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlIntervalConstraint::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlIntervalConstraint::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlIntervalConstraint::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlIntervalConstraint::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlIntervalConstraint::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlIntervalConstraint::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlIntervalConstraint::setNameExpression(QUmlStringExpression *nameExpression)
+QUmlInterval *
+QUmlIntervalConstraint::specification() const
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
+ // This is a read-write association end
-void QUmlIntervalConstraint::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
+ return _specification;
}
-// SLOTS FOR OWNED ATTRIBUTES [Constraint]
-
-void QUmlIntervalConstraint::addConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::addConstrainedElement(constrainedElement);
-}
-
-void QUmlIntervalConstraint::removeConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::removeConstrainedElement(constrainedElement);
-}
-
-void QUmlIntervalConstraint::setContext(QUmlNamespace *context)
-{
- UmlConstraint::setContext(context);
-}
-// SLOTS FOR OWNED ATTRIBUTES [IntervalConstraint]
-
void QUmlIntervalConstraint::setSpecification(QUmlInterval *specification)
{
- UmlIntervalConstraint::setSpecification(specification);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_specification != specification) {
+ _specification = specification;
+ if (specification->asQObject() && this->asQObject())
+ QObject::connect(specification->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecification()));
+ specification->asQObject()->setParent(this->asQObject());
+ }
+}
diff --git a/src/uml/qumlintervalconstraint.h b/src/uml/qumlintervalconstraint.h
index 99781523..7130f13c 100644
--- a/src/uml/qumlintervalconstraint.h
+++ b/src/uml/qumlintervalconstraint.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlintervalconstraint_p.h"
+#include <QtUml/QUmlConstraint>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,124 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlInterval;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlIntervalConstraint : public QObject, public UmlIntervalConstraint
+class Q_UML_EXPORT QUmlIntervalConstraint : public QUmlConstraint
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Constraint]
- Q_PROPERTY(QList<QUmlElement *> constrainedElement READ constrainedElement)
- Q_PROPERTY(QUmlNamespace * context READ context)
-
- // Properties [IntervalConstraint]
- Q_PROPERTY(QUmlInterval * specification READ specification)
-
public:
- Q_INVOKABLE explicit QUmlIntervalConstraint(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Constraint]
- Q_INVOKABLE const QList<QUmlElement *> constrainedElement() const;
- Q_INVOKABLE QUmlNamespace *context() const;
+ explicit QUmlIntervalConstraint(bool createQObject = true);
+ virtual ~QUmlIntervalConstraint();
- // Owned attributes [IntervalConstraint]
- Q_INVOKABLE QUmlInterval *specification() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Constraint]
- void addConstrainedElement(UmlElement *constrainedElement);
- void removeConstrainedElement(UmlElement *constrainedElement);
- void setContext(QUmlNamespace *context);
-
- // Slots for owned attributes [IntervalConstraint]
+ // Owned attributes
+ QUmlInterval *specification() const;
void setSpecification(QUmlInterval *specification);
+
+protected:
+ QUmlInterval *_specification;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlIntervalConstraint *)
-Q_DECLARE_METATYPE(QList<QUmlIntervalConstraint *> *)
-Q_DECLARE_METATYPE(QSet<QUmlIntervalConstraint *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlIntervalConstraint) *)
QT_END_HEADER
diff --git a/src/uml/qumlinvocationaction.cpp b/src/uml/qumlinvocationaction.cpp
index 89fe1700..6531ec34 100644
--- a/src/uml/qumlinvocationaction.cpp
+++ b/src/uml/qumlinvocationaction.cpp
@@ -40,531 +40,86 @@
****************************************************************************/
#include "qumlinvocationaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlInvocationAction
+ \class QUmlInvocationAction
\inmodule QtUml
\brief InvocationAction is an abstract class for the various actions that invoke behavior.In addition to targeting an object, invocation actions can also invoke behavioral features on ports from where the invocation requests are routed onwards on links deriving from attached connectors. Invocation actions may also be sent to a target via a given port, either on the sending object or on another object.
*/
-
-QUmlInvocationAction::QUmlInvocationAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlInvocationAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlInvocationAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlInvocationAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlInvocationAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlInvocationAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlInvocationAction::nameExpression() const
+QUmlInvocationAction::QUmlInvocationAction() :
+ _onPort(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlInvocationAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlInvocationAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlInvocationAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlInvocationAction::isLeaf() const
+QUmlInvocationAction::~QUmlInvocationAction()
{
- return _isLeaf;
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlInvocationAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlInvocationAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlInvocationAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlInvocationAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlInvocationAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlInvocationAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlInvocationAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlInvocationAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlInvocationAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlInvocationAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlInvocationAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlInvocationAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlInvocationAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlInvocationAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlInvocationAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlInvocationAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlInvocationAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
+// OWNED ATTRIBUTES
/*!
Specification of the ordered set of argument values that appears during execution.
*/
-const QList<QUmlInputPin *> QUmlInvocationAction::argument() const
+const QList<QUmlInputPin *>
+QUmlInvocationAction::argument() const
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
-}
+ // This is a read-write association end
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlInvocationAction::onPort() const
-{
- return reinterpret_cast<QUmlPort *>(_onPort);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlInvocationAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _argument;
}
-/*!
- 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.
- */
-bool QUmlInvocationAction::mustBeOwned() const
+void QUmlInvocationAction::addArgument(QUmlInputPin *argument)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_argument.contains(argument)) {
+ _argument.append(argument);
+ if (argument->asQObject() && this->asQObject())
+ QObject::connect(argument->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeArgument(QObject *)));
+ argument->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlInvocationAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ addInput(argument);
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlInvocationAction::allOwningPackages() const
+void QUmlInvocationAction::removeArgument(QUmlInputPin *argument)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlInvocationAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (_argument.contains(argument)) {
+ _argument.removeAll(argument);
+ if (argument->asQObject())
+ argument->asQObject()->setParent(0);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlInvocationAction::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust subsetted properties
+ removeInput(argument);
+ }
}
-// OPERATIONS [RedefinableElement]
-
/*!
- 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.
- */
-bool QUmlInvocationAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ A optional port of the receiver object on which the behavioral feature is invoked.
*/
-bool QUmlInvocationAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlInvocationAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlInvocationAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlInvocationAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlInvocationAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlInvocationAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlInvocationAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlInvocationAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlInvocationAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlInvocationAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlInvocationAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlInvocationAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlInvocationAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlInvocationAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlInvocationAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
+QUmlPort *
+QUmlInvocationAction::onPort() const
{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlInvocationAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlInvocationAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlInvocationAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlInvocationAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlInvocationAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlInvocationAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlInvocationAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlInvocationAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlInvocationAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlInvocationAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlInvocationAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlInvocationAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlInvocationAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlInvocationAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlInvocationAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
+ return _onPort;
}
void QUmlInvocationAction::setOnPort(QUmlPort *onPort)
{
- UmlInvocationAction::setOnPort(onPort);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_onPort != onPort) {
+ _onPort = onPort;
+ if (onPort->asQObject() && this->asQObject())
+ QObject::connect(onPort->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOnPort()));
+ }
+}
diff --git a/src/uml/qumlinvocationaction.h b/src/uml/qumlinvocationaction.h
index 389e697a..c7c977fa 100644
--- a/src/uml/qumlinvocationaction.h
+++ b/src/uml/qumlinvocationaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlinvocationaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,187 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
class QUmlPort;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlInvocationAction : public QObject, public UmlInvocationAction
+class Q_UML_EXPORT QUmlInvocationAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
public:
- Q_DECL_HIDDEN explicit QUmlInvocationAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
+ virtual ~QUmlInvocationAction();
+
+ // Owned attributes
+ const QList<QUmlInputPin *> argument() const;
+ void addArgument(QUmlInputPin *argument);
+ void removeArgument(QUmlInputPin *argument);
+ QUmlPort *onPort() const;
void setOnPort(QUmlPort *onPort);
+
+protected:
+ explicit QUmlInvocationAction();
+
+ QList<QUmlInputPin *> _argument;
+ QUmlPort *_onPort;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlInvocationAction *)
-Q_DECLARE_METATYPE(QList<QUmlInvocationAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlInvocationAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlInvocationAction) *)
QT_END_HEADER
diff --git a/src/uml/qumljoinnode.cpp b/src/uml/qumljoinnode.cpp
index 8d2e4b54..80af7f5e 100644
--- a/src/uml/qumljoinnode.cpp
+++ b/src/uml/qumljoinnode.cpp
@@ -40,423 +40,83 @@
****************************************************************************/
#include "qumljoinnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumljoinnodeobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlValueSpecification>
/*!
- \class UmlJoinNode
+ \class QUmlJoinNode
\inmodule QtUml
\brief A join node is a control node that synchronizes multiple flows.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.
*/
-
-QUmlJoinNode::QUmlJoinNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlJoinNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlJoinNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlJoinNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlJoinNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlJoinNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlJoinNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlJoinNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlJoinNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlJoinNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlJoinNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlJoinNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlJoinNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlJoinNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlJoinNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlJoinNode::inInterruptibleRegion() const
+QUmlJoinNode::QUmlJoinNode(bool createQObject) :
+ _isCombineDuplicate(true),
+ _joinSpec(0)
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
+ if (createQObject)
+ _qObject = new QUmlJoinNodeObject(this);
}
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlJoinNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlJoinNode::inStructuredNode() const
+QUmlJoinNode::~QUmlJoinNode()
{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlJoinNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlJoinNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlJoinNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [JoinNode]
+// OWNED ATTRIBUTES
/*!
Tells whether tokens having objects with the same identity are combined into one by the join.
*/
-bool QUmlJoinNode::isCombineDuplicate() const
+bool
+QUmlJoinNode::isCombineDuplicate() const
{
- return _isCombineDuplicate;
-}
+ // This is a read-write property
-/*!
- A specification giving the conditions under which the join with emit a token. Default is "and".
- */
-QUmlValueSpecification *QUmlJoinNode::joinSpec() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_joinSpec);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlJoinNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlJoinNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlJoinNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlJoinNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlJoinNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isCombineDuplicate;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlJoinNode::separator() const
+void QUmlJoinNode::setCombineDuplicate(bool isCombineDuplicate)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write property
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlJoinNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_isCombineDuplicate != isCombineDuplicate) {
+ _isCombineDuplicate = isCombineDuplicate;
+ }
}
/*!
- 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.
+ A specification giving the conditions under which the join with emit a token. Default is "and".
*/
-bool QUmlJoinNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlValueSpecification *
+QUmlJoinNode::joinSpec() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlJoinNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlJoinNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _joinSpec;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlJoinNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlJoinNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlJoinNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlJoinNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlJoinNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlJoinNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlJoinNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlJoinNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlJoinNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlJoinNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlJoinNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlJoinNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlJoinNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlJoinNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlJoinNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlJoinNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlJoinNode::addRedefinedNode(UmlActivityNode *redefinedNode)
+void QUmlJoinNode::setJoinSpec(QUmlValueSpecification *joinSpec)
{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
+ // This is a read-write association end
-void QUmlJoinNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
+ if (_joinSpec != joinSpec) {
+ // Adjust subsetted properties
+ removeOwnedElement(_joinSpec);
-// SLOTS FOR OWNED ATTRIBUTES [JoinNode]
+ _joinSpec = joinSpec;
+ if (joinSpec->asQObject() && this->asQObject())
+ QObject::connect(joinSpec->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setJoinSpec()));
+ joinSpec->asQObject()->setParent(this->asQObject());
-void QUmlJoinNode::setCombineDuplicate(bool isCombineDuplicate)
-{
- UmlJoinNode::setCombineDuplicate(isCombineDuplicate);
-}
-
-void QUmlJoinNode::setJoinSpec(QUmlValueSpecification *joinSpec)
-{
- UmlJoinNode::setJoinSpec(joinSpec);
+ // Adjust subsetted properties
+ if (joinSpec) {
+ addOwnedElement(joinSpec);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumljoinnode.h b/src/uml/qumljoinnode.h
index 9f289edc..c6c444cc 100644
--- a/src/uml/qumljoinnode.h
+++ b/src/uml/qumljoinnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umljoinnode_p.h"
+#include <QtUml/QUmlControlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,149 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlJoinNode : public QObject, public UmlJoinNode
+class Q_UML_EXPORT QUmlJoinNode : public QUmlControlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [JoinNode]
- Q_PROPERTY(bool isCombineDuplicate READ isCombineDuplicate)
- Q_PROPERTY(QUmlValueSpecification * joinSpec READ joinSpec)
-
public:
- Q_INVOKABLE explicit QUmlJoinNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
+ explicit QUmlJoinNode(bool createQObject = true);
+ virtual ~QUmlJoinNode();
- // Owned attributes [JoinNode]
- Q_INVOKABLE bool isCombineDuplicate() const;
- Q_INVOKABLE QUmlValueSpecification *joinSpec() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [JoinNode]
+ // Owned attributes
+ bool isCombineDuplicate() const;
void setCombineDuplicate(bool isCombineDuplicate);
+ QUmlValueSpecification *joinSpec() const;
void setJoinSpec(QUmlValueSpecification *joinSpec);
+
+protected:
+ bool _isCombineDuplicate;
+ QUmlValueSpecification *_joinSpec;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlJoinNode *)
-Q_DECLARE_METATYPE(QList<QUmlJoinNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlJoinNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlJoinNode) *)
QT_END_HEADER
diff --git a/src/uml/qumllifeline.cpp b/src/uml/qumllifeline.cpp
index b24f1d1e..09d2a6a2 100644
--- a/src/uml/qumllifeline.cpp
+++ b/src/uml/qumllifeline.cpp
@@ -40,283 +40,181 @@
****************************************************************************/
#include "qumllifeline.h"
-#include <QtUml/QUmlComment>
+#include "private/qumllifelineobject_p.h"
+
#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlInteraction>
#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlPartDecomposition>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlLifeline
+ \class QUmlLifeline
\inmodule QtUml
\brief A lifeline represents an individual participant in the interaction. While parts and structural features may have multiplicity greater than 1, lifelines represent only one interacting entity.
*/
-
-QUmlLifeline::QUmlLifeline(QObject *parent) :
- QObject(parent)
+QUmlLifeline::QUmlLifeline(bool createQObject) :
+ _decomposedAs(0),
+ _interaction(0),
+ _represents(0),
+ _selector(0)
{
+ if (createQObject)
+ _qObject = new QUmlLifelineObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLifeline::ownedComment() const
+QUmlLifeline::~QUmlLifeline()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLifeline::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ References the InteractionFragments in which this Lifeline takes part.
*/
-QUmlElement *QUmlLifeline::owner() const
+const QSet<QUmlInteractionFragment *>
+QUmlLifeline::coveredBy() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLifeline::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _coveredBy;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlLifeline::name() const
+void QUmlLifeline::addCoveredBy(QUmlInteractionFragment *coveredBy)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLifeline::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (!_coveredBy.contains(coveredBy)) {
+ _coveredBy.insert(coveredBy);
+ if (coveredBy->asQObject() && this->asQObject())
+ QObject::connect(coveredBy->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeCoveredBy(QObject *)));
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLifeline::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // Adjust opposite properties
+ if (coveredBy) {
+ coveredBy->addCovered(this);
+ }
+ }
}
-/*!
- 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.
- */
-QString QUmlLifeline::qualifiedName() const
+void QUmlLifeline::removeCoveredBy(QUmlInteractionFragment *coveredBy)
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlLifeline::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Lifeline]
+ if (_coveredBy.contains(coveredBy)) {
+ _coveredBy.remove(coveredBy);
-/*!
- References the InteractionFragments in which this Lifeline takes part.
- */
-const QSet<QUmlInteractionFragment *> QUmlLifeline::coveredBy() const
-{
- return *(reinterpret_cast<const QSet<QUmlInteractionFragment *> *>(&_coveredBy));
+ // Adjust opposite properties
+ if (coveredBy) {
+ coveredBy->removeCovered(this);
+ }
+ }
}
/*!
References the Interaction that represents the decomposition.
*/
-QUmlPartDecomposition *QUmlLifeline::decomposedAs() const
+QUmlPartDecomposition *
+QUmlLifeline::decomposedAs() const
{
- return reinterpret_cast<QUmlPartDecomposition *>(_decomposedAs);
-}
+ // This is a read-write association end
-/*!
- References the Interaction enclosing this Lifeline.
- */
-QUmlInteraction *QUmlLifeline::interaction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_interaction);
+ return _decomposedAs;
}
-/*!
- References the ConnectableElement within the classifier that contains the enclosing interaction.
- */
-QUmlConnectableElement *QUmlLifeline::represents() const
+void QUmlLifeline::setDecomposedAs(QUmlPartDecomposition *decomposedAs)
{
- return reinterpret_cast<QUmlConnectableElement *>(_represents);
-}
+ // This is a read-write association end
-/*!
- If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set.
- */
-QUmlValueSpecification *QUmlLifeline::selector() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_selector);
+ if (_decomposedAs != decomposedAs) {
+ _decomposedAs = decomposedAs;
+ if (decomposedAs->asQObject() && this->asQObject())
+ QObject::connect(decomposedAs->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDecomposedAs()));
+ }
}
-// OPERATIONS [Element]
-
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ References the Interaction enclosing this Lifeline.
*/
-QSet<QUmlElement *> QUmlLifeline::allOwnedElements() const
+QUmlInteraction *
+QUmlLifeline::interaction() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlLifeline::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _interaction;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLifeline::allNamespaces() const
+void QUmlLifeline::setInteraction(QUmlInteraction *interaction)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLifeline::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (_interaction != interaction) {
+ // Adjust subsetted properties
-/*!
- 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.
- */
-bool QUmlLifeline::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ _interaction = interaction;
+ if (interaction->asQObject() && this->asQObject())
+ QObject::connect(interaction->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInteraction()));
+
+ // Adjust subsetted properties
+ setNamespace(interaction);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ References the ConnectableElement within the classifier that contains the enclosing interaction.
*/
-QString QUmlLifeline::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLifeline::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLifeline::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLifeline::addClientDependency(UmlDependency *clientDependency)
+QUmlConnectableElement *
+QUmlLifeline::represents() const
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlLifeline::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ return _represents;
}
-void QUmlLifeline::setName(QString name)
+void QUmlLifeline::setRepresents(QUmlConnectableElement *represents)
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlLifeline::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ if (_represents != represents) {
+ _represents = represents;
+ if (represents->asQObject() && this->asQObject())
+ QObject::connect(represents->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRepresents()));
+ }
}
-void QUmlLifeline::setVisibility(QtUml::VisibilityKind visibility)
+/*!
+ If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set.
+ */
+QUmlValueSpecification *
+QUmlLifeline::selector() const
{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Lifeline]
+ // This is a read-write association end
-void QUmlLifeline::addCoveredBy(UmlInteractionFragment *coveredBy)
-{
- UmlLifeline::addCoveredBy(coveredBy);
+ return _selector;
}
-void QUmlLifeline::removeCoveredBy(UmlInteractionFragment *coveredBy)
-{
- UmlLifeline::removeCoveredBy(coveredBy);
-}
-
-void QUmlLifeline::setDecomposedAs(QUmlPartDecomposition *decomposedAs)
+void QUmlLifeline::setSelector(QUmlValueSpecification *selector)
{
- UmlLifeline::setDecomposedAs(decomposedAs);
-}
+ // This is a read-write association end
-void QUmlLifeline::setInteraction(QUmlInteraction *interaction)
-{
- UmlLifeline::setInteraction(interaction);
-}
+ if (_selector != selector) {
+ // Adjust subsetted properties
+ removeOwnedElement(_selector);
-void QUmlLifeline::setRepresents(QUmlConnectableElement *represents)
-{
- UmlLifeline::setRepresents(represents);
-}
+ _selector = selector;
+ if (selector->asQObject() && this->asQObject())
+ QObject::connect(selector->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSelector()));
+ selector->asQObject()->setParent(this->asQObject());
-void QUmlLifeline::setSelector(QUmlValueSpecification *selector)
-{
- UmlLifeline::setSelector(selector);
+ // Adjust subsetted properties
+ if (selector) {
+ addOwnedElement(selector);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumllifeline.h b/src/uml/qumllifeline.h
index 69039cb6..36ba3b7f 100644
--- a/src/uml/qumllifeline.h
+++ b/src/uml/qumllifeline.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umllifeline_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,103 +52,42 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConnectableElement;
-class QUmlDependency;
-class QUmlElement;
class QUmlInteraction;
class QUmlInteractionFragment;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlPartDecomposition;
-class QUmlStringExpression;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlLifeline : public QObject, public UmlLifeline
+class Q_UML_EXPORT QUmlLifeline : public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Lifeline]
- Q_PROPERTY(QSet<QUmlInteractionFragment *> coveredBy READ coveredBy)
- Q_PROPERTY(QUmlPartDecomposition * decomposedAs READ decomposedAs)
- Q_PROPERTY(QUmlInteraction * interaction READ interaction)
- Q_PROPERTY(QUmlConnectableElement * represents READ represents)
- Q_PROPERTY(QUmlValueSpecification * selector READ selector)
-
public:
- Q_INVOKABLE explicit QUmlLifeline(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Lifeline]
- Q_INVOKABLE const QSet<QUmlInteractionFragment *> coveredBy() const;
- Q_INVOKABLE QUmlPartDecomposition *decomposedAs() const;
- Q_INVOKABLE QUmlInteraction *interaction() const;
- Q_INVOKABLE QUmlConnectableElement *represents() const;
- Q_INVOKABLE QUmlValueSpecification *selector() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Lifeline]
- void addCoveredBy(UmlInteractionFragment *coveredBy);
- void removeCoveredBy(UmlInteractionFragment *coveredBy);
+ explicit QUmlLifeline(bool createQObject = true);
+ virtual ~QUmlLifeline();
+
+ // Owned attributes
+ const QSet<QUmlInteractionFragment *> coveredBy() const;
+ void addCoveredBy(QUmlInteractionFragment *coveredBy);
+ void removeCoveredBy(QUmlInteractionFragment *coveredBy);
+ QUmlPartDecomposition *decomposedAs() const;
void setDecomposedAs(QUmlPartDecomposition *decomposedAs);
+ QUmlInteraction *interaction() const;
void setInteraction(QUmlInteraction *interaction);
+ QUmlConnectableElement *represents() const;
void setRepresents(QUmlConnectableElement *represents);
+ QUmlValueSpecification *selector() const;
void setSelector(QUmlValueSpecification *selector);
+
+protected:
+ QSet<QUmlInteractionFragment *> _coveredBy;
+ QUmlPartDecomposition *_decomposedAs;
+ QUmlInteraction *_interaction;
+ QUmlConnectableElement *_represents;
+ QUmlValueSpecification *_selector;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLifeline *)
-Q_DECLARE_METATYPE(QList<QUmlLifeline *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLifeline *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLifeline) *)
QT_END_HEADER
diff --git a/src/uml/qumllinkaction.cpp b/src/uml/qumllinkaction.cpp
index 785b97ce..85dd3210 100644
--- a/src/uml/qumllinkaction.cpp
+++ b/src/uml/qumllinkaction.cpp
@@ -40,547 +40,116 @@
****************************************************************************/
#include "qumllinkaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
#include <QtUml/QUmlLinkEndData>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlLinkAction
+ \class QUmlLinkAction
\inmodule QtUml
\brief LinkAction is an abstract class for all link actions that identify their links by the objects at the ends of the links and by the qualifiers at ends of the links.
*/
-
-QUmlLinkAction::QUmlLinkAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLinkAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLinkAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLinkAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLinkAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLinkAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLinkAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLinkAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLinkAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlLinkAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlLinkAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlLinkAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlLinkAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlLinkAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlLinkAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlLinkAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlLinkAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlLinkAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlLinkAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlLinkAction::outgoing() const
+QUmlLinkAction::QUmlLinkAction()
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlLinkAction::redefinedNode() const
+QUmlLinkAction::~QUmlLinkAction()
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
}
-// OWNED ATTRIBUTES [ExecutableNode]
+// OWNED ATTRIBUTES
/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
+ Data identifying one end of a link by the objects on its ends and qualifiers.
*/
-const QSet<QUmlExceptionHandler *> QUmlLinkAction::handler() const
+const QSet<QUmlLinkEndData *>
+QUmlLinkAction::endData() const
{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
+ // This is a read-write association end
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlLinkAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
+ return _endData;
}
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlLinkAction::input() const
+void QUmlLinkAction::addEndData(QUmlLinkEndData *endData)
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
+ // This is a read-write association end
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlLinkAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
+ if (!_endData.contains(endData)) {
+ _endData.insert(endData);
+ if (endData->asQObject() && this->asQObject())
+ QObject::connect(endData->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEndData(QObject *)));
+ endData->asQObject()->setParent(this->asQObject());
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlLinkAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlLinkAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
+ // Adjust subsetted properties
+ addOwnedElement(endData);
+ }
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlLinkAction::output() const
+void QUmlLinkAction::removeEndData(QUmlLinkEndData *endData)
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [LinkAction]
+ if (_endData.contains(endData)) {
+ _endData.remove(endData);
+ if (endData->asQObject())
+ endData->asQObject()->setParent(0);
-/*!
- Data identifying one end of a link by the objects on its ends and qualifiers.
- */
-const QSet<QUmlLinkEndData *> QUmlLinkAction::endData() const
-{
- return *(reinterpret_cast<const QSet<QUmlLinkEndData *> *>(&_endData));
+ // Adjust subsetted properties
+ removeOwnedElement(endData);
+ }
}
/*!
Pins taking end objects and qualifier values as input.
*/
-const QSet<QUmlInputPin *> QUmlLinkAction::inputValue() const
+const QSet<QUmlInputPin *>
+QUmlLinkAction::inputValue() const
{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLinkAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _inputValue;
}
-/*!
- 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.
- */
-bool QUmlLinkAction::mustBeOwned() const
+void QUmlLinkAction::addInputValue(QUmlInputPin *inputValue)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_inputValue.contains(inputValue)) {
+ _inputValue.insert(inputValue);
+ if (inputValue->asQObject() && this->asQObject())
+ QObject::connect(inputValue->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInputValue(QObject *)));
+ inputValue->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLinkAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ addInput(inputValue);
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLinkAction::allOwningPackages() const
+void QUmlLinkAction::removeInputValue(QUmlInputPin *inputValue)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlLinkAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (_inputValue.contains(inputValue)) {
+ _inputValue.remove(inputValue);
+ if (inputValue->asQObject())
+ inputValue->asQObject()->setParent(0);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLinkAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlLinkAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlLinkAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // Adjust subsetted properties
+ removeInput(inputValue);
+ }
}
-// OPERATIONS [LinkAction]
+// OPERATIONS
/*!
The association operates on LinkAction. It returns the association of the action.
*/
QUmlAssociation *QUmlLinkAction::association() const
{
- return reinterpret_cast<QUmlAssociation *>(UmlLinkAction::association());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLinkAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ qWarning("UmlLinkAction::association(): to be implemented (operation)");
-void QUmlLinkAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLinkAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLinkAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLinkAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLinkAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return 0;
}
-void QUmlLinkAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlLinkAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlLinkAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlLinkAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlLinkAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlLinkAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlLinkAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlLinkAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlLinkAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlLinkAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlLinkAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlLinkAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlLinkAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlLinkAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlLinkAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlLinkAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlLinkAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlLinkAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlLinkAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlLinkAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlLinkAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
-
-void QUmlLinkAction::addEndData(UmlLinkEndData *endData)
-{
- UmlLinkAction::addEndData(endData);
-}
-
-void QUmlLinkAction::removeEndData(UmlLinkEndData *endData)
-{
- UmlLinkAction::removeEndData(endData);
-}
-
-void QUmlLinkAction::addInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::addInputValue(inputValue);
-}
-
-void QUmlLinkAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::removeInputValue(inputValue);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumllinkaction.h b/src/uml/qumllinkaction.h
index 145a32a3..a66790e6 100644
--- a/src/uml/qumllinkaction.h
+++ b/src/uml/qumllinkaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umllinkaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,192 +52,36 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
class QUmlLinkEndData;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlLinkAction : public QObject, public UmlLinkAction
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [LinkAction]
- Q_PROPERTY(QSet<QUmlLinkEndData *> endData READ endData)
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
+class Q_UML_EXPORT QUmlLinkAction : public QUmlAction
+{
public:
- Q_DECL_HIDDEN explicit QUmlLinkAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [LinkAction]
- Q_INVOKABLE const QSet<QUmlLinkEndData *> endData() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [LinkAction]
- Q_INVOKABLE QUmlAssociation *association() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [LinkAction]
- void addEndData(UmlLinkEndData *endData);
- void removeEndData(UmlLinkEndData *endData);
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
+ virtual ~QUmlLinkAction();
+
+ // Owned attributes
+ const QSet<QUmlLinkEndData *> endData() const;
+ void addEndData(QUmlLinkEndData *endData);
+ void removeEndData(QUmlLinkEndData *endData);
+ const QSet<QUmlInputPin *> inputValue() const;
+ void addInputValue(QUmlInputPin *inputValue);
+ void removeInputValue(QUmlInputPin *inputValue);
+
+ // Operations
+ QUmlAssociation *association() const;
+
+protected:
+ explicit QUmlLinkAction();
+
+ QSet<QUmlLinkEndData *> _endData;
+ QSet<QUmlInputPin *> _inputValue;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLinkAction *)
-Q_DECLARE_METATYPE(QList<QUmlLinkAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLinkAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLinkAction) *)
QT_END_HEADER
diff --git a/src/uml/qumllinkendcreationdata.cpp b/src/uml/qumllinkendcreationdata.cpp
index fbef43cd..93c73fdc 100644
--- a/src/uml/qumllinkendcreationdata.cpp
+++ b/src/uml/qumllinkendcreationdata.cpp
@@ -40,163 +40,75 @@
****************************************************************************/
#include "qumllinkendcreationdata.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlQualifierValue>
+#include "private/qumllinkendcreationdataobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlLinkEndCreationData
+ \class QUmlLinkEndCreationData
\inmodule QtUml
\brief A link end creation data is not an action. It is an element that identifies links. It identifies one end of a link to be created by a create link action.
*/
-
-QUmlLinkEndCreationData::QUmlLinkEndCreationData(QObject *parent) :
- QObject(parent)
+QUmlLinkEndCreationData::QUmlLinkEndCreationData(bool createQObject) :
+ QUmlLinkEndData(false),
+ _insertAt(0),
+ _isReplaceAll(false)
{
+ if (createQObject)
+ _qObject = new QUmlLinkEndCreationDataObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLinkEndCreationData::ownedComment() const
+QUmlLinkEndCreationData::~QUmlLinkEndCreationData()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLinkEndCreationData::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ 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.
*/
-QUmlElement *QUmlLinkEndCreationData::owner() const
+QUmlInputPin *
+QUmlLinkEndCreationData::insertAt() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [LinkEndData]
-
-/*!
- Association end for which this link-end data specifies values.
- */
-QUmlProperty *QUmlLinkEndCreationData::end() const
-{
- return reinterpret_cast<QUmlProperty *>(_end);
+ return _insertAt;
}
-/*!
- List of qualifier values
- */
-const QSet<QUmlQualifierValue *> QUmlLinkEndCreationData::qualifier() const
+void QUmlLinkEndCreationData::setInsertAt(QUmlInputPin *insertAt)
{
- return *(reinterpret_cast<const QSet<QUmlQualifierValue *> *>(&_qualifier));
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QUmlInputPin *QUmlLinkEndCreationData::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OWNED ATTRIBUTES [LinkEndCreationData]
-
-/*!
- 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.
- */
-QUmlInputPin *QUmlLinkEndCreationData::insertAt() const
-{
- return reinterpret_cast<QUmlInputPin *>(_insertAt);
+ if (_insertAt != insertAt) {
+ _insertAt = insertAt;
+ if (insertAt->asQObject() && this->asQObject())
+ QObject::connect(insertAt->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInsertAt()));
+ }
}
/*!
Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link.
*/
-bool QUmlLinkEndCreationData::isReplaceAll() const
+bool
+QUmlLinkEndCreationData::isReplaceAll() const
{
- return _isReplaceAll;
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLinkEndCreationData::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLinkEndCreationData::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLinkEndCreationData::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLinkEndCreationData::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkEndData]
-
-void QUmlLinkEndCreationData::setEnd(QUmlProperty *end)
-{
- UmlLinkEndData::setEnd(end);
-}
-
-void QUmlLinkEndCreationData::addQualifier(UmlQualifierValue *qualifier)
-{
- UmlLinkEndData::addQualifier(qualifier);
-}
-
-void QUmlLinkEndCreationData::removeQualifier(UmlQualifierValue *qualifier)
-{
- UmlLinkEndData::removeQualifier(qualifier);
-}
-
-void QUmlLinkEndCreationData::setValue(QUmlInputPin *value)
-{
- UmlLinkEndData::setValue(value);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkEndCreationData]
-
-void QUmlLinkEndCreationData::setInsertAt(QUmlInputPin *insertAt)
-{
- UmlLinkEndCreationData::setInsertAt(insertAt);
+ return _isReplaceAll;
}
void QUmlLinkEndCreationData::setReplaceAll(bool isReplaceAll)
{
- UmlLinkEndCreationData::setReplaceAll(isReplaceAll);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isReplaceAll != isReplaceAll) {
+ _isReplaceAll = isReplaceAll;
+ }
+}
diff --git a/src/uml/qumllinkendcreationdata.h b/src/uml/qumllinkendcreationdata.h
index 8114ffe5..bce91ba1 100644
--- a/src/uml/qumllinkendcreationdata.h
+++ b/src/uml/qumllinkendcreationdata.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umllinkendcreationdata_p.h"
+#include <QtUml/QUmlLinkEndData>
+
QT_BEGIN_HEADER
@@ -52,73 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlInputPin;
-class QUmlProperty;
-class QUmlQualifierValue;
-class Q_UML_EXPORT QUmlLinkEndCreationData : public QObject, public UmlLinkEndCreationData
+class Q_UML_EXPORT QUmlLinkEndCreationData : public QUmlLinkEndData
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [LinkEndData]
- Q_PROPERTY(QUmlProperty * end READ end)
- Q_PROPERTY(QSet<QUmlQualifierValue *> qualifier READ qualifier)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
- // Properties [LinkEndCreationData]
- Q_PROPERTY(QUmlInputPin * insertAt READ insertAt)
- Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
-
public:
- Q_INVOKABLE explicit QUmlLinkEndCreationData(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [LinkEndData]
- Q_INVOKABLE QUmlProperty *end() const;
- Q_INVOKABLE const QSet<QUmlQualifierValue *> qualifier() const;
- Q_INVOKABLE QUmlInputPin *value() const;
+ explicit QUmlLinkEndCreationData(bool createQObject = true);
+ virtual ~QUmlLinkEndCreationData();
- // Owned attributes [LinkEndCreationData]
- Q_INVOKABLE QUmlInputPin *insertAt() const;
- Q_INVOKABLE bool isReplaceAll() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [LinkEndData]
- void setEnd(QUmlProperty *end);
- void addQualifier(UmlQualifierValue *qualifier);
- void removeQualifier(UmlQualifierValue *qualifier);
- void setValue(QUmlInputPin *value);
-
- // Slots for owned attributes [LinkEndCreationData]
+ // Owned attributes
+ QUmlInputPin *insertAt() const;
void setInsertAt(QUmlInputPin *insertAt);
+ bool isReplaceAll() const;
void setReplaceAll(bool isReplaceAll);
+
+protected:
+ QUmlInputPin *_insertAt;
+ bool _isReplaceAll;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLinkEndCreationData *)
-Q_DECLARE_METATYPE(QList<QUmlLinkEndCreationData *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLinkEndCreationData *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLinkEndCreationData) *)
QT_END_HEADER
diff --git a/src/uml/qumllinkenddata.cpp b/src/uml/qumllinkenddata.cpp
index b3dd203d..b0bd6cde 100644
--- a/src/uml/qumllinkenddata.cpp
+++ b/src/uml/qumllinkenddata.cpp
@@ -40,133 +40,118 @@
****************************************************************************/
#include "qumllinkenddata.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumllinkenddataobject_p.h"
+
#include <QtUml/QUmlInputPin>
#include <QtUml/QUmlProperty>
#include <QtUml/QUmlQualifierValue>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlLinkEndData
+ \class QUmlLinkEndData
\inmodule QtUml
\brief A link end data 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 a link action. 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 statically-specified 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 a link end data. Each association end is identified separately with an instance of the LinkEndData class.
*/
-
-QUmlLinkEndData::QUmlLinkEndData(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLinkEndData::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLinkEndData::ownedElement() const
+QUmlLinkEndData::QUmlLinkEndData(bool createQObject) :
+ _end(0),
+ _value(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlLinkEndDataObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLinkEndData::owner() const
+QUmlLinkEndData::~QUmlLinkEndData()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [LinkEndData]
+// OWNED ATTRIBUTES
/*!
Association end for which this link-end data specifies values.
*/
-QUmlProperty *QUmlLinkEndData::end() const
+QUmlProperty *
+QUmlLinkEndData::end() const
{
- return reinterpret_cast<QUmlProperty *>(_end);
-}
+ // This is a read-write association end
-/*!
- List of qualifier values
- */
-const QSet<QUmlQualifierValue *> QUmlLinkEndData::qualifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlQualifierValue *> *>(&_qualifier));
+ return _end;
}
-/*!
- 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.
- */
-QUmlInputPin *QUmlLinkEndData::value() const
+void QUmlLinkEndData::setEnd(QUmlProperty *end)
{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_end != end) {
+ _end = end;
+ if (end->asQObject() && this->asQObject())
+ QObject::connect(end->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEnd()));
+ }
+}
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ List of qualifier values
*/
-QSet<QUmlElement *> QUmlLinkEndData::allOwnedElements() const
+const QSet<QUmlQualifierValue *>
+QUmlLinkEndData::qualifier() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write association end
+
+ return _qualifier;
}
-/*!
- 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.
- */
-bool QUmlLinkEndData::mustBeOwned() const
+void QUmlLinkEndData::addQualifier(QUmlQualifierValue *qualifier)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ if (!_qualifier.contains(qualifier)) {
+ _qualifier.insert(qualifier);
+ if (qualifier->asQObject() && this->asQObject())
+ QObject::connect(qualifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeQualifier(QObject *)));
+ qualifier->asQObject()->setParent(this->asQObject());
-void QUmlLinkEndData::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust subsetted properties
+ addOwnedElement(qualifier);
+ }
}
-void QUmlLinkEndData::removeOwnedComment(UmlComment *ownedComment)
+void QUmlLinkEndData::removeQualifier(QUmlQualifierValue *qualifier)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [LinkEndData]
+ if (_qualifier.contains(qualifier)) {
+ _qualifier.remove(qualifier);
+ if (qualifier->asQObject())
+ qualifier->asQObject()->setParent(0);
-void QUmlLinkEndData::setEnd(QUmlProperty *end)
-{
- UmlLinkEndData::setEnd(end);
+ // Adjust subsetted properties
+ removeOwnedElement(qualifier);
+ }
}
-void QUmlLinkEndData::addQualifier(UmlQualifierValue *qualifier)
+/*!
+ 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.
+ */
+QUmlInputPin *
+QUmlLinkEndData::value() const
{
- UmlLinkEndData::addQualifier(qualifier);
-}
+ // This is a read-write association end
-void QUmlLinkEndData::removeQualifier(UmlQualifierValue *qualifier)
-{
- UmlLinkEndData::removeQualifier(qualifier);
+ return _value;
}
void QUmlLinkEndData::setValue(QUmlInputPin *value)
{
- UmlLinkEndData::setValue(value);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_value != value) {
+ _value = value;
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setValue()));
+ }
+}
diff --git a/src/uml/qumllinkenddata.h b/src/uml/qumllinkenddata.h
index 4a40e2b0..03a10f4c 100644
--- a/src/uml/qumllinkenddata.h
+++ b/src/uml/qumllinkenddata.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umllinkenddata_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,61 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlInputPin;
class QUmlProperty;
class QUmlQualifierValue;
-class Q_UML_EXPORT QUmlLinkEndData : public QObject, public UmlLinkEndData
+class Q_UML_EXPORT QUmlLinkEndData : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [LinkEndData]
- Q_PROPERTY(QUmlProperty * end READ end)
- Q_PROPERTY(QSet<QUmlQualifierValue *> qualifier READ qualifier)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
public:
- Q_INVOKABLE explicit QUmlLinkEndData(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ explicit QUmlLinkEndData(bool createQObject = true);
+ virtual ~QUmlLinkEndData();
- // Owned attributes [LinkEndData]
- Q_INVOKABLE QUmlProperty *end() const;
- Q_INVOKABLE const QSet<QUmlQualifierValue *> qualifier() const;
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [LinkEndData]
+ // Owned attributes
+ QUmlProperty *end() const;
void setEnd(QUmlProperty *end);
- void addQualifier(UmlQualifierValue *qualifier);
- void removeQualifier(UmlQualifierValue *qualifier);
+ const QSet<QUmlQualifierValue *> qualifier() const;
+ void addQualifier(QUmlQualifierValue *qualifier);
+ void removeQualifier(QUmlQualifierValue *qualifier);
+ QUmlInputPin *value() const;
void setValue(QUmlInputPin *value);
+
+protected:
+ QUmlProperty *_end;
+ QSet<QUmlQualifierValue *> _qualifier;
+ QUmlInputPin *_value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLinkEndData *)
-Q_DECLARE_METATYPE(QList<QUmlLinkEndData *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLinkEndData *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLinkEndData) *)
QT_END_HEADER
diff --git a/src/uml/qumllinkenddestructiondata.cpp b/src/uml/qumllinkenddestructiondata.cpp
index fe884b88..7fc92fce 100644
--- a/src/uml/qumllinkenddestructiondata.cpp
+++ b/src/uml/qumllinkenddestructiondata.cpp
@@ -40,163 +40,75 @@
****************************************************************************/
#include "qumllinkenddestructiondata.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlQualifierValue>
+#include "private/qumllinkenddestructiondataobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlLinkEndDestructionData
+ \class QUmlLinkEndDestructionData
\inmodule QtUml
\brief A link end destruction data is not an action. It is an element that identifies links. It identifies one end of a link to be destroyed by destroy link action.
*/
-
-QUmlLinkEndDestructionData::QUmlLinkEndDestructionData(QObject *parent) :
- QObject(parent)
+QUmlLinkEndDestructionData::QUmlLinkEndDestructionData(bool createQObject) :
+ QUmlLinkEndData(false),
+ _destroyAt(0),
+ _isDestroyDuplicates(false)
{
+ if (createQObject)
+ _qObject = new QUmlLinkEndDestructionDataObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLinkEndDestructionData::ownedComment() const
+QUmlLinkEndDestructionData::~QUmlLinkEndDestructionData()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLinkEndDestructionData::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ 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.
*/
-QUmlElement *QUmlLinkEndDestructionData::owner() const
+QUmlInputPin *
+QUmlLinkEndDestructionData::destroyAt() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [LinkEndData]
-
-/*!
- Association end for which this link-end data specifies values.
- */
-QUmlProperty *QUmlLinkEndDestructionData::end() const
-{
- return reinterpret_cast<QUmlProperty *>(_end);
+ return _destroyAt;
}
-/*!
- List of qualifier values
- */
-const QSet<QUmlQualifierValue *> QUmlLinkEndDestructionData::qualifier() const
+void QUmlLinkEndDestructionData::setDestroyAt(QUmlInputPin *destroyAt)
{
- return *(reinterpret_cast<const QSet<QUmlQualifierValue *> *>(&_qualifier));
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QUmlInputPin *QUmlLinkEndDestructionData::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OWNED ATTRIBUTES [LinkEndDestructionData]
-
-/*!
- 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.
- */
-QUmlInputPin *QUmlLinkEndDestructionData::destroyAt() const
-{
- return reinterpret_cast<QUmlInputPin *>(_destroyAt);
+ if (_destroyAt != destroyAt) {
+ _destroyAt = destroyAt;
+ if (destroyAt->asQObject() && this->asQObject())
+ QObject::connect(destroyAt->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDestroyAt()));
+ }
}
/*!
Specifies whether to destroy duplicates of the value in nonunique association ends.
*/
-bool QUmlLinkEndDestructionData::isDestroyDuplicates() const
+bool
+QUmlLinkEndDestructionData::isDestroyDuplicates() const
{
- return _isDestroyDuplicates;
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLinkEndDestructionData::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLinkEndDestructionData::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLinkEndDestructionData::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLinkEndDestructionData::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkEndData]
-
-void QUmlLinkEndDestructionData::setEnd(QUmlProperty *end)
-{
- UmlLinkEndData::setEnd(end);
-}
-
-void QUmlLinkEndDestructionData::addQualifier(UmlQualifierValue *qualifier)
-{
- UmlLinkEndData::addQualifier(qualifier);
-}
-
-void QUmlLinkEndDestructionData::removeQualifier(UmlQualifierValue *qualifier)
-{
- UmlLinkEndData::removeQualifier(qualifier);
-}
-
-void QUmlLinkEndDestructionData::setValue(QUmlInputPin *value)
-{
- UmlLinkEndData::setValue(value);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkEndDestructionData]
-
-void QUmlLinkEndDestructionData::setDestroyAt(QUmlInputPin *destroyAt)
-{
- UmlLinkEndDestructionData::setDestroyAt(destroyAt);
+ return _isDestroyDuplicates;
}
void QUmlLinkEndDestructionData::setDestroyDuplicates(bool isDestroyDuplicates)
{
- UmlLinkEndDestructionData::setDestroyDuplicates(isDestroyDuplicates);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isDestroyDuplicates != isDestroyDuplicates) {
+ _isDestroyDuplicates = isDestroyDuplicates;
+ }
+}
diff --git a/src/uml/qumllinkenddestructiondata.h b/src/uml/qumllinkenddestructiondata.h
index 632171bf..30cead9b 100644
--- a/src/uml/qumllinkenddestructiondata.h
+++ b/src/uml/qumllinkenddestructiondata.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umllinkenddestructiondata_p.h"
+#include <QtUml/QUmlLinkEndData>
+
QT_BEGIN_HEADER
@@ -52,73 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlInputPin;
-class QUmlProperty;
-class QUmlQualifierValue;
-class Q_UML_EXPORT QUmlLinkEndDestructionData : public QObject, public UmlLinkEndDestructionData
+class Q_UML_EXPORT QUmlLinkEndDestructionData : public QUmlLinkEndData
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [LinkEndData]
- Q_PROPERTY(QUmlProperty * end READ end)
- Q_PROPERTY(QSet<QUmlQualifierValue *> qualifier READ qualifier)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
- // Properties [LinkEndDestructionData]
- Q_PROPERTY(QUmlInputPin * destroyAt READ destroyAt)
- Q_PROPERTY(bool isDestroyDuplicates READ isDestroyDuplicates)
-
public:
- Q_INVOKABLE explicit QUmlLinkEndDestructionData(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [LinkEndData]
- Q_INVOKABLE QUmlProperty *end() const;
- Q_INVOKABLE const QSet<QUmlQualifierValue *> qualifier() const;
- Q_INVOKABLE QUmlInputPin *value() const;
+ explicit QUmlLinkEndDestructionData(bool createQObject = true);
+ virtual ~QUmlLinkEndDestructionData();
- // Owned attributes [LinkEndDestructionData]
- Q_INVOKABLE QUmlInputPin *destroyAt() const;
- Q_INVOKABLE bool isDestroyDuplicates() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [LinkEndData]
- void setEnd(QUmlProperty *end);
- void addQualifier(UmlQualifierValue *qualifier);
- void removeQualifier(UmlQualifierValue *qualifier);
- void setValue(QUmlInputPin *value);
-
- // Slots for owned attributes [LinkEndDestructionData]
+ // Owned attributes
+ QUmlInputPin *destroyAt() const;
void setDestroyAt(QUmlInputPin *destroyAt);
+ bool isDestroyDuplicates() const;
void setDestroyDuplicates(bool isDestroyDuplicates);
+
+protected:
+ QUmlInputPin *_destroyAt;
+ bool _isDestroyDuplicates;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLinkEndDestructionData *)
-Q_DECLARE_METATYPE(QList<QUmlLinkEndDestructionData *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLinkEndDestructionData *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLinkEndDestructionData) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralboolean.cpp b/src/uml/qumlliteralboolean.cpp
index 8fbf516b..d91b49cf 100644
--- a/src/uml/qumlliteralboolean.cpp
+++ b/src/uml/qumlliteralboolean.cpp
@@ -40,276 +40,62 @@
****************************************************************************/
#include "qumlliteralboolean.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlliteralbooleanobject_p.h"
/*!
- \class UmlLiteralBoolean
+ \class QUmlLiteralBoolean
\inmodule QtUml
\brief A literal Boolean is a specification of a Boolean value.
*/
-
-QUmlLiteralBoolean::QUmlLiteralBoolean(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralBoolean::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralBoolean::ownedElement() const
+QUmlLiteralBoolean::QUmlLiteralBoolean(bool createQObject) :
+ _value(false)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlLiteralBooleanObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralBoolean::owner() const
+QUmlLiteralBoolean::~QUmlLiteralBoolean()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralBoolean::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralBoolean::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralBoolean::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralBoolean::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralBoolean::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralBoolean::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralBoolean::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralBoolean::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralBoolean::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [LiteralBoolean]
+// OWNED ATTRIBUTES
/*!
The specified Boolean value.
*/
-bool QUmlLiteralBoolean::value() const
-{
- return _value;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralBoolean::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralBoolean::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralBoolean::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralBoolean::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralBoolean::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralBoolean::separator() const
+bool
+QUmlLiteralBoolean::value() const
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write property
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralBoolean::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlLiteralBoolean::integerValue() const
-{
- return UmlValueSpecification::integerValue();
+ return _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.
- */
-bool QUmlLiteralBoolean::isCompatibleWith(QUmlParameterableElement *p) const
+void QUmlLiteralBoolean::setValue(bool value)
{
- return UmlValueSpecification::isCompatibleWith(p);
-}
+ // This is a read-write property
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlLiteralBoolean::isNull() const
-{
- return UmlValueSpecification::isNull();
+ if (_value != value) {
+ _value = value;
+ }
}
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlLiteralBoolean::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlLiteralBoolean::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
-
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlLiteralBoolean::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// OPERATIONS [LiteralBoolean]
+// OPERATIONS
/*!
The query booleanValue() gives the value.
*/
bool QUmlLiteralBoolean::booleanValue() const
{
- return UmlLiteralBoolean::booleanValue();
+ qWarning("UmlLiteralBoolean::booleanValue(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -317,74 +103,8 @@ bool QUmlLiteralBoolean::booleanValue() const
*/
bool QUmlLiteralBoolean::isComputable() const
{
- return UmlLiteralBoolean::isComputable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLiteralBoolean::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLiteralBoolean::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralBoolean::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralBoolean::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralBoolean::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralBoolean::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralBoolean::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
+ qWarning("UmlLiteralBoolean::isComputable(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralBoolean::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralBoolean::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return bool ();
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralBoolean::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LiteralBoolean]
-
-void QUmlLiteralBoolean::setValue(bool value)
-{
- UmlLiteralBoolean::setValue(value);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralboolean.h b/src/uml/qumlliteralboolean.h
index 336f8c2d..7c7bee89 100644
--- a/src/uml/qumlliteralboolean.h
+++ b/src/uml/qumlliteralboolean.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralboolean_p.h"
+#include <QtUml/QUmlLiteralSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,130 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralBoolean : public QObject, public UmlLiteralBoolean
+class Q_UML_EXPORT QUmlLiteralBoolean : public QUmlLiteralSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [LiteralBoolean]
- Q_PROPERTY(bool value READ value)
-
public:
- Q_INVOKABLE explicit QUmlLiteralBoolean(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlLiteralBoolean(bool createQObject = true);
+ virtual ~QUmlLiteralBoolean();
- // Owned attributes [LiteralBoolean]
- Q_INVOKABLE bool value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [LiteralBoolean]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE bool isComputable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Owned attributes
+ bool value() const;
+ void setValue(bool value);
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+ // Operations
+ bool booleanValue() const;
+ bool isComputable() const;
- // Slots for owned attributes [LiteralBoolean]
- void setValue(bool value);
+protected:
+ bool _value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralBoolean *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralBoolean *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralBoolean *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralBoolean) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralinteger.cpp b/src/uml/qumlliteralinteger.cpp
index 95184c6d..ab66283e 100644
--- a/src/uml/qumlliteralinteger.cpp
+++ b/src/uml/qumlliteralinteger.cpp
@@ -40,276 +40,62 @@
****************************************************************************/
#include "qumlliteralinteger.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlliteralintegerobject_p.h"
/*!
- \class UmlLiteralInteger
+ \class QUmlLiteralInteger
\inmodule QtUml
\brief A literal integer is a specification of an integer value.
*/
-
-QUmlLiteralInteger::QUmlLiteralInteger(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralInteger::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralInteger::ownedElement() const
+QUmlLiteralInteger::QUmlLiteralInteger(bool createQObject) :
+ _value(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlLiteralIntegerObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralInteger::owner() const
+QUmlLiteralInteger::~QUmlLiteralInteger()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralInteger::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralInteger::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralInteger::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralInteger::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralInteger::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralInteger::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralInteger::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralInteger::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralInteger::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [LiteralInteger]
+// OWNED ATTRIBUTES
/*!
The specified Integer value.
*/
-int QUmlLiteralInteger::value() const
-{
- return _value;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralInteger::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralInteger::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralInteger::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralInteger::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralInteger::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralInteger::separator() const
+int
+QUmlLiteralInteger::value() const
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write property
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralInteger::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlLiteralInteger::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
+ return _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.
- */
-bool QUmlLiteralInteger::isCompatibleWith(QUmlParameterableElement *p) const
+void QUmlLiteralInteger::setValue(int value)
{
- return UmlValueSpecification::isCompatibleWith(p);
-}
+ // This is a read-write property
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlLiteralInteger::isNull() const
-{
- return UmlValueSpecification::isNull();
+ if (_value != value) {
+ _value = value;
+ }
}
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlLiteralInteger::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlLiteralInteger::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
-
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlLiteralInteger::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// OPERATIONS [LiteralInteger]
+// OPERATIONS
/*!
The query integerValue() gives the value.
*/
int QUmlLiteralInteger::integerValue() const
{
- return UmlLiteralInteger::integerValue();
+ qWarning("UmlLiteralInteger::integerValue(): to be implemented (operation)");
+
+ return int ();
}
/*!
@@ -317,74 +103,8 @@ int QUmlLiteralInteger::integerValue() const
*/
bool QUmlLiteralInteger::isComputable() const
{
- return UmlLiteralInteger::isComputable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLiteralInteger::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLiteralInteger::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralInteger::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralInteger::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralInteger::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralInteger::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralInteger::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
+ qWarning("UmlLiteralInteger::isComputable(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralInteger::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralInteger::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return bool ();
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralInteger::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LiteralInteger]
-
-void QUmlLiteralInteger::setValue(int value)
-{
- UmlLiteralInteger::setValue(value);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralinteger.h b/src/uml/qumlliteralinteger.h
index a4e84073..40c415cf 100644
--- a/src/uml/qumlliteralinteger.h
+++ b/src/uml/qumlliteralinteger.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralinteger_p.h"
+#include <QtUml/QUmlLiteralSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,130 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralInteger : public QObject, public UmlLiteralInteger
+class Q_UML_EXPORT QUmlLiteralInteger : public QUmlLiteralSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [LiteralInteger]
- Q_PROPERTY(int value READ value)
-
public:
- Q_INVOKABLE explicit QUmlLiteralInteger(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlLiteralInteger(bool createQObject = true);
+ virtual ~QUmlLiteralInteger();
- // Owned attributes [LiteralInteger]
- Q_INVOKABLE int value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [LiteralInteger]
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isComputable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Owned attributes
+ int value() const;
+ void setValue(int value);
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+ // Operations
+ int integerValue() const;
+ bool isComputable() const;
- // Slots for owned attributes [LiteralInteger]
- void setValue(int value);
+protected:
+ int _value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralInteger *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralInteger *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralInteger *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralInteger) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralnull.cpp b/src/uml/qumlliteralnull.cpp
index 1222b6ba..d8b7edc2 100644
--- a/src/uml/qumlliteralnull.cpp
+++ b/src/uml/qumlliteralnull.cpp
@@ -40,266 +40,39 @@
****************************************************************************/
#include "qumlliteralnull.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlliteralnullobject_p.h"
/*!
- \class UmlLiteralNull
+ \class QUmlLiteralNull
\inmodule QtUml
\brief A literal null specifies the lack of a value.
*/
-
-QUmlLiteralNull::QUmlLiteralNull(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralNull::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralNull::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralNull::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralNull::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralNull::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralNull::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralNull::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralNull::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralNull::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralNull::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralNull::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralNull::visibility() const
+QUmlLiteralNull::QUmlLiteralNull(bool createQObject)
{
- return _visibility;
+ if (createQObject)
+ _qObject = new QUmlLiteralNullObject(this);
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralNull::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralNull::mustBeOwned() const
+QUmlLiteralNull::~QUmlLiteralNull()
{
- return UmlElement::mustBeOwned();
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralNull::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralNull::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralNull::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralNull::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralNull::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlLiteralNull::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlLiteralNull::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralNull::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlLiteralNull::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlLiteralNull::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
-
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlLiteralNull::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// OPERATIONS [LiteralNull]
+// OPERATIONS
/*!
The query isComputable() is redefined to be true.
*/
bool QUmlLiteralNull::isComputable() const
{
- return UmlLiteralNull::isComputable();
+ qWarning("UmlLiteralNull::isComputable(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -307,67 +80,8 @@ bool QUmlLiteralNull::isComputable() const
*/
bool QUmlLiteralNull::isNull() const
{
- return UmlLiteralNull::isNull();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ qWarning("UmlLiteralNull::isNull(): to be implemented (operation)");
-void QUmlLiteralNull::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return bool ();
}
-void QUmlLiteralNull::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralNull::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralNull::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralNull::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralNull::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralNull::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralNull::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralNull::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralNull::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralnull.h b/src/uml/qumlliteralnull.h
index b7be4a00..1f57d718 100644
--- a/src/uml/qumlliteralnull.h
+++ b/src/uml/qumlliteralnull.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralnull_p.h"
+#include <QtUml/QUmlLiteralSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,121 +52,23 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralNull : public QObject, public UmlLiteralNull
+class Q_UML_EXPORT QUmlLiteralNull : public QUmlLiteralSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_INVOKABLE explicit QUmlLiteralNull(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [LiteralNull]
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
+ explicit QUmlLiteralNull(bool createQObject = true);
+ virtual ~QUmlLiteralNull();
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Operations
+ bool isComputable() const;
+ bool isNull() const;
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralNull *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralNull *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralNull *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralNull) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralreal.cpp b/src/uml/qumlliteralreal.cpp
index 6be0e14b..c9fbc69f 100644
--- a/src/uml/qumlliteralreal.cpp
+++ b/src/uml/qumlliteralreal.cpp
@@ -40,273 +40,58 @@
****************************************************************************/
#include "qumlliteralreal.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlliteralrealobject_p.h"
/*!
- \class UmlLiteralReal
+ \class QUmlLiteralReal
\inmodule QtUml
\brief A literal real is a specification of a real value.
*/
-
-QUmlLiteralReal::QUmlLiteralReal(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralReal::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralReal::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralReal::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralReal::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralReal::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralReal::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralReal::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralReal::qualifiedName() const
+QUmlLiteralReal::QUmlLiteralReal(bool createQObject)
{
- return UmlNamedElement::qualifiedName();
+ if (createQObject)
+ _qObject = new QUmlLiteralRealObject(this);
}
-// OWNED ATTRIBUTES [TypedElement]
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralReal::type() const
+QUmlLiteralReal::~QUmlLiteralReal()
{
- return reinterpret_cast<QUmlType *>(_type);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ParameterableElement]
+// OWNED ATTRIBUTES
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralReal::owningTemplateParameter() const
+double
+QUmlLiteralReal::value() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
+ // This is a read-write property
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralReal::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralReal::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [LiteralReal]
-
-double QUmlLiteralReal::value() const
-{
return _value;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralReal::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralReal::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralReal::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralReal::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralReal::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralReal::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralReal::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlLiteralReal::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlLiteralReal::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralReal::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlLiteralReal::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlLiteralReal::stringValue() const
+void QUmlLiteralReal::setValue(double value)
{
- return UmlValueSpecification::stringValue();
-}
+ // This is a read-write property
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlLiteralReal::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
+ if (_value != value) {
+ _value = value;
+ }
}
-// OPERATIONS [LiteralReal]
+// OPERATIONS
/*!
The query isComputable() is redefined to be true.
*/
bool QUmlLiteralReal::isComputable() const
{
- return UmlLiteralReal::isComputable();
+ qWarning("UmlLiteralReal::isComputable(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -314,74 +99,8 @@ bool QUmlLiteralReal::isComputable() const
*/
double QUmlLiteralReal::realValue() const
{
- return UmlLiteralReal::realValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLiteralReal::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLiteralReal::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralReal::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralReal::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralReal::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralReal::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralReal::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
+ qWarning("UmlLiteralReal::realValue(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralReal::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralReal::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return double ();
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralReal::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LiteralReal]
-
-void QUmlLiteralReal::setValue(double value)
-{
- UmlLiteralReal::setValue(value);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralreal.h b/src/uml/qumlliteralreal.h
index e9ebd955..a8286d33 100644
--- a/src/uml/qumlliteralreal.h
+++ b/src/uml/qumlliteralreal.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralreal_p.h"
+#include <QtUml/QUmlLiteralSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,130 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralReal : public QObject, public UmlLiteralReal
+class Q_UML_EXPORT QUmlLiteralReal : public QUmlLiteralSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [LiteralReal]
- Q_PROPERTY(double value READ value)
-
public:
- Q_INVOKABLE explicit QUmlLiteralReal(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlLiteralReal(bool createQObject = true);
+ virtual ~QUmlLiteralReal();
- // Owned attributes [LiteralReal]
- Q_INVOKABLE double value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [LiteralReal]
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE double realValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Owned attributes
+ double value() const;
+ void setValue(double value);
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+ // Operations
+ bool isComputable() const;
+ double realValue() const;
- // Slots for owned attributes [LiteralReal]
- void setValue(double value);
+protected:
+ double _value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralReal *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralReal *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralReal *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralReal) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralspecification.cpp b/src/uml/qumlliteralspecification.cpp
index 21b880b8..7d4dd2f1 100644
--- a/src/uml/qumlliteralspecification.cpp
+++ b/src/uml/qumlliteralspecification.cpp
@@ -40,332 +40,18 @@
****************************************************************************/
#include "qumlliteralspecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlLiteralSpecification
+ \class QUmlLiteralSpecification
\inmodule QtUml
\brief A literal specification identifies a literal constant being modeled.
*/
-
-QUmlLiteralSpecification::QUmlLiteralSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralSpecification::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralSpecification::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralSpecification::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralSpecification::allOwningPackages() const
+QUmlLiteralSpecification::QUmlLiteralSpecification()
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
}
-/*!
- 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.
- */
-bool QUmlLiteralSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralSpecification::separator() const
+QUmlLiteralSpecification::~QUmlLiteralSpecification()
{
- return UmlNamedElement::separator();
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralSpecification::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlLiteralSpecification::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlLiteralSpecification::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralSpecification::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralSpecification::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlLiteralSpecification::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlLiteralSpecification::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlLiteralSpecification::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
-
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlLiteralSpecification::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLiteralSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLiteralSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralSpecification::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralSpecification::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralSpecification::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralspecification.h b/src/uml/qumlliteralspecification.h
index 8db12965..c05c6c78 100644
--- a/src/uml/qumlliteralspecification.h
+++ b/src/uml/qumlliteralspecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralspecification_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,119 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralSpecification : public QObject, public UmlLiteralSpecification
+class Q_UML_EXPORT QUmlLiteralSpecification : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_DECL_HIDDEN explicit QUmlLiteralSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
+ virtual ~QUmlLiteralSpecification();
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+protected:
+ explicit QUmlLiteralSpecification();
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralstring.cpp b/src/uml/qumlliteralstring.cpp
index e21e701e..5eeb4d5a 100644
--- a/src/uml/qumlliteralstring.cpp
+++ b/src/uml/qumlliteralstring.cpp
@@ -40,276 +40,61 @@
****************************************************************************/
#include "qumlliteralstring.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlliteralstringobject_p.h"
/*!
- \class UmlLiteralString
+ \class QUmlLiteralString
\inmodule QtUml
\brief A literal string is a specification of a string value.
*/
-
-QUmlLiteralString::QUmlLiteralString(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralString::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralString::ownedElement() const
+QUmlLiteralString::QUmlLiteralString(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlLiteralStringObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralString::owner() const
+QUmlLiteralString::~QUmlLiteralString()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralString::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralString::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralString::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralString::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralString::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralString::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralString::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralString::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralString::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [LiteralString]
+// OWNED ATTRIBUTES
/*!
The specified String value.
*/
-QString QUmlLiteralString::value() const
-{
- return _value;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralString::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralString::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralString::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralString::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralString::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralString::separator() const
+QString
+QUmlLiteralString::value() const
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write property
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralString::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlLiteralString::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
+ return _value;
}
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlLiteralString::integerValue() const
+void QUmlLiteralString::setValue(QString value)
{
- return UmlValueSpecification::integerValue();
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlLiteralString::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
+ if (_value != value) {
+ _value = value;
+ }
}
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlLiteralString::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlLiteralString::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
-
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlLiteralString::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// OPERATIONS [LiteralString]
+// OPERATIONS
/*!
The query isComputable() is redefined to be true.
*/
bool QUmlLiteralString::isComputable() const
{
- return UmlLiteralString::isComputable();
+ qWarning("UmlLiteralString::isComputable(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -317,74 +102,8 @@ bool QUmlLiteralString::isComputable() const
*/
QString QUmlLiteralString::stringValue() const
{
- return UmlLiteralString::stringValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLiteralString::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLiteralString::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralString::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralString::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralString::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralString::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralString::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
+ qWarning("UmlLiteralString::stringValue(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralString::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralString::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return QString ();
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralString::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LiteralString]
-
-void QUmlLiteralString::setValue(QString value)
-{
- UmlLiteralString::setValue(value);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralstring.h b/src/uml/qumlliteralstring.h
index 4473eae6..1d2774df 100644
--- a/src/uml/qumlliteralstring.h
+++ b/src/uml/qumlliteralstring.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralstring_p.h"
+#include <QtUml/QUmlLiteralSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,130 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralString : public QObject, public UmlLiteralString
+class Q_UML_EXPORT QUmlLiteralString : public QUmlLiteralSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [LiteralString]
- Q_PROPERTY(QString value READ value)
-
public:
- Q_INVOKABLE explicit QUmlLiteralString(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlLiteralString(bool createQObject = true);
+ virtual ~QUmlLiteralString();
- // Owned attributes [LiteralString]
- Q_INVOKABLE QString value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [LiteralString]
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE QString stringValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Owned attributes
+ QString value() const;
+ void setValue(QString value);
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+ // Operations
+ bool isComputable() const;
+ QString stringValue() const;
- // Slots for owned attributes [LiteralString]
- void setValue(QString value);
+protected:
+ QString _value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralString *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralString *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralString *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralString) *)
QT_END_HEADER
diff --git a/src/uml/qumlliteralunlimitednatural.cpp b/src/uml/qumlliteralunlimitednatural.cpp
index ab8d297e..43d1bdcc 100644
--- a/src/uml/qumlliteralunlimitednatural.cpp
+++ b/src/uml/qumlliteralunlimitednatural.cpp
@@ -40,275 +40,62 @@
****************************************************************************/
#include "qumlliteralunlimitednatural.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlliteralunlimitednaturalobject_p.h"
/*!
- \class UmlLiteralUnlimitedNatural
+ \class QUmlLiteralUnlimitedNatural
\inmodule QtUml
\brief A literal unlimited natural is a specification of an unlimited natural number.
*/
-
-QUmlLiteralUnlimitedNatural::QUmlLiteralUnlimitedNatural(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLiteralUnlimitedNatural::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLiteralUnlimitedNatural::ownedElement() const
+QUmlLiteralUnlimitedNatural::QUmlLiteralUnlimitedNatural(bool createQObject) :
+ _value(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlLiteralUnlimitedNaturalObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLiteralUnlimitedNatural::owner() const
+QUmlLiteralUnlimitedNatural::~QUmlLiteralUnlimitedNatural()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLiteralUnlimitedNatural::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLiteralUnlimitedNatural::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLiteralUnlimitedNatural::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLiteralUnlimitedNatural::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLiteralUnlimitedNatural::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlLiteralUnlimitedNatural::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlLiteralUnlimitedNatural::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlLiteralUnlimitedNatural::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlLiteralUnlimitedNatural::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [LiteralUnlimitedNatural]
+// OWNED ATTRIBUTES
/*!
The specified UnlimitedNatural value.
*/
-int QUmlLiteralUnlimitedNatural::value() const
-{
- return _value;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLiteralUnlimitedNatural::allOwnedElements() const
+int
+QUmlLiteralUnlimitedNatural::value() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlLiteralUnlimitedNatural::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLiteralUnlimitedNatural::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLiteralUnlimitedNatural::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralUnlimitedNatural::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlLiteralUnlimitedNatural::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlLiteralUnlimitedNatural::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlLiteralUnlimitedNatural::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlLiteralUnlimitedNatural::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlLiteralUnlimitedNatural::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
+ return _value;
}
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlLiteralUnlimitedNatural::isNull() const
+void QUmlLiteralUnlimitedNatural::setValue(int value)
{
- return UmlValueSpecification::isNull();
-}
+ // This is a read-write property
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlLiteralUnlimitedNatural::realValue() const
-{
- return UmlValueSpecification::realValue();
+ if (_value != value) {
+ _value = value;
+ }
}
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlLiteralUnlimitedNatural::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
-// OPERATIONS [LiteralUnlimitedNatural]
+// OPERATIONS
/*!
The query isComputable() is redefined to be true.
*/
bool QUmlLiteralUnlimitedNatural::isComputable() const
{
- return UmlLiteralUnlimitedNatural::isComputable();
+ qWarning("UmlLiteralUnlimitedNatural::isComputable(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -316,74 +103,8 @@ bool QUmlLiteralUnlimitedNatural::isComputable() const
*/
int QUmlLiteralUnlimitedNatural::unlimitedValue() const
{
- return UmlLiteralUnlimitedNatural::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLiteralUnlimitedNatural::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLiteralUnlimitedNatural::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLiteralUnlimitedNatural::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLiteralUnlimitedNatural::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLiteralUnlimitedNatural::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLiteralUnlimitedNatural::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlLiteralUnlimitedNatural::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
+ qWarning("UmlLiteralUnlimitedNatural::unlimitedValue(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlLiteralUnlimitedNatural::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlLiteralUnlimitedNatural::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return int ();
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlLiteralUnlimitedNatural::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LiteralUnlimitedNatural]
-
-void QUmlLiteralUnlimitedNatural::setValue(int value)
-{
- UmlLiteralUnlimitedNatural::setValue(value);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlliteralunlimitednatural.h b/src/uml/qumlliteralunlimitednatural.h
index 77898b5d..661904b8 100644
--- a/src/uml/qumlliteralunlimitednatural.h
+++ b/src/uml/qumlliteralunlimitednatural.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlliteralunlimitednatural_p.h"
+#include <QtUml/QUmlLiteralSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,130 +52,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlLiteralUnlimitedNatural : public QObject, public UmlLiteralUnlimitedNatural
+class Q_UML_EXPORT QUmlLiteralUnlimitedNatural : public QUmlLiteralSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [LiteralUnlimitedNatural]
- Q_PROPERTY(int value READ value)
-
public:
- Q_INVOKABLE explicit QUmlLiteralUnlimitedNatural(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlLiteralUnlimitedNatural(bool createQObject = true);
+ virtual ~QUmlLiteralUnlimitedNatural();
- // Owned attributes [LiteralUnlimitedNatural]
- Q_INVOKABLE int value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
-
- // Operations [LiteralUnlimitedNatural]
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Owned attributes
+ int value() const;
+ void setValue(int value);
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+ // Operations
+ bool isComputable() const;
+ int unlimitedValue() const;
- // Slots for owned attributes [LiteralUnlimitedNatural]
- void setValue(int value);
+protected:
+ int _value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLiteralUnlimitedNatural *)
-Q_DECLARE_METATYPE(QList<QUmlLiteralUnlimitedNatural *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLiteralUnlimitedNatural *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLiteralUnlimitedNatural) *)
QT_END_HEADER
diff --git a/src/uml/qumlloopnode.cpp b/src/uml/qumlloopnode.cpp
index fd2e26d7..d545ce96 100644
--- a/src/uml/qumlloopnode.cpp
+++ b/src/uml/qumlloopnode.cpp
@@ -40,888 +40,300 @@
****************************************************************************/
#include "qumlloopnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlloopnodeobject_p.h"
+
#include <QtUml/QUmlExecutableNode>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlLoopNode
+ \class QUmlLoopNode
\inmodule QtUml
\brief A loop node is a structured activity node that represents a loop with setup, test, and body sections.
*/
-
-QUmlLoopNode::QUmlLoopNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlLoopNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlLoopNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlLoopNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlLoopNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlLoopNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlLoopNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlLoopNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlLoopNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlLoopNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlLoopNode::isLeaf() const
+QUmlLoopNode::QUmlLoopNode(bool createQObject) :
+ QUmlStructuredActivityNode(false),
+ _decider(0),
+ _isTestedFirst(false)
{
- return _isLeaf;
+ if (createQObject)
+ _qObject = new QUmlLoopNodeObject(this);
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlLoopNode::redefinedElement() const
+QUmlLoopNode::~QUmlLoopNode()
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlLoopNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
+// OWNED ATTRIBUTES
/*!
- Groups containing the node.
+ 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.
*/
-const QSet<QUmlActivityGroup *> QUmlLoopNode::inGroup() const
+const QList<QUmlOutputPin *>
+QUmlLoopNode::bodyOutput() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
+ // This is a read-write association end
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlLoopNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
+ return _bodyOutput;
}
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlLoopNode::inPartition() const
+void QUmlLoopNode::addBodyOutput(QUmlOutputPin *bodyOutput)
{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
+ // This is a read-write association end
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlLoopNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
+ if (!_bodyOutput.contains(bodyOutput)) {
+ _bodyOutput.append(bodyOutput);
+ if (bodyOutput->asQObject() && this->asQObject())
+ QObject::connect(bodyOutput->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeBodyOutput(QObject *)));
+ }
}
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlLoopNode::incoming() const
+void QUmlLoopNode::removeBodyOutput(QUmlOutputPin *bodyOutput)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
+ // This is a read-write association end
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlLoopNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (_bodyOutput.contains(bodyOutput)) {
+ _bodyOutput.removeAll(bodyOutput);
+ }
}
/*!
- Inherited nodes replaced by this node in a specialization of the activity.
+ 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.
*/
-const QSet<QUmlActivityNode *> QUmlLoopNode::redefinedNode() const
+const QSet<QUmlExecutableNode *>
+QUmlLoopNode::bodyPart() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
+ // This is a read-write association end
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlLoopNode::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
+ return _bodyPart;
}
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlLoopNode::context() const
+void QUmlLoopNode::addBodyPart(QUmlExecutableNode *bodyPart)
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
+ // This is a read-write association end
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlLoopNode::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!_bodyPart.contains(bodyPart)) {
+ _bodyPart.insert(bodyPart);
+ if (bodyPart->asQObject() && this->asQObject())
+ QObject::connect(bodyPart->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeBodyPart(QObject *)));
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlLoopNode::isLocallyReentrant() const
+void QUmlLoopNode::removeBodyPart(QUmlExecutableNode *bodyPart)
{
- return _isLocallyReentrant;
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlLoopNode::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
+ if (_bodyPart.contains(bodyPart)) {
+ _bodyPart.remove(bodyPart);
+ }
}
/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlLoopNode::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
+ 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.
*/
-const QList<QUmlOutputPin *> QUmlLoopNode::output() const
+QUmlOutputPin *
+QUmlLoopNode::decider() const
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlLoopNode::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ return _decider;
}
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlLoopNode::importedMember() const
+void QUmlLoopNode::setDecider(QUmlOutputPin *decider)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlLoopNode::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ if (_decider != decider) {
+ _decider = decider;
+ if (decider->asQObject() && this->asQObject())
+ QObject::connect(decider->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDecider()));
+ }
}
/*!
- A collection of NamedElements owned by the Namespace.
+ If true, the test is performed before the first execution of the body. If false, the body is executed once before the test is performed.
*/
-const QSet<QUmlNamedElement *> QUmlLoopNode::ownedMember() const
+bool
+QUmlLoopNode::isTestedFirst() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
+ // This is a read-write property
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlLoopNode::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ return _isTestedFirst;
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlLoopNode::packageImport() const
+void QUmlLoopNode::setTestedFirst(bool isTestedFirst)
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ActivityGroup]
+ // This is a read-write property
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlLoopNode::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
+ if (_isTestedFirst != isTestedFirst) {
+ _isTestedFirst = isTestedFirst;
+ }
}
/*!
- Nodes immediately contained in the group.
+ A list of output pins 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.
*/
-const QSet<QUmlActivityNode *> QUmlLoopNode::containedNode() const
+const QList<QUmlOutputPin *>
+QUmlLoopNode::loopVariable() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
+ // This is a read-write association end
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlLoopNode::subgroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
+ return _loopVariable;
}
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlLoopNode::superGroup() const
+void QUmlLoopNode::addLoopVariable(QUmlOutputPin *loopVariable)
{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
-}
-
-// OWNED ATTRIBUTES [StructuredActivityNode]
+ // This is a read-write association end
-/*!
- Activity immediately containing the node.
- */
-QUmlActivity *QUmlLoopNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
+ if (!_loopVariable.contains(loopVariable)) {
+ _loopVariable.append(loopVariable);
+ if (loopVariable->asQObject() && this->asQObject())
+ QObject::connect(loopVariable->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeLoopVariable(QObject *)));
+ }
}
-/*!
- Edges immediately contained in the structured node.
- */
-const QSet<QUmlActivityEdge *> QUmlLoopNode::edge() const
+void QUmlLoopNode::removeLoopVariable(QUmlOutputPin *loopVariable)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
+ // This is a read-write association end
-/*!
- If true, then the actions in the node execute in isolation from actions outside the node.
- */
-bool QUmlLoopNode::mustIsolate() const
-{
- return _mustIsolate;
+ if (_loopVariable.contains(loopVariable)) {
+ _loopVariable.removeAll(loopVariable);
+ }
}
/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlLoopNode::node() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
-}
-
-/*!
- A variable defined in the scope of the structured activity node. It has no value and may not be accessed
+ A list of values that are moved into the loop variable pins before the first iteration of the loop.
*/
-const QSet<QUmlVariable *> QUmlLoopNode::variable() const
+const QList<QUmlInputPin *>
+QUmlLoopNode::loopVariableInput() const
{
- return *(reinterpret_cast<const QSet<QUmlVariable *> *>(&_variable));
-}
-
-// OWNED ATTRIBUTES [LoopNode]
+ // This is a read-write association end
-/*!
- 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.
- */
-const QList<QUmlOutputPin *> QUmlLoopNode::bodyOutput() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_bodyOutput));
+ return _loopVariableInput;
}
-/*!
- 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.
- */
-const QSet<QUmlExecutableNode *> QUmlLoopNode::bodyPart() const
+void QUmlLoopNode::addLoopVariableInput(QUmlInputPin *loopVariableInput)
{
- return *(reinterpret_cast<const QSet<QUmlExecutableNode *> *>(&_bodyPart));
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QUmlOutputPin *QUmlLoopNode::decider() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_decider);
-}
-
-/*!
- If true, the test is performed before the first execution of the body. If false, the body is executed once before the test is performed.
- */
-bool QUmlLoopNode::isTestedFirst() const
-{
- return _isTestedFirst;
+ if (!_loopVariableInput.contains(loopVariableInput)) {
+ _loopVariableInput.append(loopVariableInput);
+ if (loopVariableInput->asQObject() && this->asQObject())
+ QObject::connect(loopVariableInput->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeLoopVariableInput(QObject *)));
+ loopVariableInput->asQObject()->setParent(this->asQObject());
+ }
}
-/*!
- A list of output pins 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.
- */
-const QList<QUmlOutputPin *> QUmlLoopNode::loopVariable() const
+void QUmlLoopNode::removeLoopVariableInput(QUmlInputPin *loopVariableInput)
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_loopVariable));
-}
+ // This is a read-write association end
-/*!
- A list of values that are moved into the loop variable pins before the first iteration of the loop.
- */
-const QList<QUmlInputPin *> QUmlLoopNode::loopVariableInput() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_loopVariableInput));
+ if (_loopVariableInput.contains(loopVariableInput)) {
+ _loopVariableInput.removeAll(loopVariableInput);
+ if (loopVariableInput->asQObject())
+ loopVariableInput->asQObject()->setParent(0);
+ }
}
/*!
A list of output pins that constitute the data flow output of the entire loop.
*/
-const QList<QUmlOutputPin *> QUmlLoopNode::result() const
+const QList<QUmlOutputPin *>
+QUmlLoopNode::result() const
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_result));
-}
+ // This is a read-write association end
-/*!
- The set of nodes and edges that initialize values or perform other setup computations for the loop.
- */
-const QSet<QUmlExecutableNode *> QUmlLoopNode::setupPart() const
-{
- return *(reinterpret_cast<const QSet<QUmlExecutableNode *> *>(&_setupPart));
+ return _result;
}
-/*!
- The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed.
- */
-const QSet<QUmlExecutableNode *> QUmlLoopNode::test() const
-{
- return *(reinterpret_cast<const QSet<QUmlExecutableNode *> *>(&_test));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlLoopNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlLoopNode::mustBeOwned() const
+void QUmlLoopNode::addResult(QUmlOutputPin *result)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlLoopNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (!_result.contains(result)) {
+ _result.append(result);
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeResult(QObject *)));
+ result->asQObject()->setParent(this->asQObject());
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlLoopNode::allOwningPackages() const
+void QUmlLoopNode::removeResult(QUmlOutputPin *result)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlLoopNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_result.contains(result)) {
+ _result.removeAll(result);
+ if (result->asQObject())
+ result->asQObject()->setParent(0);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The set of nodes and edges that initialize values or perform other setup computations for the loop.
*/
-QString QUmlLoopNode::separator() const
+const QSet<QUmlExecutableNode *>
+QUmlLoopNode::setupPart() const
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlLoopNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ return _setupPart;
}
-/*!
- 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.
- */
-bool QUmlLoopNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlLoopNode::addSetupPart(QUmlExecutableNode *setupPart)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlLoopNode::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (!_setupPart.contains(setupPart)) {
+ _setupPart.insert(setupPart);
+ if (setupPart->asQObject() && this->asQObject())
+ QObject::connect(setupPart->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSetupPart(QObject *)));
+ }
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlLoopNode::getNamesOfMember(QUmlNamedElement *element) const
+void QUmlLoopNode::removeSetupPart(QUmlExecutableNode *setupPart)
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlLoopNode::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (_setupPart.contains(setupPart)) {
+ _setupPart.remove(setupPart);
+ }
}
/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed.
*/
-bool QUmlLoopNode::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlLoopNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlLoopNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlLoopNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlLoopNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlLoopNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlLoopNode::setNameExpression(QUmlStringExpression *nameExpression)
+const QSet<QUmlExecutableNode *>
+QUmlLoopNode::test() const
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlLoopNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlLoopNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlLoopNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlLoopNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
+ // This is a read-write association end
-void QUmlLoopNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
+ return _test;
}
-void QUmlLoopNode::removeInPartition(UmlActivityPartition *inPartition)
+void QUmlLoopNode::addTest(QUmlExecutableNode *test)
{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlLoopNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
+ if (!_test.contains(test)) {
+ _test.insert(test);
+ if (test->asQObject() && this->asQObject())
+ QObject::connect(test->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTest(QObject *)));
+ }
}
-void QUmlLoopNode::addIncoming(UmlActivityEdge *incoming)
+void QUmlLoopNode::removeTest(QUmlExecutableNode *test)
{
- UmlActivityNode::addIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlLoopNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlLoopNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlLoopNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
+ if (_test.contains(test)) {
+ _test.remove(test);
+ }
}
-void QUmlLoopNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlLoopNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlLoopNode::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlLoopNode::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlLoopNode::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlLoopNode::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlLoopNode::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlLoopNode::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlLoopNode::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlLoopNode::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlLoopNode::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlLoopNode::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlLoopNode::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlLoopNode::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlLoopNode::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
-
-void QUmlLoopNode::setActivity(QUmlActivity *activity)
-{
- UmlStructuredActivityNode::setActivity(activity);
-}
-
-void QUmlLoopNode::addEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::addEdge(edge);
-}
-
-void QUmlLoopNode::removeEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::removeEdge(edge);
-}
-
-void QUmlLoopNode::setMustIsolate(bool mustIsolate)
-{
- UmlStructuredActivityNode::setMustIsolate(mustIsolate);
-}
-
-void QUmlLoopNode::addNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::addNode(node);
-}
-
-void QUmlLoopNode::removeNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::removeNode(node);
-}
-
-void QUmlLoopNode::addVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::addVariable(variable);
-}
-
-void QUmlLoopNode::removeVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::removeVariable(variable);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LoopNode]
-
-void QUmlLoopNode::addBodyOutput(UmlOutputPin *bodyOutput)
-{
- UmlLoopNode::addBodyOutput(bodyOutput);
-}
-
-void QUmlLoopNode::removeBodyOutput(UmlOutputPin *bodyOutput)
-{
- UmlLoopNode::removeBodyOutput(bodyOutput);
-}
-
-void QUmlLoopNode::addBodyPart(UmlExecutableNode *bodyPart)
-{
- UmlLoopNode::addBodyPart(bodyPart);
-}
-
-void QUmlLoopNode::removeBodyPart(UmlExecutableNode *bodyPart)
-{
- UmlLoopNode::removeBodyPart(bodyPart);
-}
-
-void QUmlLoopNode::setDecider(QUmlOutputPin *decider)
-{
- UmlLoopNode::setDecider(decider);
-}
-
-void QUmlLoopNode::setTestedFirst(bool isTestedFirst)
-{
- UmlLoopNode::setTestedFirst(isTestedFirst);
-}
-
-void QUmlLoopNode::addLoopVariable(UmlOutputPin *loopVariable)
-{
- UmlLoopNode::addLoopVariable(loopVariable);
-}
-
-void QUmlLoopNode::removeLoopVariable(UmlOutputPin *loopVariable)
-{
- UmlLoopNode::removeLoopVariable(loopVariable);
-}
-
-void QUmlLoopNode::addLoopVariableInput(UmlInputPin *loopVariableInput)
-{
- UmlLoopNode::addLoopVariableInput(loopVariableInput);
-}
-
-void QUmlLoopNode::removeLoopVariableInput(UmlInputPin *loopVariableInput)
-{
- UmlLoopNode::removeLoopVariableInput(loopVariableInput);
-}
-
-void QUmlLoopNode::addResult(UmlOutputPin *result)
-{
- UmlLoopNode::addResult(result);
-}
-
-void QUmlLoopNode::removeResult(UmlOutputPin *result)
-{
- UmlLoopNode::removeResult(result);
-}
-
-void QUmlLoopNode::addSetupPart(UmlExecutableNode *setupPart)
-{
- UmlLoopNode::addSetupPart(setupPart);
-}
-
-void QUmlLoopNode::removeSetupPart(UmlExecutableNode *setupPart)
-{
- UmlLoopNode::removeSetupPart(setupPart);
-}
-
-void QUmlLoopNode::addTest(UmlExecutableNode *test)
-{
- UmlLoopNode::addTest(test);
-}
-
-void QUmlLoopNode::removeTest(UmlExecutableNode *test)
-{
- UmlLoopNode::removeTest(test);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlloopnode.h b/src/uml/qumlloopnode.h
index 3b9d3343..9a74fd79 100644
--- a/src/uml/qumlloopnode.h
+++ b/src/uml/qumlloopnode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlloopnode_p.h"
+#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,283 +52,58 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExceptionHandler;
class QUmlExecutableNode;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlLoopNode : public QObject, public UmlLoopNode
+class Q_UML_EXPORT QUmlLoopNode : public QUmlStructuredActivityNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [StructuredActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(bool mustIsolate READ mustIsolate)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
- Q_PROPERTY(QSet<QUmlVariable *> variable READ variable)
-
- // Properties [LoopNode]
- Q_PROPERTY(QList<QUmlOutputPin *> bodyOutput READ bodyOutput)
- Q_PROPERTY(QSet<QUmlExecutableNode *> bodyPart READ bodyPart)
- Q_PROPERTY(QUmlOutputPin * decider READ decider)
- Q_PROPERTY(bool isTestedFirst READ isTestedFirst)
- Q_PROPERTY(QList<QUmlOutputPin *> loopVariable READ loopVariable)
- Q_PROPERTY(QList<QUmlInputPin *> loopVariableInput READ loopVariableInput)
- Q_PROPERTY(QList<QUmlOutputPin *> result READ result)
- Q_PROPERTY(QSet<QUmlExecutableNode *> setupPart READ setupPart)
- Q_PROPERTY(QSet<QUmlExecutableNode *> test READ test)
-
public:
- Q_INVOKABLE explicit QUmlLoopNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [StructuredActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE bool mustIsolate() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
- Q_INVOKABLE const QSet<QUmlVariable *> variable() const;
-
- // Owned attributes [LoopNode]
- Q_INVOKABLE const QList<QUmlOutputPin *> bodyOutput() const;
- Q_INVOKABLE const QSet<QUmlExecutableNode *> bodyPart() const;
- Q_INVOKABLE QUmlOutputPin *decider() const;
- Q_INVOKABLE bool isTestedFirst() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> loopVariable() const;
- Q_INVOKABLE const QList<QUmlInputPin *> loopVariableInput() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> result() const;
- Q_INVOKABLE const QSet<QUmlExecutableNode *> setupPart() const;
- Q_INVOKABLE const QSet<QUmlExecutableNode *> test() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ActivityGroup]
-
- // Slots for owned attributes [StructuredActivityNode]
- void setActivity(QUmlActivity *activity);
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- void setMustIsolate(bool mustIsolate);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
-
- // Slots for owned attributes [LoopNode]
- void addBodyOutput(UmlOutputPin *bodyOutput);
- void removeBodyOutput(UmlOutputPin *bodyOutput);
- void addBodyPart(UmlExecutableNode *bodyPart);
- void removeBodyPart(UmlExecutableNode *bodyPart);
+ explicit QUmlLoopNode(bool createQObject = true);
+ virtual ~QUmlLoopNode();
+
+ // Owned attributes
+ const QList<QUmlOutputPin *> bodyOutput() const;
+ void addBodyOutput(QUmlOutputPin *bodyOutput);
+ void removeBodyOutput(QUmlOutputPin *bodyOutput);
+ const QSet<QUmlExecutableNode *> bodyPart() const;
+ void addBodyPart(QUmlExecutableNode *bodyPart);
+ void removeBodyPart(QUmlExecutableNode *bodyPart);
+ QUmlOutputPin *decider() const;
void setDecider(QUmlOutputPin *decider);
+ bool isTestedFirst() const;
void setTestedFirst(bool isTestedFirst);
- void addLoopVariable(UmlOutputPin *loopVariable);
- void removeLoopVariable(UmlOutputPin *loopVariable);
- void addLoopVariableInput(UmlInputPin *loopVariableInput);
- void removeLoopVariableInput(UmlInputPin *loopVariableInput);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
- void addSetupPart(UmlExecutableNode *setupPart);
- void removeSetupPart(UmlExecutableNode *setupPart);
- void addTest(UmlExecutableNode *test);
- void removeTest(UmlExecutableNode *test);
+ const QList<QUmlOutputPin *> loopVariable() const;
+ void addLoopVariable(QUmlOutputPin *loopVariable);
+ void removeLoopVariable(QUmlOutputPin *loopVariable);
+ const QList<QUmlInputPin *> loopVariableInput() const;
+ void addLoopVariableInput(QUmlInputPin *loopVariableInput);
+ void removeLoopVariableInput(QUmlInputPin *loopVariableInput);
+ const QList<QUmlOutputPin *> result() const;
+ void addResult(QUmlOutputPin *result);
+ void removeResult(QUmlOutputPin *result);
+ const QSet<QUmlExecutableNode *> setupPart() const;
+ void addSetupPart(QUmlExecutableNode *setupPart);
+ void removeSetupPart(QUmlExecutableNode *setupPart);
+ const QSet<QUmlExecutableNode *> test() const;
+ void addTest(QUmlExecutableNode *test);
+ void removeTest(QUmlExecutableNode *test);
+
+protected:
+ QList<QUmlOutputPin *> _bodyOutput;
+ QSet<QUmlExecutableNode *> _bodyPart;
+ QUmlOutputPin *_decider;
+ bool _isTestedFirst;
+ QList<QUmlOutputPin *> _loopVariable;
+ QList<QUmlInputPin *> _loopVariableInput;
+ QList<QUmlOutputPin *> _result;
+ QSet<QUmlExecutableNode *> _setupPart;
+ QSet<QUmlExecutableNode *> _test;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlLoopNode *)
-Q_DECLARE_METATYPE(QList<QUmlLoopNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlLoopNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlLoopNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlmanifestation.cpp b/src/uml/qumlmanifestation.cpp
index 67001985..de1aace6 100644
--- a/src/uml/qumlmanifestation.cpp
+++ b/src/uml/qumlmanifestation.cpp
@@ -40,364 +40,62 @@
****************************************************************************/
#include "qumlmanifestation.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOpaqueExpression>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumlmanifestationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlPackageableElement>
/*!
- \class UmlManifestation
+ \class QUmlManifestation
\inmodule QtUml
\brief A manifestation is the concrete physical rendering of one or more model elements by an artifact.
*/
-
-QUmlManifestation::QUmlManifestation(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlManifestation::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlManifestation::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlManifestation::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlManifestation::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlManifestation::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlManifestation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlManifestation::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlManifestation::nameExpression() const
+QUmlManifestation::QUmlManifestation(bool createQObject) :
+ QUmlAbstraction(false),
+ _utilizedElement(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlManifestationObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlManifestation::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlManifestation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlManifestation::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlManifestation::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlManifestation::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlManifestation::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlManifestation::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlManifestation::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Abstraction]
-
-/*!
- 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.
- */
-QUmlOpaqueExpression *QUmlManifestation::mapping() const
+QUmlManifestation::~QUmlManifestation()
{
- return reinterpret_cast<QUmlOpaqueExpression *>(_mapping);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Manifestation]
+// OWNED ATTRIBUTES
/*!
The model element that is utilized in the manifestation in an Artifact.
*/
-QUmlPackageableElement *QUmlManifestation::utilizedElement() const
+QUmlPackageableElement *
+QUmlManifestation::utilizedElement() const
{
- return reinterpret_cast<QUmlPackageableElement *>(_utilizedElement);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlManifestation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlManifestation::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlManifestation::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlManifestation::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlManifestation::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlManifestation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlManifestation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlManifestation::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlManifestation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlManifestation::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlManifestation::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlManifestation::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlManifestation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlManifestation::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlManifestation::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlManifestation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlManifestation::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlManifestation::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlManifestation::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
+ return _utilizedElement;
}
-void QUmlManifestation::addSupplier(UmlNamedElement *supplier)
+void QUmlManifestation::setUtilizedElement(QUmlPackageableElement *utilizedElement)
{
- UmlDependency::addSupplier(supplier);
-}
+ // This is a read-write association end
-void QUmlManifestation::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
+ if (_utilizedElement != utilizedElement) {
+ // Adjust subsetted properties
+ removeSupplier(_utilizedElement);
-// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
+ _utilizedElement = utilizedElement;
+ if (utilizedElement->asQObject() && this->asQObject())
+ QObject::connect(utilizedElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setUtilizedElement()));
-void QUmlManifestation::setMapping(QUmlOpaqueExpression *mapping)
-{
- UmlAbstraction::setMapping(mapping);
+ // Adjust subsetted properties
+ if (utilizedElement) {
+ addSupplier(utilizedElement);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Manifestation]
-
-void QUmlManifestation::setUtilizedElement(QUmlPackageableElement *utilizedElement)
-{
- UmlManifestation::setUtilizedElement(utilizedElement);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlmanifestation.h b/src/uml/qumlmanifestation.h
index e9685740..94c1d4b8 100644
--- a/src/uml/qumlmanifestation.h
+++ b/src/uml/qumlmanifestation.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmanifestation_p.h"
+#include <QtUml/QUmlAbstraction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,152 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOpaqueExpression;
-class QUmlPackage;
class QUmlPackageableElement;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlManifestation : public QObject, public UmlManifestation
+class Q_UML_EXPORT QUmlManifestation : public QUmlAbstraction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Abstraction]
- Q_PROPERTY(QUmlOpaqueExpression * mapping READ mapping)
-
- // Properties [Manifestation]
- Q_PROPERTY(QUmlPackageableElement * utilizedElement READ utilizedElement)
-
public:
- Q_INVOKABLE explicit QUmlManifestation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
+ explicit QUmlManifestation(bool createQObject = true);
+ virtual ~QUmlManifestation();
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Abstraction]
- Q_INVOKABLE QUmlOpaqueExpression *mapping() const;
-
- // Owned attributes [Manifestation]
- Q_INVOKABLE QUmlPackageableElement *utilizedElement() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
- // Slots for owned attributes [Abstraction]
- void setMapping(QUmlOpaqueExpression *mapping);
-
- // Slots for owned attributes [Manifestation]
+ // Owned attributes
+ QUmlPackageableElement *utilizedElement() const;
void setUtilizedElement(QUmlPackageableElement *utilizedElement);
+
+protected:
+ QUmlPackageableElement *_utilizedElement;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlManifestation *)
-Q_DECLARE_METATYPE(QList<QUmlManifestation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlManifestation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlManifestation) *)
QT_END_HEADER
diff --git a/src/uml/qumlmergenode.cpp b/src/uml/qumlmergenode.cpp
index accecd52..709a3d5d 100644
--- a/src/uml/qumlmergenode.cpp
+++ b/src/uml/qumlmergenode.cpp
@@ -40,392 +40,26 @@
****************************************************************************/
#include "qumlmergenode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlmergenodeobject_p.h"
/*!
- \class UmlMergeNode
+ \class QUmlMergeNode
\inmodule QtUml
\brief A merge node is a control node that brings together multiple alternate flows. It is not used to synchronize concurrent flows but to accept one among several alternate flows.
*/
-
-QUmlMergeNode::QUmlMergeNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlMergeNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlMergeNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlMergeNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlMergeNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlMergeNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlMergeNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlMergeNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlMergeNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlMergeNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlMergeNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlMergeNode::redefinedElement() const
+QUmlMergeNode::QUmlMergeNode(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (createQObject)
+ _qObject = new QUmlMergeNodeObject(this);
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlMergeNode::redefinitionContext() const
+QUmlMergeNode::~QUmlMergeNode()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlMergeNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlMergeNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlMergeNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlMergeNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlMergeNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlMergeNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlMergeNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlMergeNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlMergeNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMergeNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlMergeNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlMergeNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMergeNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlMergeNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlMergeNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlMergeNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlMergeNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlMergeNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlMergeNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlMergeNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlMergeNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlMergeNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlMergeNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlMergeNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlMergeNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlMergeNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlMergeNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlMergeNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlMergeNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlMergeNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlMergeNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlMergeNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlMergeNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlMergeNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlMergeNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlMergeNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlmergenode.h b/src/uml/qumlmergenode.h
index 4ac7f599..3cafd69c 100644
--- a/src/uml/qumlmergenode.h
+++ b/src/uml/qumlmergenode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmergenode_p.h"
+#include <QtUml/QUmlControlNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,136 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlMergeNode : public QObject, public UmlMergeNode
+class Q_UML_EXPORT QUmlMergeNode : public QUmlControlNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
public:
- Q_INVOKABLE explicit QUmlMergeNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlMergeNode(bool createQObject = true);
+ virtual ~QUmlMergeNode();
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlMergeNode *)
-Q_DECLARE_METATYPE(QList<QUmlMergeNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlMergeNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlMergeNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlmessage.cpp b/src/uml/qumlmessage.cpp
index 6ea6f6ef..1b1e9c14 100644
--- a/src/uml/qumlmessage.cpp
+++ b/src/uml/qumlmessage.cpp
@@ -40,316 +40,239 @@
****************************************************************************/
#include "qumlmessage.h"
-#include <QtUml/QUmlComment>
+#include "private/qumlmessageobject_p.h"
+
#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlInteraction>
#include <QtUml/QUmlMessageEnd>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlMessage
+ \class QUmlMessage
\inmodule QtUml
\brief A message defines a particular communication between lifelines of an interaction.
*/
-
-QUmlMessage::QUmlMessage(QObject *parent) :
- QObject(parent)
+QUmlMessage::QUmlMessage(bool createQObject) :
+ _connector(0),
+ _interaction(0),
+ _messageSort(QtUml::MessageSortSynchCall),
+ _receiveEvent(0),
+ _sendEvent(0),
+ _signature(0)
{
+ if (createQObject)
+ _qObject = new QUmlMessageObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlMessage::ownedComment() const
+QUmlMessage::~QUmlMessage()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlMessage::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The arguments of the Message
*/
-QUmlElement *QUmlMessage::owner() const
+const QList<QUmlValueSpecification *>
+QUmlMessage::argument() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlMessage::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _argument;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlMessage::name() const
+void QUmlMessage::addArgument(QUmlValueSpecification *argument)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlMessage::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (!_argument.contains(argument)) {
+ _argument.append(argument);
+ if (argument->asQObject() && this->asQObject())
+ QObject::connect(argument->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeArgument(QObject *)));
+ argument->asQObject()->setParent(this->asQObject());
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlMessage::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // Adjust subsetted properties
+ addOwnedElement(argument);
+ }
}
-/*!
- 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.
- */
-QString QUmlMessage::qualifiedName() const
+void QUmlMessage::removeArgument(QUmlValueSpecification *argument)
{
- return UmlNamedElement::qualifiedName();
-}
+ // This is a read-write association end
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlMessage::visibility() const
-{
- return _visibility;
-}
+ if (_argument.contains(argument)) {
+ _argument.removeAll(argument);
+ if (argument->asQObject())
+ argument->asQObject()->setParent(0);
-// OWNED ATTRIBUTES [Message]
-
-/*!
- The arguments of the Message
- */
-const QList<QUmlValueSpecification *> QUmlMessage::argument() const
-{
- return *(reinterpret_cast<const QList<QUmlValueSpecification *> *>(&_argument));
+ // Adjust subsetted properties
+ removeOwnedElement(argument);
+ }
}
/*!
The Connector on which this Message is sent.
*/
-QUmlConnector *QUmlMessage::connector() const
+QUmlConnector *
+QUmlMessage::connector() const
{
- return reinterpret_cast<QUmlConnector *>(_connector);
-}
+ // This is a read-write association end
-/*!
- The enclosing Interaction owning the Message
- */
-QUmlInteraction *QUmlMessage::interaction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_interaction);
+ return _connector;
}
-/*!
- The derived kind of the Message (complete, lost, found or unknown)
- */
-QtUml::MessageKind QUmlMessage::messageKind() const
+void QUmlMessage::setConnector(QUmlConnector *connector)
{
- return UmlMessage::messageKind();
-}
+ // This is a read-write association end
-/*!
- The sort of communication reflected by the Message
- */
-QtUml::MessageSort QUmlMessage::messageSort() const
-{
- return _messageSort;
+ if (_connector != connector) {
+ _connector = connector;
+ if (connector->asQObject() && this->asQObject())
+ QObject::connect(connector->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setConnector()));
+ }
}
/*!
- References the Receiving of the Message
+ The enclosing Interaction owning the Message
*/
-QUmlMessageEnd *QUmlMessage::receiveEvent() const
+QUmlInteraction *
+QUmlMessage::interaction() const
{
- return reinterpret_cast<QUmlMessageEnd *>(_receiveEvent);
-}
+ // This is a read-write association end
-/*!
- References the Sending of the Message.
- */
-QUmlMessageEnd *QUmlMessage::sendEvent() const
-{
- return reinterpret_cast<QUmlMessageEnd *>(_sendEvent);
+ return _interaction;
}
-/*!
- The signature of the Message is the specification of its content. It refers either an Operation or a Signal.
- */
-QUmlNamedElement *QUmlMessage::signature() const
+void QUmlMessage::setInteraction(QUmlInteraction *interaction)
{
- return reinterpret_cast<QUmlNamedElement *>(_signature);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_interaction != interaction) {
+ // Adjust subsetted properties
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlMessage::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ _interaction = interaction;
+ if (interaction->asQObject() && this->asQObject())
+ QObject::connect(interaction->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInteraction()));
+
+ // Adjust subsetted properties
+ setNamespace(interaction);
+ }
}
/*!
- 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.
+ The derived kind of the Message (complete, lost, found or unknown)
*/
-bool QUmlMessage::mustBeOwned() const
+QtUml::MessageKind
+QUmlMessage::messageKind() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived property
-// OPERATIONS [NamedElement]
+ qWarning("UmlMessage::messageKind(): to be implemented (this is a derived property)");
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlMessage::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return QtUml::MessageKind();
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlMessage::allOwningPackages() const
+void QUmlMessage::setMessageKind(QtUml::MessageKind messageKind)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-only derived property
-/*!
- 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.
- */
-bool QUmlMessage::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ qWarning("UmlMessage::messageKind(): to be implemented (this is a derived property)");
+ Q_UNUSED(messageKind);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The sort of communication reflected by the Message
*/
-QString QUmlMessage::separator() const
+QtUml::MessageSort
+QUmlMessage::messageSort() const
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write property
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlMessage::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _messageSort;
}
-void QUmlMessage::removeOwnedComment(UmlComment *ownedComment)
+void QUmlMessage::setMessageSort(QtUml::MessageSort messageSort)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write property
-void QUmlMessage::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ if (_messageSort != messageSort) {
+ _messageSort = messageSort;
+ }
}
-void QUmlMessage::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlMessage::setName(QString name)
+/*!
+ References the Receiving of the Message
+ */
+QUmlMessageEnd *
+QUmlMessage::receiveEvent() const
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlMessage::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _receiveEvent;
}
-void QUmlMessage::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlMessage::setReceiveEvent(QUmlMessageEnd *receiveEvent)
{
- UmlNamedElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Message]
-
-void QUmlMessage::addArgument(UmlValueSpecification *argument)
-{
- UmlMessage::addArgument(argument);
+ if (_receiveEvent != receiveEvent) {
+ _receiveEvent = receiveEvent;
+ if (receiveEvent->asQObject() && this->asQObject())
+ QObject::connect(receiveEvent->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReceiveEvent()));
+ }
}
-void QUmlMessage::removeArgument(UmlValueSpecification *argument)
+/*!
+ References the Sending of the Message.
+ */
+QUmlMessageEnd *
+QUmlMessage::sendEvent() const
{
- UmlMessage::removeArgument(argument);
-}
+ // This is a read-write association end
-void QUmlMessage::setConnector(QUmlConnector *connector)
-{
- UmlMessage::setConnector(connector);
+ return _sendEvent;
}
-void QUmlMessage::setInteraction(QUmlInteraction *interaction)
+void QUmlMessage::setSendEvent(QUmlMessageEnd *sendEvent)
{
- UmlMessage::setInteraction(interaction);
-}
+ // This is a read-write association end
-void QUmlMessage::setMessageSort(QtUml::MessageSort messageSort)
-{
- UmlMessage::setMessageSort(messageSort);
+ if (_sendEvent != sendEvent) {
+ _sendEvent = sendEvent;
+ if (sendEvent->asQObject() && this->asQObject())
+ QObject::connect(sendEvent->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSendEvent()));
+ }
}
-void QUmlMessage::setReceiveEvent(QUmlMessageEnd *receiveEvent)
+/*!
+ The signature of the Message is the specification of its content. It refers either an Operation or a Signal.
+ */
+QUmlNamedElement *
+QUmlMessage::signature() const
{
- UmlMessage::setReceiveEvent(receiveEvent);
-}
+ // This is a read-write association end
-void QUmlMessage::setSendEvent(QUmlMessageEnd *sendEvent)
-{
- UmlMessage::setSendEvent(sendEvent);
+ return _signature;
}
void QUmlMessage::setSignature(QUmlNamedElement *signature)
{
- UmlMessage::setSignature(signature);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_signature != signature) {
+ _signature = signature;
+ if (signature->asQObject() && this->asQObject())
+ QObject::connect(signature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignature()));
+ }
+}
diff --git a/src/uml/qumlmessage.h b/src/uml/qumlmessage.h
index 1a65fb60..47ea39bb 100644
--- a/src/uml/qumlmessage.h
+++ b/src/uml/qumlmessage.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmessage_p.h"
+#include <QtUml/QUmlNamedElement>
+
#include <QtUml/QtUmlNamespace>
@@ -54,110 +54,49 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConnector;
-class QUmlDependency;
-class QUmlElement;
class QUmlInteraction;
class QUmlMessageEnd;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlMessage : public QObject, public UmlMessage
+class Q_UML_EXPORT QUmlMessage : public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Message]
- Q_PROPERTY(QList<QUmlValueSpecification *> argument READ argument)
- Q_PROPERTY(QUmlConnector * connector READ connector)
- Q_PROPERTY(QUmlInteraction * interaction READ interaction)
- Q_PROPERTY(QtUml::MessageKind messageKind READ messageKind)
- Q_PROPERTY(QtUml::MessageSort messageSort READ messageSort)
- Q_PROPERTY(QUmlMessageEnd * receiveEvent READ receiveEvent)
- Q_PROPERTY(QUmlMessageEnd * sendEvent READ sendEvent)
- Q_PROPERTY(QUmlNamedElement * signature READ signature)
-
public:
- Q_INVOKABLE explicit QUmlMessage(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Message]
- Q_INVOKABLE const QList<QUmlValueSpecification *> argument() const;
- Q_INVOKABLE QUmlConnector *connector() const;
- Q_INVOKABLE QUmlInteraction *interaction() const;
- Q_INVOKABLE QtUml::MessageKind messageKind() const;
- Q_INVOKABLE QtUml::MessageSort messageSort() const;
- Q_INVOKABLE QUmlMessageEnd *receiveEvent() const;
- Q_INVOKABLE QUmlMessageEnd *sendEvent() const;
- Q_INVOKABLE QUmlNamedElement *signature() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Message]
- void addArgument(UmlValueSpecification *argument);
- void removeArgument(UmlValueSpecification *argument);
+ explicit QUmlMessage(bool createQObject = true);
+ virtual ~QUmlMessage();
+
+ // Owned attributes
+ const QList<QUmlValueSpecification *> argument() const;
+ void addArgument(QUmlValueSpecification *argument);
+ void removeArgument(QUmlValueSpecification *argument);
+ QUmlConnector *connector() const;
void setConnector(QUmlConnector *connector);
+ QUmlInteraction *interaction() const;
void setInteraction(QUmlInteraction *interaction);
+ QtUml::MessageKind messageKind() const;
+ Q_DECL_HIDDEN void setMessageKind(QtUml::MessageKind messageKind);
+ QtUml::MessageSort messageSort() const;
void setMessageSort(QtUml::MessageSort messageSort);
+ QUmlMessageEnd *receiveEvent() const;
void setReceiveEvent(QUmlMessageEnd *receiveEvent);
+ QUmlMessageEnd *sendEvent() const;
void setSendEvent(QUmlMessageEnd *sendEvent);
+ QUmlNamedElement *signature() const;
void setSignature(QUmlNamedElement *signature);
+
+protected:
+ QList<QUmlValueSpecification *> _argument;
+ QUmlConnector *_connector;
+ QUmlInteraction *_interaction;
+ QtUml::MessageSort _messageSort;
+ QUmlMessageEnd *_receiveEvent;
+ QUmlMessageEnd *_sendEvent;
+ QUmlNamedElement *_signature;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlMessage *)
-Q_DECLARE_METATYPE(QList<QUmlMessage *> *)
-Q_DECLARE_METATYPE(QSet<QUmlMessage *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlMessage) *)
QT_END_HEADER
diff --git a/src/uml/qumlmessageend.cpp b/src/uml/qumlmessageend.cpp
index 801602c5..26cc9863 100644
--- a/src/uml/qumlmessageend.cpp
+++ b/src/uml/qumlmessageend.cpp
@@ -40,222 +40,45 @@
****************************************************************************/
#include "qumlmessageend.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlMessage>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlMessageEnd
+ \class QUmlMessageEnd
\inmodule QtUml
\brief MessageEnd is an abstract specialization of NamedElement that represents what can occur at the end of a message.
*/
-
-QUmlMessageEnd::QUmlMessageEnd(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlMessageEnd::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlMessageEnd::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlMessageEnd::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlMessageEnd::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlMessageEnd::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlMessageEnd::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlMessageEnd::namespace_() const
+QUmlMessageEnd::QUmlMessageEnd() :
+ _message(0)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
}
-/*!
- 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.
- */
-QString QUmlMessageEnd::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlMessageEnd::visibility() const
+QUmlMessageEnd::~QUmlMessageEnd()
{
- return _visibility;
}
-// OWNED ATTRIBUTES [MessageEnd]
+// OWNED ATTRIBUTES
/*!
References a Message.
*/
-QUmlMessage *QUmlMessageEnd::message() const
+QUmlMessage *
+QUmlMessageEnd::message() const
{
- return reinterpret_cast<QUmlMessage *>(_message);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlMessageEnd::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _message;
}
-/*!
- 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.
- */
-bool QUmlMessageEnd::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlMessageEnd::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlMessageEnd::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMessageEnd::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlMessageEnd::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlMessageEnd::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlMessageEnd::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlMessageEnd::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlMessageEnd::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlMessageEnd::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlMessageEnd::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlMessageEnd::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
-
void QUmlMessageEnd::setMessage(QUmlMessage *message)
{
- UmlMessageEnd::setMessage(message);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_message != message) {
+ _message = message;
+ if (message->asQObject() && this->asQObject())
+ QObject::connect(message->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMessage()));
+ }
+}
diff --git a/src/uml/qumlmessageend.h b/src/uml/qumlmessageend.h
index 214aa535..d43272e0 100644
--- a/src/uml/qumlmessageend.h
+++ b/src/uml/qumlmessageend.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmessageend_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,86 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlMessage;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlMessageEnd : public QObject, public UmlMessageEnd
+class Q_UML_EXPORT QUmlMessageEnd : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
+public:
+ virtual ~QUmlMessageEnd();
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+ // Owned attributes
+ QUmlMessage *message() const;
+ void setMessage(QUmlMessage *message);
- // Properties [MessageEnd]
- Q_PROPERTY(QUmlMessage * message READ message)
+protected:
+ explicit QUmlMessageEnd();
-public:
- Q_DECL_HIDDEN explicit QUmlMessageEnd(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [MessageEnd]
- Q_INVOKABLE QUmlMessage *message() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [MessageEnd]
- void setMessage(QUmlMessage *message);
+ QUmlMessage *_message;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlMessageEnd *)
-Q_DECLARE_METATYPE(QList<QUmlMessageEnd *> *)
-Q_DECLARE_METATYPE(QSet<QUmlMessageEnd *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlMessageEnd) *)
QT_END_HEADER
diff --git a/src/uml/qumlmessageevent.cpp b/src/uml/qumlmessageevent.cpp
index ededd044..772b9ad8 100644
--- a/src/uml/qumlmessageevent.cpp
+++ b/src/uml/qumlmessageevent.cpp
@@ -40,256 +40,18 @@
****************************************************************************/
#include "qumlmessageevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlMessageEvent
+ \class QUmlMessageEvent
\inmodule QtUml
\brief A message event specifies the receipt by an object of either a call or a signal.
*/
-
-QUmlMessageEvent::QUmlMessageEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlMessageEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlMessageEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlMessageEvent::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlMessageEvent::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlMessageEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlMessageEvent::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlMessageEvent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlMessageEvent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlMessageEvent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlMessageEvent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlMessageEvent::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlMessageEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMessageEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlMessageEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlMessageEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlMessageEvent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlMessageEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMessageEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlMessageEvent::QUmlMessageEvent()
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlMessageEvent::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlMessageEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlMessageEvent::removeOwnedComment(UmlComment *ownedComment)
+QUmlMessageEvent::~QUmlMessageEvent()
{
- UmlElement::removeOwnedComment(ownedComment);
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlMessageEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlMessageEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlMessageEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlMessageEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlMessageEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlMessageEvent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlMessageEvent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlmessageevent.h b/src/uml/qumlmessageevent.h
index 5a1bbd6e..5f37f0b8 100644
--- a/src/uml/qumlmessageevent.h
+++ b/src/uml/qumlmessageevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmessageevent_p.h"
+#include <QtUml/QUmlEvent>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,100 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlMessageEvent : public QObject, public UmlMessageEvent
+class Q_UML_EXPORT QUmlMessageEvent : public QUmlEvent
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_DECL_HIDDEN explicit QUmlMessageEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ virtual ~QUmlMessageEvent();
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
+protected:
+ explicit QUmlMessageEvent();
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlMessageEvent *)
-Q_DECLARE_METATYPE(QList<QUmlMessageEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlMessageEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlMessageEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumlmessageoccurrencespecification.cpp b/src/uml/qumlmessageoccurrencespecification.cpp
index 662156b0..731fe376 100644
--- a/src/uml/qumlmessageoccurrencespecification.cpp
+++ b/src/uml/qumlmessageoccurrencespecification.cpp
@@ -40,327 +40,27 @@
****************************************************************************/
#include "qumlmessageoccurrencespecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlMessage>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlmessageoccurrencespecificationobject_p.h"
/*!
- \class UmlMessageOccurrenceSpecification
+ \class QUmlMessageOccurrenceSpecification
\inmodule QtUml
\brief A message occurrence specification pecifies 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.
*/
-
-QUmlMessageOccurrenceSpecification::QUmlMessageOccurrenceSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlMessageOccurrenceSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlMessageOccurrenceSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlMessageOccurrenceSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlMessageOccurrenceSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlMessageOccurrenceSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlMessageOccurrenceSpecification::nameExpression() const
+QUmlMessageOccurrenceSpecification::QUmlMessageOccurrenceSpecification(bool createQObject) :
+ QUmlOccurrenceSpecification(false)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlMessageOccurrenceSpecificationObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlMessageOccurrenceSpecification::namespace_() const
+QUmlMessageOccurrenceSpecification::~QUmlMessageOccurrenceSpecification()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlMessageOccurrenceSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlMessageOccurrenceSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlMessageOccurrenceSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlMessageOccurrenceSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlMessageOccurrenceSpecification::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [OccurrenceSpecification]
-
-/*!
- References the Lifeline on which the OccurrenceSpecification appears.
- */
-QUmlLifeline *QUmlMessageOccurrenceSpecification::covered() const
-{
- return reinterpret_cast<QUmlLifeline *>(_covered);
-}
-
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlMessageOccurrenceSpecification::toAfter() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toAfter));
-}
-
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlMessageOccurrenceSpecification::toBefore() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toBefore));
-}
-
-// OWNED ATTRIBUTES [MessageEnd]
-
-/*!
- References a Message.
- */
-QUmlMessage *QUmlMessageOccurrenceSpecification::message() const
-{
- return reinterpret_cast<QUmlMessage *>(_message);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlMessageOccurrenceSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMessageOccurrenceSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlMessageOccurrenceSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlMessageOccurrenceSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlMessageOccurrenceSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlMessageOccurrenceSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlMessageOccurrenceSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlMessageOccurrenceSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlMessageOccurrenceSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlMessageOccurrenceSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlMessageOccurrenceSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlMessageOccurrenceSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlMessageOccurrenceSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlMessageOccurrenceSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlMessageOccurrenceSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlMessageOccurrenceSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlMessageOccurrenceSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
-
-void QUmlMessageOccurrenceSpecification::setCovered(QUmlLifeline *covered)
-{
- UmlOccurrenceSpecification::setCovered(covered);
-}
-
-void QUmlMessageOccurrenceSpecification::addToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::addToAfter(toAfter);
-}
-
-void QUmlMessageOccurrenceSpecification::removeToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::removeToAfter(toAfter);
-}
-
-void QUmlMessageOccurrenceSpecification::addToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::addToBefore(toBefore);
-}
-
-void QUmlMessageOccurrenceSpecification::removeToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::removeToBefore(toBefore);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MessageEnd]
-
-void QUmlMessageOccurrenceSpecification::setMessage(QUmlMessage *message)
-{
- UmlMessageEnd::setMessage(message);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlmessageoccurrencespecification.h b/src/uml/qumlmessageoccurrencespecification.h
index 2f163862..c83f2fe6 100644
--- a/src/uml/qumlmessageoccurrencespecification.h
+++ b/src/uml/qumlmessageoccurrencespecification.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmessageoccurrencespecification_p.h"
+#include <QtUml/QUmlOccurrenceSpecification>
+#include <QtUml/QUmlMessageEnd>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,123 +53,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlMessage;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlMessageOccurrenceSpecification : public QObject, public UmlMessageOccurrenceSpecification
+class Q_UML_EXPORT QUmlMessageOccurrenceSpecification : public QUmlOccurrenceSpecification, public QUmlMessageEnd
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [OccurrenceSpecification]
- Q_PROPERTY(QUmlLifeline * covered READ covered)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toAfter READ toAfter)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toBefore READ toBefore)
-
- // Properties [MessageEnd]
- Q_PROPERTY(QUmlMessage * message READ message)
-
public:
- Q_INVOKABLE explicit QUmlMessageOccurrenceSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [OccurrenceSpecification]
- Q_INVOKABLE QUmlLifeline *covered() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toAfter() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toBefore() const;
-
- // Owned attributes [MessageEnd]
- Q_INVOKABLE QUmlMessage *message() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
+ explicit QUmlMessageOccurrenceSpecification(bool createQObject = true);
+ virtual ~QUmlMessageOccurrenceSpecification();
- // Slots for owned attributes [OccurrenceSpecification]
- void setCovered(QUmlLifeline *covered);
- void addToAfter(UmlGeneralOrdering *toAfter);
- void removeToAfter(UmlGeneralOrdering *toAfter);
- void addToBefore(UmlGeneralOrdering *toBefore);
- void removeToBefore(UmlGeneralOrdering *toBefore);
- // Slots for owned attributes [MessageEnd]
- void setMessage(QUmlMessage *message);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlMessageOccurrenceSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlMessageOccurrenceSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlMessageOccurrenceSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlMessageOccurrenceSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlmodel.cpp b/src/uml/qumlmodel.cpp
index 539c7513..9c2914b2 100644
--- a/src/uml/qumlmodel.cpp
+++ b/src/uml/qumlmodel.cpp
@@ -40,641 +40,49 @@
****************************************************************************/
#include "qumlmodel.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlPackageMerge>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProfile>
-#include <QtUml/QUmlProfileApplication>
-#include <QtUml/QUmlStereotype>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlmodelobject_p.h"
/*!
- \class UmlModel
+ \class QUmlModel
\inmodule QtUml
\brief A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus the model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail.
*/
-
-QUmlModel::QUmlModel(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlModel::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlModel::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlModel::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlModel::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlModel::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlModel::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlModel::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlModel::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlModel::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlModel::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlModel::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlModel::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlModel::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlModel::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlModel::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlModel::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlModel::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlTemplateSignature *QUmlModel::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlModel::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Package]
-
-/*!
- Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.
- */
-QString QUmlModel::URI() const
-{
- return _URI;
-}
-
-/*!
- References the packaged elements that are Packages.
- */
-const QSet<QUmlPackage *> QUmlModel::nestedPackage() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlPackage::nestedPackage())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- References the Package that owns this Package.
- */
-QUmlPackage *QUmlModel::nestingPackage() const
-{
- return reinterpret_cast<QUmlPackage *>(_nestingPackage);
-}
-
-/*!
- References the Stereotypes that are owned by the Package
- */
-const QSet<QUmlStereotype *> QUmlModel::ownedStereotype() const
-{
- QSet<QUmlStereotype *> r;
- foreach (UmlStereotype *element, UmlPackage::ownedStereotype())
- r.insert(reinterpret_cast<QUmlStereotype *>(element));
- return r;
-}
-
-/*!
- References the packaged elements that are Types.
- */
-const QSet<QUmlType *> QUmlModel::ownedType() const
+QUmlModel::QUmlModel(bool createQObject) :
+ QUmlPackage(false)
{
- QSet<QUmlType *> r;
- foreach (UmlType *element, UmlPackage::ownedType())
- r.insert(reinterpret_cast<QUmlType *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlModelObject(this);
}
-/*!
- References the PackageMerges that are owned by this Package.
- */
-const QSet<QUmlPackageMerge *> QUmlModel::packageMerge() const
+QUmlModel::~QUmlModel()
{
- return *(reinterpret_cast<const QSet<QUmlPackageMerge *> *>(&_packageMerge));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Specifies the packageable elements that are owned by this Package.
- */
-const QSet<QUmlPackageableElement *> QUmlModel::packagedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageableElement *> *>(&_packagedElement));
-}
-
-/*!
- References the ProfileApplications that indicate which profiles have been applied to the Package.
- */
-const QSet<QUmlProfileApplication *> QUmlModel::profileApplication() const
-{
- return *(reinterpret_cast<const QSet<QUmlProfileApplication *> *>(&_profileApplication));
-}
-
-// OWNED ATTRIBUTES [Model]
+// OWNED ATTRIBUTES
/*!
The name of the viewpoint that is expressed by a model (This name may refer to a profile definition).
*/
-QString QUmlModel::viewpoint() const
-{
- return _viewpoint;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlModel::allOwnedElements() const
+QString
+QUmlModel::viewpoint() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlModel::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlModel::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlModel::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlModel::separator() const
-{
- return UmlNamedElement::separator();
-}
+ // This is a read-write property
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlModel::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlModel::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlModel::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlModel::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlModel::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlModel::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlModel::isTemplate() const
-{
- return UmlTemplateableElement::isTemplate();
-}
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlModel::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Package]
-
-/*!
- The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.
- */
-QSet<QUmlStereotype *> QUmlModel::allApplicableStereotypes() const
-{
- QSet<QUmlStereotype *> r;
- foreach (UmlStereotype *element, UmlPackage::allApplicableStereotypes())
- r.insert(reinterpret_cast<QUmlStereotype *>(element));
- return r;
-}
-
-/*!
- The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).
- */
-QUmlProfile *QUmlModel::containingProfile() const
-{
- return reinterpret_cast<QUmlProfile *>(UmlPackage::containingProfile());
-}
-
-/*!
- 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.
- */
-bool QUmlModel::makesVisible(QUmlNamedElement *el) const
-{
- return UmlPackage::makesVisible(el);
-}
-
-/*!
- The query mustBeOwned() indicates whether elements of this type must have an owner.
- */
-bool QUmlModel::mustBeOwned() const
-{
- return UmlPackage::mustBeOwned();
-}
-
-/*!
- The query visibleMembers() defines which members of a Package can be accessed outside it.
- */
-QSet<QUmlPackageableElement *> QUmlModel::visibleMembers() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlPackage::visibleMembers())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlModel::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlModel::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlModel::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlModel::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlModel::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlModel::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlModel::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlModel::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlModel::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlModel::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlModel::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlModel::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlModel::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlModel::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlModel::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlModel::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
-{
- UmlTemplateableElement::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlModel::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlModel::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Package]
-
-void QUmlModel::setURI(QString URI)
-{
- UmlPackage::setURI(URI);
-}
-
-void QUmlModel::addNestedPackage(UmlPackage *nestedPackage)
-{
- UmlPackage::addNestedPackage(nestedPackage);
-}
-
-void QUmlModel::removeNestedPackage(UmlPackage *nestedPackage)
-{
- UmlPackage::removeNestedPackage(nestedPackage);
-}
-
-void QUmlModel::setNestingPackage(QUmlPackage *nestingPackage)
-{
- UmlPackage::setNestingPackage(nestingPackage);
-}
-
-void QUmlModel::addOwnedType(UmlType *ownedType)
-{
- UmlPackage::addOwnedType(ownedType);
-}
-
-void QUmlModel::removeOwnedType(UmlType *ownedType)
-{
- UmlPackage::removeOwnedType(ownedType);
-}
-
-void QUmlModel::addPackageMerge(UmlPackageMerge *packageMerge)
-{
- UmlPackage::addPackageMerge(packageMerge);
-}
-
-void QUmlModel::removePackageMerge(UmlPackageMerge *packageMerge)
-{
- UmlPackage::removePackageMerge(packageMerge);
-}
-
-void QUmlModel::addPackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlPackage::addPackagedElement(packagedElement);
-}
-
-void QUmlModel::removePackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlPackage::removePackagedElement(packagedElement);
-}
-
-void QUmlModel::addProfileApplication(UmlProfileApplication *profileApplication)
-{
- UmlPackage::addProfileApplication(profileApplication);
-}
-
-void QUmlModel::removeProfileApplication(UmlProfileApplication *profileApplication)
-{
- UmlPackage::removeProfileApplication(profileApplication);
+ return _viewpoint;
}
-// SLOTS FOR OWNED ATTRIBUTES [Model]
-
void QUmlModel::setViewpoint(QString viewpoint)
{
- UmlModel::setViewpoint(viewpoint);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_viewpoint != viewpoint) {
+ _viewpoint = viewpoint;
+ }
+}
diff --git a/src/uml/qumlmodel.h b/src/uml/qumlmodel.h
index 261034e6..1103551e 100644
--- a/src/uml/qumlmodel.h
+++ b/src/uml/qumlmodel.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmodel_p.h"
+#include <QtUml/QUmlPackage>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,207 +52,23 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlPackageMerge;
-class QUmlParameterableElement;
-class QUmlProfile;
-class QUmlProfileApplication;
-class QUmlStereotype;
-class QUmlStringExpression;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-
-class Q_UML_EXPORT QUmlModel : public QObject, public UmlModel
+class Q_UML_EXPORT QUmlModel : public QUmlPackage
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QUmlTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Package]
- Q_PROPERTY(QString URI READ URI)
- Q_PROPERTY(QSet<QUmlPackage *> nestedPackage READ nestedPackage)
- Q_PROPERTY(QUmlPackage * nestingPackage READ nestingPackage)
- Q_PROPERTY(QSet<QUmlStereotype *> ownedStereotype READ ownedStereotype)
- Q_PROPERTY(QSet<QUmlType *> ownedType READ ownedType)
- Q_PROPERTY(QSet<QUmlPackageMerge *> packageMerge READ packageMerge)
- Q_PROPERTY(QSet<QUmlPackageableElement *> packagedElement READ packagedElement)
- Q_PROPERTY(QSet<QUmlProfileApplication *> profileApplication READ profileApplication)
-
- // Properties [Model]
- Q_PROPERTY(QString viewpoint READ viewpoint)
-
public:
- Q_INVOKABLE explicit QUmlModel(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE QUmlTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Package]
- Q_INVOKABLE QString URI() const;
- Q_INVOKABLE const QSet<QUmlPackage *> nestedPackage() const;
- Q_INVOKABLE QUmlPackage *nestingPackage() const;
- Q_INVOKABLE const QSet<QUmlStereotype *> ownedStereotype() const;
- Q_INVOKABLE const QSet<QUmlType *> ownedType() const;
- Q_INVOKABLE const QSet<QUmlPackageMerge *> packageMerge() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> packagedElement() const;
- Q_INVOKABLE const QSet<QUmlProfileApplication *> profileApplication() const;
+ explicit QUmlModel(bool createQObject = true);
+ virtual ~QUmlModel();
- // Owned attributes [Model]
- Q_INVOKABLE QString viewpoint() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Package]
- Q_INVOKABLE QSet<QUmlStereotype *> allApplicableStereotypes() const;
- Q_INVOKABLE QUmlProfile *containingProfile() const;
- Q_INVOKABLE bool makesVisible(QUmlNamedElement *el) const;
- Q_INVOKABLE bool mustBeOwned() const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> visibleMembers() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TemplateableElement]
- void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Package]
- void setURI(QString URI);
- void addNestedPackage(UmlPackage *nestedPackage);
- void removeNestedPackage(UmlPackage *nestedPackage);
- void setNestingPackage(QUmlPackage *nestingPackage);
- void addOwnedType(UmlType *ownedType);
- void removeOwnedType(UmlType *ownedType);
- void addPackageMerge(UmlPackageMerge *packageMerge);
- void removePackageMerge(UmlPackageMerge *packageMerge);
- void addPackagedElement(UmlPackageableElement *packagedElement);
- void removePackagedElement(UmlPackageableElement *packagedElement);
- void addProfileApplication(UmlProfileApplication *profileApplication);
- void removeProfileApplication(UmlProfileApplication *profileApplication);
-
- // Slots for owned attributes [Model]
+ // Owned attributes
+ QString viewpoint() const;
void setViewpoint(QString viewpoint);
+
+protected:
+ QString _viewpoint;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlModel *)
-Q_DECLARE_METATYPE(QList<QUmlModel *> *)
-Q_DECLARE_METATYPE(QSet<QUmlModel *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlModel) *)
QT_END_HEADER
diff --git a/src/uml/qumlmultiplicityelement.cpp b/src/uml/qumlmultiplicityelement.cpp
index 73172b88..d6cc59ad 100644
--- a/src/uml/qumlmultiplicityelement.cpp
+++ b/src/uml/qumlmultiplicityelement.cpp
@@ -40,130 +40,192 @@
****************************************************************************/
#include "qumlmultiplicityelement.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlMultiplicityElement
+ \class QUmlMultiplicityElement
\inmodule QtUml
\brief A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.
*/
+QUmlMultiplicityElement::QUmlMultiplicityElement() :
+ _isOrdered(false),
+ _isUnique(true),
+ _lowerValue(0),
+ _upperValue(0)
+{
+}
-QUmlMultiplicityElement::QUmlMultiplicityElement(QObject *parent) :
- QObject(parent)
+QUmlMultiplicityElement::~QUmlMultiplicityElement()
{
}
-// OWNED ATTRIBUTES [Element]
+// OWNED ATTRIBUTES
/*!
- The Comments owned by this element.
+ For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
*/
-const QSet<QUmlComment *> QUmlMultiplicityElement::ownedComment() const
+bool
+QUmlMultiplicityElement::isOrdered() const
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ // This is a read-write property
+
+ return _isOrdered;
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlMultiplicityElement::ownedElement() const
+void QUmlMultiplicityElement::setOrdered(bool isOrdered)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write property
+
+ if (_isOrdered != isOrdered) {
+ _isOrdered = isOrdered;
+ }
}
/*!
- The Element that owns this element.
+ For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
*/
-QUmlElement *QUmlMultiplicityElement::owner() const
+bool
+QUmlMultiplicityElement::isUnique() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write property
-// OWNED ATTRIBUTES [MultiplicityElement]
+ return _isUnique;
+}
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlMultiplicityElement::isOrdered() const
+void QUmlMultiplicityElement::setUnique(bool isUnique)
{
- return _isOrdered;
+ // This is a read-write property
+
+ if (_isUnique != isUnique) {
+ _isUnique = isUnique;
+ }
}
/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
+ Specifies the lower bound of the multiplicity interval.
*/
-bool QUmlMultiplicityElement::isUnique() const
+int
+QUmlMultiplicityElement::lower() const
{
- return _isUnique;
+ // This is a read-write derived property
+
+ qWarning("UmlMultiplicityElement::lower(): to be implemented (this is a derived property)");
+
+ return int();
}
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlMultiplicityElement::lower() const
+void QUmlMultiplicityElement::setLower(int lower)
{
- return UmlMultiplicityElement::lower();
+ // This is a read-write derived property
+
+ qWarning("UmlMultiplicityElement::lower(): to be implemented (this is a derived property)");
+ Q_UNUSED(lower);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
The specification of the lower bound for this multiplicity.
*/
-QUmlValueSpecification *QUmlMultiplicityElement::lowerValue() const
+QUmlValueSpecification *
+QUmlMultiplicityElement::lowerValue() const
{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
+ // This is a read-write association end
+
+ return _lowerValue;
}
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlMultiplicityElement::upper() const
+void QUmlMultiplicityElement::setLowerValue(QUmlValueSpecification *lowerValue)
{
- return UmlMultiplicityElement::upper();
+ // This is a read-write association end
+
+ if (_lowerValue != lowerValue) {
+ // Adjust subsetted properties
+ removeOwnedElement(_lowerValue);
+
+ _lowerValue = lowerValue;
+ if (lowerValue->asQObject() && this->asQObject())
+ QObject::connect(lowerValue->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setLowerValue()));
+ lowerValue->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ if (lowerValue) {
+ addOwnedElement(lowerValue);
+ }
+ }
}
/*!
- The specification of the upper bound for this multiplicity.
+ Specifies the upper bound of the multiplicity interval.
*/
-QUmlValueSpecification *QUmlMultiplicityElement::upperValue() const
+int
+QUmlMultiplicityElement::upper() const
{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
+ // This is a read-write derived property
+
+ qWarning("UmlMultiplicityElement::upper(): to be implemented (this is a derived property)");
+
+ return int();
}
-// OPERATIONS [Element]
+void QUmlMultiplicityElement::setUpper(int upper)
+{
+ // This is a read-write derived property
+
+ qWarning("UmlMultiplicityElement::upper(): to be implemented (this is a derived property)");
+ Q_UNUSED(upper);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
+}
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ The specification of the upper bound for this multiplicity.
*/
-QSet<QUmlElement *> QUmlMultiplicityElement::allOwnedElements() const
+QUmlValueSpecification *
+QUmlMultiplicityElement::upperValue() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write association end
+
+ return _upperValue;
}
-/*!
- 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.
- */
-bool QUmlMultiplicityElement::mustBeOwned() const
+void QUmlMultiplicityElement::setUpperValue(QUmlValueSpecification *upperValue)
{
- return UmlElement::mustBeOwned();
+ // This is a read-write association end
+
+ if (_upperValue != upperValue) {
+ // Adjust subsetted properties
+ removeOwnedElement(_upperValue);
+
+ _upperValue = upperValue;
+ if (upperValue->asQObject() && this->asQObject())
+ QObject::connect(upperValue->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setUpperValue()));
+ upperValue->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ if (upperValue) {
+ addOwnedElement(upperValue);
+ }
+ }
}
-// OPERATIONS [MultiplicityElement]
+// OPERATIONS
/*!
The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
*/
bool QUmlMultiplicityElement::compatibleWith(QUmlMultiplicityElement *other) const
{
- return UmlMultiplicityElement::compatibleWith(other);
+ qWarning("UmlMultiplicityElement::compatibleWith(): to be implemented (operation)");
+
+ Q_UNUSED(other);
+ return bool ();
}
/*!
@@ -171,7 +233,10 @@ bool QUmlMultiplicityElement::compatibleWith(QUmlMultiplicityElement *other) con
*/
bool QUmlMultiplicityElement::includesCardinality(int C) const
{
- return UmlMultiplicityElement::includesCardinality(C);
+ qWarning("UmlMultiplicityElement::includesCardinality(): to be implemented (operation)");
+
+ Q_UNUSED(C);
+ return bool ();
}
/*!
@@ -179,7 +244,10 @@ bool QUmlMultiplicityElement::includesCardinality(int C) const
*/
bool QUmlMultiplicityElement::includesMultiplicity(QUmlMultiplicityElement *M) const
{
- return UmlMultiplicityElement::includesMultiplicity(M);
+ qWarning("UmlMultiplicityElement::includesMultiplicity(): to be implemented (operation)");
+
+ Q_UNUSED(M);
+ return bool ();
}
/*!
@@ -187,7 +255,11 @@ bool QUmlMultiplicityElement::includesMultiplicity(QUmlMultiplicityElement *M) c
*/
bool QUmlMultiplicityElement::is(int lowerbound, int upperbound) const
{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
+ qWarning("UmlMultiplicityElement::is(): to be implemented (operation)");
+
+ Q_UNUSED(lowerbound);
+ Q_UNUSED(upperbound);
+ return bool ();
}
/*!
@@ -195,7 +267,9 @@ bool QUmlMultiplicityElement::is(int lowerbound, int upperbound) const
*/
bool QUmlMultiplicityElement::isMultivalued() const
{
- return UmlMultiplicityElement::isMultivalued();
+ qWarning("UmlMultiplicityElement::isMultivalued(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -203,60 +277,18 @@ bool QUmlMultiplicityElement::isMultivalued() const
*/
int QUmlMultiplicityElement::lowerBound() const
{
- return UmlMultiplicityElement::lowerBound();
+ qWarning("UmlMultiplicityElement::lowerBound(): to be implemented (operation)");
+
+ return int ();
}
/*!
The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
*/
-int QUmlMultiplicityElement::upperBound() const
-{
- return UmlMultiplicityElement::upperBound();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlMultiplicityElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlMultiplicityElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlMultiplicityElement::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlMultiplicityElement::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlMultiplicityElement::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlMultiplicityElement::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlMultiplicityElement::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlMultiplicityElement::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-QT_END_NAMESPACE
+//int QUmlMultiplicityElement::upperBound() const
+//{
+// qWarning("UmlMultiplicityElement::upperBound(): to be implemented (operation)");
+//
+// return int ();
+//}
diff --git a/src/uml/qumlmultiplicityelement.h b/src/uml/qumlmultiplicityelement.h
index 53d46aad..aad7a453 100644
--- a/src/uml/qumlmultiplicityelement.h
+++ b/src/uml/qumlmultiplicityelement.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlmultiplicityelement_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,76 +52,48 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlMultiplicityElement : public QObject, public UmlMultiplicityElement
+class Q_UML_EXPORT QUmlMultiplicityElement : public virtual QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
public:
- Q_DECL_HIDDEN explicit QUmlMultiplicityElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
+ virtual ~QUmlMultiplicityElement();
+
+ // Owned attributes
+ bool isOrdered() const;
void setOrdered(bool isOrdered);
+ bool isUnique() const;
void setUnique(bool isUnique);
+ int lower() const;
void setLower(int lower);
+ QUmlValueSpecification *lowerValue() const;
void setLowerValue(QUmlValueSpecification *lowerValue);
+ int upper() const;
void setUpper(int upper);
+ QUmlValueSpecification *upperValue() const;
void setUpperValue(QUmlValueSpecification *upperValue);
+
+ // Operations
+ bool compatibleWith(QUmlMultiplicityElement *other) const;
+ bool includesCardinality(int C) const;
+ bool includesMultiplicity(QUmlMultiplicityElement *M) const;
+ bool is(int lowerbound, int upperbound) const;
+ bool isMultivalued() const;
+ int lowerBound() const;
+// int upperBound() const;
+
+protected:
+ explicit QUmlMultiplicityElement();
+
+ bool _isOrdered;
+ bool _isUnique;
+ QUmlValueSpecification *_lowerValue;
+ QUmlValueSpecification *_upperValue;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlMultiplicityElement *)
-Q_DECLARE_METATYPE(QList<QUmlMultiplicityElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlMultiplicityElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlMultiplicityElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlnamedelement.cpp b/src/uml/qumlnamedelement.cpp
index 2c0698a7..6dc49e13 100644
--- a/src/uml/qumlnamedelement.cpp
+++ b/src/uml/qumlnamedelement.cpp
@@ -40,136 +40,204 @@
****************************************************************************/
#include "qumlnamedelement.h"
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlPackage>
#include <QtUml/QUmlStringExpression>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlNamedElement
+ \class QUmlNamedElement
\inmodule QtUml
\brief A named element supports using a string expression to specify its name. This allows names of model elements to involve template parameters. The actual name is evaluated from the string expression only when it is sensible to do so (e.g., when a template is bound).A named element is an element in a model that may have a name.
*/
+QUmlNamedElement::QUmlNamedElement() :
+ _nameExpression(0),
+ _namespace_(0)
+{
+}
-QUmlNamedElement::QUmlNamedElement(QObject *parent) :
- QObject(parent)
+QUmlNamedElement::~QUmlNamedElement()
{
}
-// OWNED ATTRIBUTES [Element]
+// OWNED ATTRIBUTES
/*!
- The Comments owned by this element.
+ Indicates the dependencies that reference the client.
*/
-const QSet<QUmlComment *> QUmlNamedElement::ownedComment() const
+const QSet<QUmlDependency *>
+QUmlNamedElement::clientDependency() const
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ // This is a read-write association end
+
+ return _clientDependency;
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlNamedElement::ownedElement() const
+void QUmlNamedElement::addClientDependency(QUmlDependency *clientDependency)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ if (!_clientDependency.contains(clientDependency)) {
+ _clientDependency.insert(clientDependency);
+ if (clientDependency->asQObject() && this->asQObject())
+ QObject::connect(clientDependency->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeClientDependency(QObject *)));
+
+ // Adjust opposite properties
+ if (clientDependency) {
+ clientDependency->addClient(this);
+ }
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlNamedElement::owner() const
+void QUmlNamedElement::removeClientDependency(QUmlDependency *clientDependency)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (_clientDependency.contains(clientDependency)) {
+ _clientDependency.remove(clientDependency);
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlNamedElement::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ // Adjust opposite properties
+ if (clientDependency) {
+ clientDependency->removeClient(this);
+ }
+ }
}
/*!
The name of the NamedElement.
*/
-QString QUmlNamedElement::name() const
+QString
+QUmlNamedElement::name() const
{
+ // This is a read-write property
+
return _name;
}
+void QUmlNamedElement::setName(QString name)
+{
+ // This is a read-write property
+
+ if (_name != name) {
+ _name = name;
+ }
+}
+
/*!
The string expression used to define the name of this named element.
*/
-QUmlStringExpression *QUmlNamedElement::nameExpression() const
+QUmlStringExpression *
+QUmlNamedElement::nameExpression() const
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ // This is a read-write association end
+
+ return _nameExpression;
+}
+
+void QUmlNamedElement::setNameExpression(QUmlStringExpression *nameExpression)
+{
+ // This is a read-write association end
+
+ if (_nameExpression != nameExpression) {
+ // Adjust subsetted properties
+ removeOwnedElement(_nameExpression);
+
+ _nameExpression = nameExpression;
+ if (nameExpression->asQObject() && this->asQObject())
+ QObject::connect(nameExpression->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setNameExpression()));
+ nameExpression->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ if (nameExpression) {
+ addOwnedElement(nameExpression);
+ }
+ }
}
/*!
Specifies the namespace that owns the NamedElement.
*/
-QUmlNamespace *QUmlNamedElement::namespace_() const
+QUmlNamespace *
+QUmlNamedElement::namespace_() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // This is a read-only derived union association end
+
+ return _namespace_;
}
-/*!
- 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.
- */
-QString QUmlNamedElement::qualifiedName() const
+void QUmlNamedElement::setNamespace(QUmlNamespace *namespace_)
{
- return UmlNamedElement::qualifiedName();
+ // This is a read-only derived union association end
+
+ if (_namespace_ != namespace_) {
+ // Adjust subsetted properties
+
+ _namespace_ = namespace_;
+ if (namespace_->asQObject() && this->asQObject())
+ QObject::connect(namespace_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setNamespace()));
+
+ // Adjust subsetted properties
+ setOwner(namespace_);
+ }
}
/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
+ A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself.
*/
-QtUml::VisibilityKind QUmlNamedElement::visibility() const
+QString
+QUmlNamedElement::qualifiedName() const
{
- return _visibility;
+ // This is a read-only derived property
+
+ qWarning("UmlNamedElement::qualifiedName(): to be implemented (this is a derived property)");
+
+ return QString();
}
-// OPERATIONS [Element]
+void QUmlNamedElement::setQualifiedName(QString qualifiedName)
+{
+ // This is a read-only derived property
+
+ qWarning("UmlNamedElement::qualifiedName(): to be implemented (this is a derived property)");
+ Q_UNUSED(qualifiedName);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
+}
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
*/
-QSet<QUmlElement *> QUmlNamedElement::allOwnedElements() const
+QtUml::VisibilityKind
+QUmlNamedElement::visibility() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write property
+
+ return _visibility;
}
-/*!
- 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.
- */
-bool QUmlNamedElement::mustBeOwned() const
+void QUmlNamedElement::setVisibility(QtUml::VisibilityKind visibility)
{
- return UmlElement::mustBeOwned();
+ // This is a read-write property
+
+ if (_visibility != visibility) {
+ _visibility = visibility;
+ }
}
-// OPERATIONS [NamedElement]
+// OPERATIONS
/*!
The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
*/
QList<QUmlNamespace *> QUmlNamedElement::allNamespaces() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ qWarning("UmlNamedElement::allNamespaces(): to be implemented (operation)");
+
+ return QList<QUmlNamespace *> ();
}
/*!
@@ -177,10 +245,9 @@ QList<QUmlNamespace *> QUmlNamedElement::allNamespaces() const
*/
QSet<QUmlPackage *> QUmlNamedElement::allOwningPackages() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ qWarning("UmlNamedElement::allOwningPackages(): to be implemented (operation)");
+
+ return QSet<QUmlPackage *> ();
}
/*!
@@ -188,7 +255,11 @@ QSet<QUmlPackage *> QUmlNamedElement::allOwningPackages() const
*/
bool QUmlNamedElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ qWarning("UmlNamedElement::isDistinguishableFrom(): to be implemented (operation)");
+
+ Q_UNUSED(n);
+ Q_UNUSED(ns);
+ return bool ();
}
/*!
@@ -196,47 +267,8 @@ bool QUmlNamedElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace
*/
QString QUmlNamedElement::separator() const
{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlNamedElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlNamedElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlNamedElement::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ qWarning("UmlNamedElement::separator(): to be implemented (operation)");
-void QUmlNamedElement::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlNamedElement::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return QString ();
}
-void QUmlNamedElement::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlNamedElement::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlnamedelement.h b/src/uml/qumlnamedelement.h
index 1419108f..a7043aad 100644
--- a/src/uml/qumlnamedelement.h
+++ b/src/uml/qumlnamedelement.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlnamedelement_p.h"
+#include <QtUml/QUmlElement>
+
#include <QtUml/QtUmlNamespace>
@@ -54,75 +54,50 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlDependency;
-class QUmlElement;
class QUmlNamespace;
class QUmlPackage;
class QUmlStringExpression;
-class Q_UML_EXPORT QUmlNamedElement : public QObject, public UmlNamedElement
+class Q_UML_EXPORT QUmlNamedElement : public virtual QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_DECL_HIDDEN explicit QUmlNamedElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
+ virtual ~QUmlNamedElement();
+
+ // Owned attributes
+ const QSet<QUmlDependency *> clientDependency() const;
+ void addClientDependency(QUmlDependency *clientDependency);
+ void removeClientDependency(QUmlDependency *clientDependency);
+ QString name() const;
void setName(QString name);
+ QUmlStringExpression *nameExpression() const;
void setNameExpression(QUmlStringExpression *nameExpression);
+ QUmlNamespace *namespace_() const;
+ Q_DECL_HIDDEN void setNamespace(QUmlNamespace *namespace_);
+ QString qualifiedName() const;
+ Q_DECL_HIDDEN void setQualifiedName(QString qualifiedName);
+ QtUml::VisibilityKind visibility() const;
void setVisibility(QtUml::VisibilityKind visibility);
+
+ // Operations
+ QList<QUmlNamespace *> allNamespaces() const;
+ QSet<QUmlPackage *> allOwningPackages() const;
+ bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
+ QString separator() const;
+
+protected:
+ explicit QUmlNamedElement();
+
+ QSet<QUmlDependency *> _clientDependency;
+ QString _name;
+ QUmlStringExpression *_nameExpression;
+ QUmlNamespace *_namespace_;
+ QtUml::VisibilityKind _visibility;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlNamedElement *)
-Q_DECLARE_METATYPE(QList<QUmlNamedElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlNamedElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlNamedElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlnamespace.cpp b/src/uml/qumlnamespace.cpp
index 4f89fc55..0c08c445 100644
--- a/src/uml/qumlnamespace.cpp
+++ b/src/uml/qumlnamespace.cpp
@@ -40,233 +40,315 @@
****************************************************************************/
#include "qumlnamespace.h"
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlPackageableElement>
#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlNamespace
+ \class QUmlNamespace
\inmodule QtUml
\brief A namespace is an element in a model that contains a set of named elements that can be identified by name.
*/
+QUmlNamespace::QUmlNamespace()
+{
+}
-QUmlNamespace::QUmlNamespace(QObject *parent) :
- QObject(parent)
+QUmlNamespace::~QUmlNamespace()
{
}
-// OWNED ATTRIBUTES [Element]
+// OWNED ATTRIBUTES
/*!
- The Comments owned by this element.
+ References the ElementImports owned by the Namespace.
*/
-const QSet<QUmlComment *> QUmlNamespace::ownedComment() const
+const QSet<QUmlElementImport *>
+QUmlNamespace::elementImport() const
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ // This is a read-write association end
+
+ return _elementImport;
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlNamespace::ownedElement() const
+void QUmlNamespace::addElementImport(QUmlElementImport *elementImport)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ if (!_elementImport.contains(elementImport)) {
+ _elementImport.insert(elementImport);
+ if (elementImport->asQObject() && this->asQObject())
+ QObject::connect(elementImport->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeElementImport(QObject *)));
+ elementImport->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedElement(elementImport);
+
+ // Adjust opposite properties
+ if (elementImport) {
+ elementImport->setImportingNamespace(this);
+ }
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlNamespace::owner() const
+void QUmlNamespace::removeElementImport(QUmlElementImport *elementImport)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (_elementImport.contains(elementImport)) {
+ _elementImport.remove(elementImport);
+ if (elementImport->asQObject())
+ elementImport->asQObject()->setParent(0);
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlNamespace::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ // Adjust subsetted properties
+ removeOwnedElement(elementImport);
+
+ // Adjust opposite properties
+ if (elementImport) {
+ elementImport->setImportingNamespace(0);
+ }
+ }
}
/*!
- The name of the NamedElement.
+ References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
*/
-QString QUmlNamespace::name() const
+const QSet<QUmlPackageableElement *>
+QUmlNamespace::importedMember() const
{
- return _name;
+ // This is a read-only derived association end
+
+ qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)");
+
+ return QSet<QUmlPackageableElement *>();
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlNamespace::nameExpression() const
+void QUmlNamespace::addImportedMember(QUmlPackageableElement *importedMember)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ // This is a read-only derived association end
+
+ qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)");
+ Q_UNUSED(importedMember);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+
+ // Adjust subsetted properties
+ addMember(importedMember);
+ }
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlNamespace::namespace_() const
+void QUmlNamespace::removeImportedMember(QUmlPackageableElement *importedMember)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ // This is a read-only derived association end
+
+ qWarning("UmlNamespace::importedMember(): to be implemented (this is a derived association end)");
+ Q_UNUSED(importedMember);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+
+ // Adjust subsetted properties
+ removeMember(importedMember);
+ }
}
/*!
- 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.
+ A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
*/
-QString QUmlNamespace::qualifiedName() const
+const QSet<QUmlNamedElement *>
+QUmlNamespace::member() const
{
- return UmlNamedElement::qualifiedName();
+ // This is a read-only derived union association end
+
+ return _member;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlNamespace::visibility() const
+void QUmlNamespace::addMember(QUmlNamedElement *member)
{
- return _visibility;
-}
+ // This is a read-only derived union association end
-// OWNED ATTRIBUTES [Namespace]
+ if (!_member.contains(member)) {
+ _member.insert(member);
+ if (member->asQObject() && this->asQObject())
+ QObject::connect(member->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMember(QObject *)));
+ }
+}
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlNamespace::elementImport() const
+void QUmlNamespace::removeMember(QUmlNamedElement *member)
{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ // This is a read-only derived union association end
+
+ if (_member.contains(member)) {
+ _member.remove(member);
+ }
}
/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
+ A collection of NamedElements owned by the Namespace.
*/
-const QSet<QUmlPackageableElement *> QUmlNamespace::importedMember() const
+const QSet<QUmlNamedElement *>
+QUmlNamespace::ownedMember() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // This is a read-only derived union association end
+
+ return _ownedMember;
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlNamespace::member() const
+void QUmlNamespace::addOwnedMember(QUmlNamedElement *ownedMember)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ // This is a read-only derived union association end
+
+ if (!_ownedMember.contains(ownedMember)) {
+ _ownedMember.insert(ownedMember);
+ if (ownedMember->asQObject() && this->asQObject())
+ QObject::connect(ownedMember->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedMember(QObject *)));
+ ownedMember->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addMember(ownedMember);
+ addOwnedElement(ownedMember);
+
+ // Adjust opposite properties
+ if (ownedMember) {
+ ownedMember->setNamespace(this);
+ }
+ }
}
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlNamespace::ownedMember() const
+void QUmlNamespace::removeOwnedMember(QUmlNamedElement *ownedMember)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ // This is a read-only derived union association end
+
+ if (_ownedMember.contains(ownedMember)) {
+ _ownedMember.remove(ownedMember);
+ if (ownedMember->asQObject())
+ ownedMember->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeMember(ownedMember);
+ removeOwnedElement(ownedMember);
+
+ // Adjust opposite properties
+ if (ownedMember) {
+ ownedMember->setNamespace(0);
+ }
+ }
}
/*!
Specifies a set of Constraints owned by this Namespace.
*/
-const QSet<QUmlConstraint *> QUmlNamespace::ownedRule() const
+const QSet<QUmlConstraint *>
+QUmlNamespace::ownedRule() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ // This is a read-write association end
+
+ return _ownedRule;
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlNamespace::packageImport() const
+void QUmlNamespace::addOwnedRule(QUmlConstraint *ownedRule)
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_ownedRule.contains(ownedRule)) {
+ _ownedRule.insert(ownedRule);
+ if (ownedRule->asQObject() && this->asQObject())
+ QObject::connect(ownedRule->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedRule(QObject *)));
+ ownedRule->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlNamespace::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(ownedRule);
+
+ // Adjust opposite properties
+ if (ownedRule) {
+ ownedRule->setContext(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlNamespace::mustBeOwned() const
+void QUmlNamespace::removeOwnedRule(QUmlConstraint *ownedRule)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_ownedRule.contains(ownedRule)) {
+ _ownedRule.remove(ownedRule);
+ if (ownedRule->asQObject())
+ ownedRule->asQObject()->setParent(0);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlNamespace::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedMember(ownedRule);
+
+ // Adjust opposite properties
+ if (ownedRule) {
+ ownedRule->setContext(0);
+ }
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ References the PackageImports owned by the Namespace.
*/
-QSet<QUmlPackage *> QUmlNamespace::allOwningPackages() const
+const QSet<QUmlPackageImport *>
+QUmlNamespace::packageImport() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // This is a read-write association end
+
+ return _packageImport;
}
-/*!
- 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.
- */
-bool QUmlNamespace::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlNamespace::addPackageImport(QUmlPackageImport *packageImport)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // This is a read-write association end
+
+ if (!_packageImport.contains(packageImport)) {
+ _packageImport.insert(packageImport);
+ if (packageImport->asQObject() && this->asQObject())
+ QObject::connect(packageImport->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePackageImport(QObject *)));
+ packageImport->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedElement(packageImport);
+
+ // Adjust opposite properties
+ if (packageImport) {
+ packageImport->setImportingNamespace(this);
+ }
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlNamespace::separator() const
+void QUmlNamespace::removePackageImport(QUmlPackageImport *packageImport)
{
- return UmlNamedElement::separator();
+ // This is a read-write association end
+
+ if (_packageImport.contains(packageImport)) {
+ _packageImport.remove(packageImport);
+ if (packageImport->asQObject())
+ packageImport->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedElement(packageImport);
+
+ // Adjust opposite properties
+ if (packageImport) {
+ packageImport->setImportingNamespace(0);
+ }
+ }
}
-// OPERATIONS [Namespace]
+// OPERATIONS
/*!
The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
*/
QSet<QUmlPackageableElement *> QUmlNamespace::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ qWarning("UmlNamespace::excludeCollisions(): to be implemented (operation)");
+
+ Q_UNUSED(imps);
+ return QSet<QUmlPackageableElement *> ();
}
/*!
@@ -274,7 +356,10 @@ QSet<QUmlPackageableElement *> QUmlNamespace::excludeCollisions(QSet<QUmlPackage
*/
QSet<QString> QUmlNamespace::getNamesOfMember(QUmlNamedElement *element) const
{
- return UmlNamespace::getNamesOfMember(element);
+ qWarning("UmlNamespace::getNamesOfMember(): to be implemented (operation)");
+
+ Q_UNUSED(element);
+ return QSet<QString> ();
}
/*!
@@ -282,10 +367,10 @@ QSet<QString> QUmlNamespace::getNamesOfMember(QUmlNamedElement *element) const
*/
QSet<QUmlPackageableElement *> QUmlNamespace::importMembers(QSet<QUmlPackageableElement *> imps) const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ qWarning("UmlNamespace::importMembers(): to be implemented (operation)");
+
+ Q_UNUSED(imps);
+ return QSet<QUmlPackageableElement *> ();
}
/*!
@@ -293,79 +378,8 @@ QSet<QUmlPackageableElement *> QUmlNamespace::importMembers(QSet<QUmlPackageable
*/
bool QUmlNamespace::membersAreDistinguishable() const
{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlNamespace::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlNamespace::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlNamespace::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlNamespace::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlNamespace::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlNamespace::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlNamespace::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlNamespace::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlNamespace::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlNamespace::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlNamespace::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlNamespace::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
+ qWarning("UmlNamespace::membersAreDistinguishable(): to be implemented (operation)");
-void QUmlNamespace::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
+ return bool ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlnamespace.h b/src/uml/qumlnamespace.h
index af954d1a..bea7c537 100644
--- a/src/uml/qumlnamespace.h
+++ b/src/uml/qumlnamespace.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlnamespace_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,109 +52,55 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlPackage;
class QUmlPackageableElement;
class QUmlPackageImport;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlNamespace : public QObject, public UmlNamespace
+class Q_UML_EXPORT QUmlNamespace : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
public:
- Q_DECL_HIDDEN explicit QUmlNamespace(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
+ virtual ~QUmlNamespace();
+
+ // Owned attributes
+ const QSet<QUmlElementImport *> elementImport() const;
+ void addElementImport(QUmlElementImport *elementImport);
+ void removeElementImport(QUmlElementImport *elementImport);
+ const QSet<QUmlPackageableElement *> importedMember() const;
+ Q_DECL_HIDDEN void addImportedMember(QUmlPackageableElement *importedMember);
+ Q_DECL_HIDDEN void removeImportedMember(QUmlPackageableElement *importedMember);
+ const QSet<QUmlNamedElement *> member() const;
+ Q_DECL_HIDDEN void addMember(QUmlNamedElement *member);
+ Q_DECL_HIDDEN void removeMember(QUmlNamedElement *member);
+ const QSet<QUmlNamedElement *> ownedMember() const;
+ Q_DECL_HIDDEN void addOwnedMember(QUmlNamedElement *ownedMember);
+ Q_DECL_HIDDEN void removeOwnedMember(QUmlNamedElement *ownedMember);
+ const QSet<QUmlConstraint *> ownedRule() const;
+ void addOwnedRule(QUmlConstraint *ownedRule);
+ void removeOwnedRule(QUmlConstraint *ownedRule);
+ const QSet<QUmlPackageImport *> packageImport() const;
+ void addPackageImport(QUmlPackageImport *packageImport);
+ void removePackageImport(QUmlPackageImport *packageImport);
+
+ // Operations
+ QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
+ QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
+ QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
+ bool membersAreDistinguishable() const;
+
+protected:
+ explicit QUmlNamespace();
+
+ QSet<QUmlElementImport *> _elementImport;
+ QSet<QUmlNamedElement *> _member;
+ QSet<QUmlNamedElement *> _ownedMember;
+ QSet<QUmlConstraint *> _ownedRule;
+ QSet<QUmlPackageImport *> _packageImport;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlNamespace *)
-Q_DECLARE_METATYPE(QList<QUmlNamespace *> *)
-Q_DECLARE_METATYPE(QSet<QUmlNamespace *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlNamespace) *)
QT_END_HEADER
diff --git a/src/uml/qumlnode.cpp b/src/uml/qumlnode.cpp
index e4c6a64a..9c202a58 100644
--- a/src/uml/qumlnode.cpp
+++ b/src/uml/qumlnode.cpp
@@ -40,1096 +40,69 @@
****************************************************************************/
#include "qumlnode.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlnodeobject_p.h"
/*!
- \class UmlNode
+ \class QUmlNode
\inmodule QtUml
\brief A node is computational resource upon which artifacts may be deployed for execution. Nodes can be interconnected through communication paths to define network structures.
*/
-
-QUmlNode::QUmlNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlNode::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlNode::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlNode::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlNode::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlNode::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlNode::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlNode::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlNode::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlNode::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlNode::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlNode::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlNode::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlNode::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlNode::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlNode::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlNode::ownedTemplateSignature() const
+QUmlNode::QUmlNode(bool createQObject) :
+ QUmlClass(false)
{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
+ if (createQObject)
+ _qObject = new QUmlNodeObject(this);
}
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlNode::ownedUseCase() const
+QUmlNode::~QUmlNode()
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlNode::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlNode::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlNode::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlNode::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlNode::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlNode::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlNode::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlNode::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlNode::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlNode::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlNode::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlNode::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlNode::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlNode::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlNode::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlNode::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlNode::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlNode::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlNode::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlNode::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlNode::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlNode::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlNode::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OWNED ATTRIBUTES [Node]
+// OWNED ATTRIBUTES
/*!
The Nodes that are defined (nested) within the Node.
*/
-const QSet<QUmlNode *> QUmlNode::nestedNode() const
+const QSet<QUmlNode *>
+QUmlNode::nestedNode() const
{
- return *(reinterpret_cast<const QSet<QUmlNode *> *>(&_nestedNode));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _nestedNode;
}
-/*!
- 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.
- */
-bool QUmlNode::mustBeOwned() const
+void QUmlNode::addNestedNode(QUmlNode *nestedNode)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_nestedNode.contains(nestedNode)) {
+ _nestedNode.insert(nestedNode);
+ if (nestedNode->asQObject() && this->asQObject())
+ QObject::connect(nestedNode->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNestedNode(QObject *)));
+ nestedNode->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(nestedNode);
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlNode::allOwningPackages() const
+void QUmlNode::removeNestedNode(QUmlNode *nestedNode)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ if (_nestedNode.contains(nestedNode)) {
+ _nestedNode.remove(nestedNode);
+ if (nestedNode->asQObject())
+ nestedNode->asQObject()->setParent(0);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlNode::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedMember(nestedNode);
+ }
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlNode::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlNode::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlNode::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlNode::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlNode::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlNode::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlNode::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlNode::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlNode::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlNode::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlNode::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlNode::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlNode::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlNode::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlNode::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlNode::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlNode::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlNode::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlNode::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlNode::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlNode::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlNode::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlNode::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlNode::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlNode::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlNode::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlNode::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlNode::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlNode::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlNode::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlNode::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlNode::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlNode::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlNode::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlNode::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlNode::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlNode::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlNode::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlNode::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlNode::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlNode::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlNode::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlNode::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlNode::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlNode::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlNode::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlNode::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlNode::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlNode::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlNode::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlNode::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlNode::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlNode::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlNode::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlNode::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlNode::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlNode::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlNode::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlNode::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlNode::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlNode::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlNode::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlNode::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlNode::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Node]
-
-void QUmlNode::addNestedNode(UmlNode *nestedNode)
-{
- UmlNode::addNestedNode(nestedNode);
-}
-
-void QUmlNode::removeNestedNode(UmlNode *nestedNode)
-{
- UmlNode::removeNestedNode(nestedNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlnode.h b/src/uml/qumlnode.h
index 0c9722e3..1e188716 100644
--- a/src/uml/qumlnode.h
+++ b/src/uml/qumlnode.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlnode_p.h"
+#include <QtUml/QUmlClass>
+#include <QtUml/QUmlDeploymentTarget>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,356 +53,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlNode : public QObject, public UmlNode
+class Q_UML_EXPORT QUmlNode : public QUmlClass, public QUmlDeploymentTarget
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [Node]
- Q_PROPERTY(QSet<QUmlNode *> nestedNode READ nestedNode)
-
public:
- Q_INVOKABLE explicit QUmlNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Owned attributes [Node]
- Q_INVOKABLE const QSet<QUmlNode *> nestedNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ explicit QUmlNode(bool createQObject = true);
+ virtual ~QUmlNode();
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
+ // Owned attributes
+ const QSet<QUmlNode *> nestedNode() const;
+ void addNestedNode(QUmlNode *nestedNode);
+ void removeNestedNode(QUmlNode *nestedNode);
- // Slots for owned attributes [Node]
- void addNestedNode(UmlNode *nestedNode);
- void removeNestedNode(UmlNode *nestedNode);
+protected:
+ QSet<QUmlNode *> _nestedNode;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlNode *)
-Q_DECLARE_METATYPE(QList<QUmlNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlobjectflow.cpp b/src/uml/qumlobjectflow.cpp
index fc67e9ef..518d5230 100644
--- a/src/uml/qumlobjectflow.cpp
+++ b/src/uml/qumlobjectflow.cpp
@@ -40,461 +40,118 @@
****************************************************************************/
#include "qumlobjectflow.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlobjectflowobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlBehavior>
/*!
- \class UmlObjectFlow
+ \class QUmlObjectFlow
\inmodule QtUml
\brief An object flow is an activity edge that can have objects or data passing along it.Object flows have support for multicast/receive, token selection from object nodes, and transformation of tokens.
*/
-
-QUmlObjectFlow::QUmlObjectFlow(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlObjectFlow::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlObjectFlow::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlObjectFlow::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlObjectFlow::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlObjectFlow::name() const
+QUmlObjectFlow::QUmlObjectFlow(bool createQObject) :
+ _isMulticast(false),
+ _isMultireceive(false),
+ _selection(0),
+ _transformation(0)
{
- return _name;
+ if (createQObject)
+ _qObject = new QUmlObjectFlowObject(this);
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlObjectFlow::nameExpression() const
+QUmlObjectFlow::~QUmlObjectFlow()
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlObjectFlow::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlObjectFlow::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlObjectFlow::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlObjectFlow::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlObjectFlow::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlObjectFlow::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityEdge]
-
-/*!
- Activity containing the edge.
- */
-QUmlActivity *QUmlObjectFlow::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Specification evaluated at runtime to determine if the edge can be traversed.
- */
-QUmlValueSpecification *QUmlObjectFlow::guard() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_guard);
-}
-
-/*!
- Groups containing the edge.
- */
-const QSet<QUmlActivityGroup *> QUmlObjectFlow::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Partitions containing the edge.
- */
-const QSet<QUmlActivityPartition *> QUmlObjectFlow::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the edge.
- */
-QUmlStructuredActivityNode *QUmlObjectFlow::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Region that the edge can interrupt.
- */
-QUmlInterruptibleActivityRegion *QUmlObjectFlow::interrupts() const
-{
- return reinterpret_cast<QUmlInterruptibleActivityRegion *>(_interrupts);
-}
-
-/*!
- Inherited edges replaced by this edge in a specialization of the activity.
- */
-const QSet<QUmlActivityEdge *> QUmlObjectFlow::redefinedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_redefinedEdge));
-}
-
-/*!
- Node from which tokens are taken when they traverse the edge.
- */
-QUmlActivityNode *QUmlObjectFlow::source() const
-{
- return reinterpret_cast<QUmlActivityNode *>(_source);
-}
-
-/*!
- Node to which tokens are put when they traverse the edge.
- */
-QUmlActivityNode *QUmlObjectFlow::target() const
-{
- return reinterpret_cast<QUmlActivityNode *>(_target);
-}
-
-/*!
- The minimum number of tokens that must traverse the edge at the same time.
- */
-QUmlValueSpecification *QUmlObjectFlow::weight() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_weight);
-}
-
-// OWNED ATTRIBUTES [ObjectFlow]
+// OWNED ATTRIBUTES
/*!
Tells whether the objects in the flow are passed by multicasting.
*/
-bool QUmlObjectFlow::isMulticast() const
+bool
+QUmlObjectFlow::isMulticast() const
{
+ // This is a read-write property
+
return _isMulticast;
}
-/*!
- Tells whether the objects in the flow are gathered from respondents to multicasting.
- */
-bool QUmlObjectFlow::isMultireceive() const
+void QUmlObjectFlow::setMulticast(bool isMulticast)
{
- return _isMultireceive;
-}
+ // This is a read-write property
-/*!
- Selects tokens from a source object node.
- */
-QUmlBehavior *QUmlObjectFlow::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
+ if (_isMulticast != isMulticast) {
+ _isMulticast = isMulticast;
+ }
}
/*!
- Changes or replaces data tokens flowing along edge.
+ Tells whether the objects in the flow are gathered from respondents to multicasting.
*/
-QUmlBehavior *QUmlObjectFlow::transformation() const
+bool
+QUmlObjectFlow::isMultireceive() const
{
- return reinterpret_cast<QUmlBehavior *>(_transformation);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlObjectFlow::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _isMultireceive;
}
-/*!
- 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.
- */
-bool QUmlObjectFlow::mustBeOwned() const
+void QUmlObjectFlow::setMultireceive(bool isMultireceive)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write property
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlObjectFlow::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (_isMultireceive != isMultireceive) {
+ _isMultireceive = isMultireceive;
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ Selects tokens from a source object node.
*/
-QSet<QUmlPackage *> QUmlObjectFlow::allOwningPackages() const
+QUmlBehavior *
+QUmlObjectFlow::selection() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlObjectFlow::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _selection;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlObjectFlow::separator() const
+void QUmlObjectFlow::setSelection(QUmlBehavior *selection)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlObjectFlow::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_selection != selection) {
+ _selection = selection;
+ if (selection->asQObject() && this->asQObject())
+ QObject::connect(selection->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSelection()));
+ }
}
/*!
- 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.
+ Changes or replaces data tokens flowing along edge.
*/
-bool QUmlObjectFlow::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlBehavior *
+QUmlObjectFlow::transformation() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlObjectFlow::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlObjectFlow::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlObjectFlow::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlObjectFlow::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlObjectFlow::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlObjectFlow::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlObjectFlow::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlObjectFlow::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityEdge]
-
-void QUmlObjectFlow::setActivity(QUmlActivity *activity)
-{
- UmlActivityEdge::setActivity(activity);
-}
-
-void QUmlObjectFlow::setGuard(QUmlValueSpecification *guard)
-{
- UmlActivityEdge::setGuard(guard);
-}
-
-void QUmlObjectFlow::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityEdge::addInPartition(inPartition);
-}
-
-void QUmlObjectFlow::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityEdge::removeInPartition(inPartition);
-}
-
-void QUmlObjectFlow::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityEdge::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlObjectFlow::setInterrupts(QUmlInterruptibleActivityRegion *interrupts)
-{
- UmlActivityEdge::setInterrupts(interrupts);
-}
-
-void QUmlObjectFlow::addRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- UmlActivityEdge::addRedefinedEdge(redefinedEdge);
-}
-
-void QUmlObjectFlow::removeRedefinedEdge(UmlActivityEdge *redefinedEdge)
-{
- UmlActivityEdge::removeRedefinedEdge(redefinedEdge);
-}
-
-void QUmlObjectFlow::setSource(QUmlActivityNode *source)
-{
- UmlActivityEdge::setSource(source);
-}
-
-void QUmlObjectFlow::setTarget(QUmlActivityNode *target)
-{
- UmlActivityEdge::setTarget(target);
-}
-
-void QUmlObjectFlow::setWeight(QUmlValueSpecification *weight)
-{
- UmlActivityEdge::setWeight(weight);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectFlow]
-
-void QUmlObjectFlow::setMulticast(bool isMulticast)
-{
- UmlObjectFlow::setMulticast(isMulticast);
-}
-
-void QUmlObjectFlow::setMultireceive(bool isMultireceive)
-{
- UmlObjectFlow::setMultireceive(isMultireceive);
-}
-
-void QUmlObjectFlow::setSelection(QUmlBehavior *selection)
-{
- UmlObjectFlow::setSelection(selection);
+ return _transformation;
}
void QUmlObjectFlow::setTransformation(QUmlBehavior *transformation)
{
- UmlObjectFlow::setTransformation(transformation);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_transformation != transformation) {
+ _transformation = transformation;
+ if (transformation->asQObject() && this->asQObject())
+ QObject::connect(transformation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTransformation()));
+ }
+}
diff --git a/src/uml/qumlobjectflow.h b/src/uml/qumlobjectflow.h
index 8ac7f836..ff037d5e 100644
--- a/src/uml/qumlobjectflow.h
+++ b/src/uml/qumlobjectflow.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlobjectflow_p.h"
+#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,159 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlObjectFlow : public QObject, public UmlObjectFlow
+class Q_UML_EXPORT QUmlObjectFlow : public QUmlActivityEdge
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityEdge]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QUmlValueSpecification * guard READ guard)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QUmlInterruptibleActivityRegion * interrupts READ interrupts)
- Q_PROPERTY(QSet<QUmlActivityEdge *> redefinedEdge READ redefinedEdge)
- Q_PROPERTY(QUmlActivityNode * source READ source)
- Q_PROPERTY(QUmlActivityNode * target READ target)
- Q_PROPERTY(QUmlValueSpecification * weight READ weight)
-
- // Properties [ObjectFlow]
- Q_PROPERTY(bool isMulticast READ isMulticast)
- Q_PROPERTY(bool isMultireceive READ isMultireceive)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlBehavior * transformation READ transformation)
-
public:
- Q_INVOKABLE explicit QUmlObjectFlow(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityEdge]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE QUmlValueSpecification *guard() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE QUmlInterruptibleActivityRegion *interrupts() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> redefinedEdge() const;
- Q_INVOKABLE QUmlActivityNode *source() const;
- Q_INVOKABLE QUmlActivityNode *target() const;
- Q_INVOKABLE QUmlValueSpecification *weight() const;
+ explicit QUmlObjectFlow(bool createQObject = true);
+ virtual ~QUmlObjectFlow();
- // Owned attributes [ObjectFlow]
- Q_INVOKABLE bool isMulticast() const;
- Q_INVOKABLE bool isMultireceive() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlBehavior *transformation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityEdge]
- void setActivity(QUmlActivity *activity);
- void setGuard(QUmlValueSpecification *guard);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void setInterrupts(QUmlInterruptibleActivityRegion *interrupts);
- void addRedefinedEdge(UmlActivityEdge *redefinedEdge);
- void removeRedefinedEdge(UmlActivityEdge *redefinedEdge);
- void setSource(QUmlActivityNode *source);
- void setTarget(QUmlActivityNode *target);
- void setWeight(QUmlValueSpecification *weight);
-
- // Slots for owned attributes [ObjectFlow]
+ // Owned attributes
+ bool isMulticast() const;
void setMulticast(bool isMulticast);
+ bool isMultireceive() const;
void setMultireceive(bool isMultireceive);
+ QUmlBehavior *selection() const;
void setSelection(QUmlBehavior *selection);
+ QUmlBehavior *transformation() const;
void setTransformation(QUmlBehavior *transformation);
+
+protected:
+ bool _isMulticast;
+ bool _isMultireceive;
+ QUmlBehavior *_selection;
+ QUmlBehavior *_transformation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlObjectFlow *)
-Q_DECLARE_METATYPE(QList<QUmlObjectFlow *> *)
-Q_DECLARE_METATYPE(QSet<QUmlObjectFlow *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlObjectFlow) *)
QT_END_HEADER
diff --git a/src/uml/qumlobjectnode.cpp b/src/uml/qumlobjectnode.cpp
index fa23870f..3a22f389 100644
--- a/src/uml/qumlobjectnode.cpp
+++ b/src/uml/qumlobjectnode.cpp
@@ -40,487 +40,152 @@
****************************************************************************/
#include "qumlobjectnode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlObjectNode
+ \class QUmlObjectNode
\inmodule QtUml
\brief An object node is an abstract activity node that is part of defining object flow in an activity.Object nodes have support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.
*/
-
-QUmlObjectNode::QUmlObjectNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlObjectNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlObjectNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlObjectNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlObjectNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlObjectNode::name() const
+QUmlObjectNode::QUmlObjectNode() :
+ _isControlType(false),
+ _ordering(QtUml::ObjectNodeOrderingKindFIFO),
+ _selection(0),
+ _upperBound(0)
{
- return _name;
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlObjectNode::nameExpression() const
+QUmlObjectNode::~QUmlObjectNode()
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlObjectNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+// OWNED ATTRIBUTES
/*!
- 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.
- */
-QString QUmlObjectNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlObjectNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlObjectNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlObjectNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlObjectNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
+ The required states of the object available at this point in the activity.
*/
-QUmlActivity *QUmlObjectNode::activity() const
+const QSet<QUmlState *>
+QUmlObjectNode::inState() const
{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
+ // This is a read-write association end
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlObjectNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
+ return _inState;
}
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlObjectNode::inInterruptibleRegion() const
+void QUmlObjectNode::addInState(QUmlState *inState)
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
+ // This is a read-write association end
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlObjectNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
+ if (!_inState.contains(inState)) {
+ _inState.insert(inState);
+ if (inState->asQObject() && this->asQObject())
+ QObject::connect(inState->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInState(QObject *)));
+ }
}
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlObjectNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlObjectNode::incoming() const
+void QUmlObjectNode::removeInState(QUmlState *inState)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
+ // This is a read-write association end
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlObjectNode::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (_inState.contains(inState)) {
+ _inState.remove(inState);
+ }
}
/*!
- Inherited nodes replaced by this node in a specialization of the activity.
+ Tells whether the type of the object node is to be treated as control.
*/
-const QSet<QUmlActivityNode *> QUmlObjectNode::redefinedNode() const
+bool
+QUmlObjectNode::isControlType() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
+ // This is a read-write property
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlObjectNode::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
+ return _isControlType;
}
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlObjectNode::inState() const
+void QUmlObjectNode::setControlType(bool isControlType)
{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
+ // This is a read-write property
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlObjectNode::isControlType() const
-{
- return _isControlType;
+ if (_isControlType != isControlType) {
+ _isControlType = isControlType;
+ }
}
/*!
Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
*/
-QtUml::ObjectNodeOrderingKind QUmlObjectNode::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlObjectNode::selection() const
+QtUml::ObjectNodeOrderingKind
+QUmlObjectNode::ordering() const
{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
+ // This is a read-write property
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlObjectNode::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlObjectNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _ordering;
}
-/*!
- 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.
- */
-bool QUmlObjectNode::mustBeOwned() const
+void QUmlObjectNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write property
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlObjectNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (_ordering != ordering) {
+ _ordering = ordering;
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ Selects tokens for outgoing edges.
*/
-QSet<QUmlPackage *> QUmlObjectNode::allOwningPackages() const
+QUmlBehavior *
+QUmlObjectNode::selection() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlObjectNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _selection;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlObjectNode::separator() const
+void QUmlObjectNode::setSelection(QUmlBehavior *selection)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlObjectNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_selection != selection) {
+ _selection = selection;
+ if (selection->asQObject() && this->asQObject())
+ QObject::connect(selection->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSelection()));
+ }
}
/*!
- 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.
+ The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
*/
-bool QUmlObjectNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlObjectNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlObjectNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlObjectNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlObjectNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlObjectNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlObjectNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlObjectNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlObjectNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlObjectNode::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlObjectNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
+QUmlValueSpecification *
+QUmlObjectNode::upperBound() const
{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
+ // This is a read-write association end
-void QUmlObjectNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
+ return _upperBound;
}
-void QUmlObjectNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlObjectNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlObjectNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlObjectNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlObjectNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlObjectNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlObjectNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlObjectNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlObjectNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlObjectNode::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlObjectNode::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlObjectNode::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlObjectNode::setControlType(bool isControlType)
+void QUmlObjectNode::setUpperBound(QUmlValueSpecification *upperBound)
{
- UmlObjectNode::setControlType(isControlType);
-}
+ // This is a read-write association end
-void QUmlObjectNode::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
+ if (_upperBound != upperBound) {
+ // Adjust subsetted properties
+ removeOwnedElement(_upperBound);
-void QUmlObjectNode::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
+ _upperBound = upperBound;
+ if (upperBound->asQObject() && this->asQObject())
+ QObject::connect(upperBound->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setUpperBound()));
+ upperBound->asQObject()->setParent(this->asQObject());
-void QUmlObjectNode::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
+ // Adjust subsetted properties
+ if (upperBound) {
+ addOwnedElement(upperBound);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlobjectnode.h b/src/uml/qumlobjectnode.h
index cfe91897..61b926fe 100644
--- a/src/uml/qumlobjectnode.h
+++ b/src/uml/qumlobjectnode.h
@@ -43,8 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlobjectnode_p.h"
+#include <QtUml/QUmlActivityNode>
+#include <QtUml/QUmlTypedElement>
+
#include <QtUml/QtUmlNamespace>
@@ -54,171 +55,41 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlObjectNode : public QObject, public UmlObjectNode
+class Q_UML_EXPORT QUmlObjectNode : public QUmlActivityNode, public QUmlTypedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
public:
- Q_DECL_HIDDEN explicit QUmlObjectNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
+ virtual ~QUmlObjectNode();
+
+ // Owned attributes
+ const QSet<QUmlState *> inState() const;
+ void addInState(QUmlState *inState);
+ void removeInState(QUmlState *inState);
+ bool isControlType() const;
void setControlType(bool isControlType);
+ QtUml::ObjectNodeOrderingKind ordering() const;
void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
+ QUmlBehavior *selection() const;
void setSelection(QUmlBehavior *selection);
+ QUmlValueSpecification *upperBound() const;
void setUpperBound(QUmlValueSpecification *upperBound);
+
+protected:
+ explicit QUmlObjectNode();
+
+ QSet<QUmlState *> _inState;
+ bool _isControlType;
+ QtUml::ObjectNodeOrderingKind _ordering;
+ QUmlBehavior *_selection;
+ QUmlValueSpecification *_upperBound;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlObjectNode *)
-Q_DECLARE_METATYPE(QList<QUmlObjectNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlObjectNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlObjectNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlobservation.cpp b/src/uml/qumlobservation.cpp
index c30d7393..0f7cac8a 100644
--- a/src/uml/qumlobservation.cpp
+++ b/src/uml/qumlobservation.cpp
@@ -40,256 +40,18 @@
****************************************************************************/
#include "qumlobservation.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlObservation
+ \class QUmlObservation
\inmodule QtUml
\brief Observation is a superclass of TimeObservation and DurationObservation in order for TimeExpression and Duration to refer to either in a simple way.
*/
-
-QUmlObservation::QUmlObservation(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlObservation::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlObservation::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlObservation::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlObservation::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlObservation::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlObservation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlObservation::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlObservation::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlObservation::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlObservation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlObservation::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlObservation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlObservation::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlObservation::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlObservation::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlObservation::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlObservation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlObservation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlObservation::QUmlObservation()
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlObservation::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlObservation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlObservation::removeOwnedComment(UmlComment *ownedComment)
+QUmlObservation::~QUmlObservation()
{
- UmlElement::removeOwnedComment(ownedComment);
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlObservation::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlObservation::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlObservation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlObservation::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlObservation::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlObservation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlObservation::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlobservation.h b/src/uml/qumlobservation.h
index 76ee62b0..01d9baa1 100644
--- a/src/uml/qumlobservation.h
+++ b/src/uml/qumlobservation.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlobservation_p.h"
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,100 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlObservation : public QObject, public UmlObservation
+class Q_UML_EXPORT QUmlObservation : public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_DECL_HIDDEN explicit QUmlObservation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ virtual ~QUmlObservation();
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
+protected:
+ explicit QUmlObservation();
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlObservation *)
-Q_DECLARE_METATYPE(QList<QUmlObservation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlObservation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlObservation) *)
QT_END_HEADER
diff --git a/src/uml/qumloccurrencespecification.cpp b/src/uml/qumloccurrencespecification.cpp
index 7ab9152e..350004d1 100644
--- a/src/uml/qumloccurrencespecification.cpp
+++ b/src/uml/qumloccurrencespecification.cpp
@@ -40,309 +40,136 @@
****************************************************************************/
#include "qumloccurrencespecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
+#include "private/qumloccurrencespecificationobject_p.h"
+
#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlOccurrenceSpecification
+ \class QUmlOccurrenceSpecification
\inmodule QtUml
\brief An occurrence specification is the basic semantic unit of interactions. The sequences of occurrences specified by them are the meanings of interactions.
*/
-
-QUmlOccurrenceSpecification::QUmlOccurrenceSpecification(QObject *parent) :
- QObject(parent)
+QUmlOccurrenceSpecification::QUmlOccurrenceSpecification(bool createQObject) :
+ _covered(0)
{
+ if (createQObject)
+ _qObject = new QUmlOccurrenceSpecificationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOccurrenceSpecification::ownedComment() const
+QUmlOccurrenceSpecification::~QUmlOccurrenceSpecification()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOccurrenceSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ References the Lifeline on which the OccurrenceSpecification appears.
*/
-QUmlElement *QUmlOccurrenceSpecification::owner() const
+QUmlLifeline *
+QUmlOccurrenceSpecification::covered() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlOccurrenceSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _covered;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlOccurrenceSpecification::name() const
+void QUmlOccurrenceSpecification::setCovered(QUmlLifeline *covered)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlOccurrenceSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (_covered != covered) {
+ _covered = covered;
+ if (covered->asQObject() && this->asQObject())
+ QObject::connect(covered->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setCovered()));
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification
*/
-QUmlNamespace *QUmlOccurrenceSpecification::namespace_() const
+const QSet<QUmlGeneralOrdering *>
+QUmlOccurrenceSpecification::toAfter() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlOccurrenceSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _toAfter;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlOccurrenceSpecification::visibility() const
+void QUmlOccurrenceSpecification::addToAfter(QUmlGeneralOrdering *toAfter)
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
+ // This is a read-write association end
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlOccurrenceSpecification::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
+ if (!_toAfter.contains(toAfter)) {
+ _toAfter.insert(toAfter);
+ if (toAfter->asQObject() && this->asQObject())
+ QObject::connect(toAfter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeToAfter(QObject *)));
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlOccurrenceSpecification::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
+ // Adjust opposite properties
+ if (toAfter) {
+ toAfter->setBefore(this);
+ }
+ }
}
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlOccurrenceSpecification::generalOrdering() const
+void QUmlOccurrenceSpecification::removeToAfter(QUmlGeneralOrdering *toAfter)
{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [OccurrenceSpecification]
-
-/*!
- References the Lifeline on which the OccurrenceSpecification appears.
- */
-QUmlLifeline *QUmlOccurrenceSpecification::covered() const
-{
- return reinterpret_cast<QUmlLifeline *>(_covered);
-}
+ if (_toAfter.contains(toAfter)) {
+ _toAfter.remove(toAfter);
-/*!
- References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification
- */
-const QSet<QUmlGeneralOrdering *> QUmlOccurrenceSpecification::toAfter() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toAfter));
+ // Adjust opposite properties
+ if (toAfter) {
+ toAfter->setBefore(0);
+ }
+ }
}
/*!
References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification
*/
-const QSet<QUmlGeneralOrdering *> QUmlOccurrenceSpecification::toBefore() const
+const QSet<QUmlGeneralOrdering *>
+QUmlOccurrenceSpecification::toBefore() const
{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_toBefore));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOccurrenceSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _toBefore;
}
-/*!
- 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.
- */
-bool QUmlOccurrenceSpecification::mustBeOwned() const
+void QUmlOccurrenceSpecification::addToBefore(QUmlGeneralOrdering *toBefore)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_toBefore.contains(toBefore)) {
+ _toBefore.insert(toBefore);
+ if (toBefore->asQObject() && this->asQObject())
+ QObject::connect(toBefore->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeToBefore(QObject *)));
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlOccurrenceSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust opposite properties
+ if (toBefore) {
+ toBefore->setAfter(this);
+ }
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlOccurrenceSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOccurrenceSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlOccurrenceSpecification::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlOccurrenceSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlOccurrenceSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlOccurrenceSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlOccurrenceSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlOccurrenceSpecification::setName(QString name)
+void QUmlOccurrenceSpecification::removeToBefore(QUmlGeneralOrdering *toBefore)
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlOccurrenceSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ if (_toBefore.contains(toBefore)) {
+ _toBefore.remove(toBefore);
-void QUmlOccurrenceSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ // Adjust opposite properties
+ if (toBefore) {
+ toBefore->setAfter(0);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlOccurrenceSpecification::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlOccurrenceSpecification::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlOccurrenceSpecification::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlOccurrenceSpecification::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OccurrenceSpecification]
-
-void QUmlOccurrenceSpecification::setCovered(QUmlLifeline *covered)
-{
- UmlOccurrenceSpecification::setCovered(covered);
-}
-
-void QUmlOccurrenceSpecification::addToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::addToAfter(toAfter);
-}
-
-void QUmlOccurrenceSpecification::removeToAfter(UmlGeneralOrdering *toAfter)
-{
- UmlOccurrenceSpecification::removeToAfter(toAfter);
-}
-
-void QUmlOccurrenceSpecification::addToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::addToBefore(toBefore);
-}
-
-void QUmlOccurrenceSpecification::removeToBefore(UmlGeneralOrdering *toBefore)
-{
- UmlOccurrenceSpecification::removeToBefore(toBefore);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumloccurrencespecification.h b/src/uml/qumloccurrencespecification.h
index f1a7fbf9..04805f50 100644
--- a/src/uml/qumloccurrencespecification.h
+++ b/src/uml/qumloccurrencespecification.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umloccurrencespecification_p.h"
+#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,113 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlOccurrenceSpecification : public QObject, public UmlOccurrenceSpecification
+class Q_UML_EXPORT QUmlOccurrenceSpecification : public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [OccurrenceSpecification]
- Q_PROPERTY(QUmlLifeline * covered READ covered)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toAfter READ toAfter)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> toBefore READ toBefore)
-
public:
- Q_INVOKABLE explicit QUmlOccurrenceSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [OccurrenceSpecification]
- Q_INVOKABLE QUmlLifeline *covered() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toAfter() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> toBefore() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
+ explicit QUmlOccurrenceSpecification(bool createQObject = true);
+ virtual ~QUmlOccurrenceSpecification();
- // Slots for owned attributes [OccurrenceSpecification]
+ // Owned attributes
+ QUmlLifeline *covered() const;
void setCovered(QUmlLifeline *covered);
- void addToAfter(UmlGeneralOrdering *toAfter);
- void removeToAfter(UmlGeneralOrdering *toAfter);
- void addToBefore(UmlGeneralOrdering *toBefore);
- void removeToBefore(UmlGeneralOrdering *toBefore);
+ const QSet<QUmlGeneralOrdering *> toAfter() const;
+ void addToAfter(QUmlGeneralOrdering *toAfter);
+ void removeToAfter(QUmlGeneralOrdering *toAfter);
+ const QSet<QUmlGeneralOrdering *> toBefore() const;
+ void addToBefore(QUmlGeneralOrdering *toBefore);
+ void removeToBefore(QUmlGeneralOrdering *toBefore);
+
+protected:
+ QUmlLifeline *_covered;
+ QSet<QUmlGeneralOrdering *> _toAfter;
+ QSet<QUmlGeneralOrdering *> _toBefore;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOccurrenceSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlOccurrenceSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOccurrenceSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOccurrenceSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlopaqueaction.cpp b/src/uml/qumlopaqueaction.cpp
index 37903b29..97042e9d 100644
--- a/src/uml/qumlopaqueaction.cpp
+++ b/src/uml/qumlopaqueaction.cpp
@@ -40,571 +40,169 @@
****************************************************************************/
#include "qumlopaqueaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlopaqueactionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlOpaqueAction
+ \class QUmlOpaqueAction
\inmodule QtUml
\brief An action with implementation-specific semantics.
*/
-
-QUmlOpaqueAction::QUmlOpaqueAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOpaqueAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOpaqueAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlOpaqueAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlOpaqueAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlOpaqueAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlOpaqueAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlOpaqueAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlOpaqueAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlOpaqueAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlOpaqueAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlOpaqueAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlOpaqueAction::redefinitionContext() const
+QUmlOpaqueAction::QUmlOpaqueAction(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (createQObject)
+ _qObject = new QUmlOpaqueActionObject(this);
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlOpaqueAction::activity() const
+QUmlOpaqueAction::~QUmlOpaqueAction()
{
- return reinterpret_cast<QUmlActivity *>(_activity);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlOpaqueAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
+// OWNED ATTRIBUTES
/*!
- Interruptible regions containing the node.
+ Specifies the action in one or more languages.
*/
-const QSet<QUmlInterruptibleActivityRegion *> QUmlOpaqueAction::inInterruptibleRegion() const
+const QList<QString>
+QUmlOpaqueAction::body() const
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
+ // This is a read-write property
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlOpaqueAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
+ return _body;
}
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlOpaqueAction::inStructuredNode() const
+void QUmlOpaqueAction::addBody(QString body)
{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
+ // This is a read-write property
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlOpaqueAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlOpaqueAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (!_body.contains(body)) {
+ _body.append(body);
+ }
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlOpaqueAction::redefinedNode() const
+void QUmlOpaqueAction::removeBody(QString body)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
+ // This is a read-write property
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlOpaqueAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
+ if (_body.contains(body)) {
+ _body.removeAll(body);
+ }
}
-// OWNED ATTRIBUTES [Action]
-
/*!
- The classifier that owns the behavior of which this action is a part.
+ Provides input to the action.
*/
-QUmlClassifier *QUmlOpaqueAction::context() const
+const QSet<QUmlInputPin *>
+QUmlOpaqueAction::inputValue() const
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
+ // This is a read-write association end
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlOpaqueAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ return _inputValue;
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlOpaqueAction::isLocallyReentrant() const
+void QUmlOpaqueAction::addInputValue(QUmlInputPin *inputValue)
{
- return _isLocallyReentrant;
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlOpaqueAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
+ if (!_inputValue.contains(inputValue)) {
+ _inputValue.insert(inputValue);
+ if (inputValue->asQObject() && this->asQObject())
+ QObject::connect(inputValue->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInputValue(QObject *)));
+ inputValue->asQObject()->setParent(this->asQObject());
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlOpaqueAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
+ // Adjust subsetted properties
+ addInput(inputValue);
+ }
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlOpaqueAction::output() const
+void QUmlOpaqueAction::removeInputValue(QUmlInputPin *inputValue)
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [OpaqueAction]
+ if (_inputValue.contains(inputValue)) {
+ _inputValue.remove(inputValue);
+ if (inputValue->asQObject())
+ inputValue->asQObject()->setParent(0);
-/*!
- Specifies the action in one or more languages.
- */
-const QList<QString> QUmlOpaqueAction::body() const
-{
- return *(reinterpret_cast<const QList<QString> *>(&_body));
-}
-
-/*!
- Provides input to the action.
- */
-const QSet<QUmlInputPin *> QUmlOpaqueAction::inputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
+ // Adjust subsetted properties
+ removeInput(inputValue);
+ }
}
/*!
Languages the body strings use, in the same order as the body strings
*/
-const QList<QString> QUmlOpaqueAction::language() const
+const QList<QString>
+QUmlOpaqueAction::language() const
{
- return *(reinterpret_cast<const QList<QString> *>(&_language));
-}
+ // This is a read-write property
-/*!
- Takes output from the action.
- */
-const QSet<QUmlOutputPin *> QUmlOpaqueAction::outputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_outputValue));
+ return _language;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOpaqueAction::allOwnedElements() const
+void QUmlOpaqueAction::addLanguage(QString language)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlOpaqueAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ if (!_language.contains(language)) {
+ _language.append(language);
+ }
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlOpaqueAction::allNamespaces() const
+void QUmlOpaqueAction::removeLanguage(QString language)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlOpaqueAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOpaqueAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_language.contains(language)) {
+ _language.removeAll(language);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlOpaqueAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlOpaqueAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ Takes output from the action.
*/
-bool QUmlOpaqueAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlOpaqueAction::addOwnedComment(UmlComment *ownedComment)
+const QSet<QUmlOutputPin *>
+QUmlOpaqueAction::outputValue() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlOpaqueAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _outputValue;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlOpaqueAction::addClientDependency(UmlDependency *clientDependency)
+void QUmlOpaqueAction::addOutputValue(QUmlOutputPin *outputValue)
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlOpaqueAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ if (!_outputValue.contains(outputValue)) {
+ _outputValue.insert(outputValue);
+ if (outputValue->asQObject() && this->asQObject())
+ QObject::connect(outputValue->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOutputValue(QObject *)));
+ outputValue->asQObject()->setParent(this->asQObject());
-void QUmlOpaqueAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ // Adjust subsetted properties
+ addOutput(outputValue);
+ }
}
-void QUmlOpaqueAction::setNameExpression(QUmlStringExpression *nameExpression)
+void QUmlOpaqueAction::removeOutputValue(QUmlOutputPin *outputValue)
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlOpaqueAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlOpaqueAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
+ if (_outputValue.contains(outputValue)) {
+ _outputValue.remove(outputValue);
+ if (outputValue->asQObject())
+ outputValue->asQObject()->setParent(0);
-void QUmlOpaqueAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
+ // Adjust subsetted properties
+ removeOutput(outputValue);
+ }
}
-void QUmlOpaqueAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlOpaqueAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlOpaqueAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlOpaqueAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlOpaqueAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlOpaqueAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlOpaqueAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlOpaqueAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlOpaqueAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlOpaqueAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlOpaqueAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlOpaqueAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlOpaqueAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlOpaqueAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlOpaqueAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlOpaqueAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlOpaqueAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlOpaqueAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OpaqueAction]
-
-void QUmlOpaqueAction::addBody(QString body)
-{
- UmlOpaqueAction::addBody(body);
-}
-
-void QUmlOpaqueAction::removeBody(QString body)
-{
- UmlOpaqueAction::removeBody(body);
-}
-
-void QUmlOpaqueAction::addInputValue(UmlInputPin *inputValue)
-{
- UmlOpaqueAction::addInputValue(inputValue);
-}
-
-void QUmlOpaqueAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlOpaqueAction::removeInputValue(inputValue);
-}
-
-void QUmlOpaqueAction::addLanguage(QString language)
-{
- UmlOpaqueAction::addLanguage(language);
-}
-
-void QUmlOpaqueAction::removeLanguage(QString language)
-{
- UmlOpaqueAction::removeLanguage(language);
-}
-
-void QUmlOpaqueAction::addOutputValue(UmlOutputPin *outputValue)
-{
- UmlOpaqueAction::addOutputValue(outputValue);
-}
-
-void QUmlOpaqueAction::removeOutputValue(UmlOutputPin *outputValue)
-{
- UmlOpaqueAction::removeOutputValue(outputValue);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlopaqueaction.h b/src/uml/qumlopaqueaction.h
index 548077d8..056ac20f 100644
--- a/src/uml/qumlopaqueaction.h
+++ b/src/uml/qumlopaqueaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlopaqueaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,195 +52,39 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlOpaqueAction : public QObject, public UmlOpaqueAction
+class Q_UML_EXPORT QUmlOpaqueAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [OpaqueAction]
- Q_PROPERTY(QList<QString> body READ body)
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
- Q_PROPERTY(QList<QString> language READ language)
- Q_PROPERTY(QSet<QUmlOutputPin *> outputValue READ outputValue)
-
public:
- Q_INVOKABLE explicit QUmlOpaqueAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [OpaqueAction]
- Q_INVOKABLE const QList<QString> body() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
- Q_INVOKABLE const QList<QString> language() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> outputValue() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+ explicit QUmlOpaqueAction(bool createQObject = true);
+ virtual ~QUmlOpaqueAction();
- // Slots for owned attributes [OpaqueAction]
+ // Owned attributes
+ const QList<QString> body() const;
void addBody(QString body);
void removeBody(QString body);
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
+ const QSet<QUmlInputPin *> inputValue() const;
+ void addInputValue(QUmlInputPin *inputValue);
+ void removeInputValue(QUmlInputPin *inputValue);
+ const QList<QString> language() const;
void addLanguage(QString language);
void removeLanguage(QString language);
- void addOutputValue(UmlOutputPin *outputValue);
- void removeOutputValue(UmlOutputPin *outputValue);
+ const QSet<QUmlOutputPin *> outputValue() const;
+ void addOutputValue(QUmlOutputPin *outputValue);
+ void removeOutputValue(QUmlOutputPin *outputValue);
+
+protected:
+ QList<QString> _body;
+ QSet<QUmlInputPin *> _inputValue;
+ QList<QString> _language;
+ QSet<QUmlOutputPin *> _outputValue;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOpaqueAction *)
-Q_DECLARE_METATYPE(QList<QUmlOpaqueAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOpaqueAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOpaqueAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlopaquebehavior.cpp b/src/uml/qumlopaquebehavior.cpp
index 6a4c4240..f6c3e8c6 100644
--- a/src/uml/qumlopaquebehavior.cpp
+++ b/src/uml/qumlopaquebehavior.cpp
@@ -40,1212 +40,86 @@
****************************************************************************/
#include "qumlopaquebehavior.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlopaquebehaviorobject_p.h"
/*!
- \class UmlOpaqueBehavior
+ \class QUmlOpaqueBehavior
\inmodule QtUml
\brief An behavior with implementation-specific semantics.
*/
-
-QUmlOpaqueBehavior::QUmlOpaqueBehavior(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOpaqueBehavior::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOpaqueBehavior::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlOpaqueBehavior::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlOpaqueBehavior::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlOpaqueBehavior::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlOpaqueBehavior::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlOpaqueBehavior::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlOpaqueBehavior::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlOpaqueBehavior::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlOpaqueBehavior::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlOpaqueBehavior::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlOpaqueBehavior::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlOpaqueBehavior::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlOpaqueBehavior::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlOpaqueBehavior::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlOpaqueBehavior::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlOpaqueBehavior::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlOpaqueBehavior::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlOpaqueBehavior::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlOpaqueBehavior::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlOpaqueBehavior::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlOpaqueBehavior::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlOpaqueBehavior::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlOpaqueBehavior::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlOpaqueBehavior::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlOpaqueBehavior::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlOpaqueBehavior::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlOpaqueBehavior::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlOpaqueBehavior::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlOpaqueBehavior::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlOpaqueBehavior::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlOpaqueBehavior::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlOpaqueBehavior::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlOpaqueBehavior::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlOpaqueBehavior::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlOpaqueBehavior::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlOpaqueBehavior::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlOpaqueBehavior::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlOpaqueBehavior::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlOpaqueBehavior::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlOpaqueBehavior::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlOpaqueBehavior::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlOpaqueBehavior::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlOpaqueBehavior::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlOpaqueBehavior::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlOpaqueBehavior::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlOpaqueBehavior::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlOpaqueBehavior::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlOpaqueBehavior::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlOpaqueBehavior::context() const
-{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
-
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlOpaqueBehavior::isReentrant() const
-{
- return _isReentrant;
-}
-
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlOpaqueBehavior::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
-
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlOpaqueBehavior::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
-
-/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
- */
-const QSet<QUmlConstraint *> QUmlOpaqueBehavior::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
-
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlOpaqueBehavior::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlBehavior *> QUmlOpaqueBehavior::redefinedBehavior() const
+QUmlOpaqueBehavior::QUmlOpaqueBehavior(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_redefinedBehavior));
+ if (createQObject)
+ _qObject = new QUmlOpaqueBehaviorObject(this);
}
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlOpaqueBehavior::specification() const
+QUmlOpaqueBehavior::~QUmlOpaqueBehavior()
{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [OpaqueBehavior]
+// OWNED ATTRIBUTES
/*!
Specifies the behavior in one or more languages.
*/
-const QList<QString> QUmlOpaqueBehavior::body() const
-{
- return *(reinterpret_cast<const QList<QString> *>(&_body));
-}
-
-/*!
- Languages the body strings use in the same order as the body strings.
- */
-const QList<QString> QUmlOpaqueBehavior::language() const
-{
- return *(reinterpret_cast<const QList<QString> *>(&_language));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOpaqueBehavior::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlOpaqueBehavior::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlOpaqueBehavior::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlOpaqueBehavior::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlOpaqueBehavior::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlOpaqueBehavior::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlOpaqueBehavior::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlOpaqueBehavior::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlOpaqueBehavior::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlOpaqueBehavior::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlOpaqueBehavior::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlOpaqueBehavior::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlOpaqueBehavior::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::conformsTo(QUmlClassifier *other) const
+const QList<QString>
+QUmlOpaqueBehavior::body() const
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ return _body;
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlOpaqueBehavior::inheritableMembers(QUmlClassifier *c) const
+void QUmlOpaqueBehavior::addBody(QString body)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlOpaqueBehavior::isTemplate() const
-{
- return UmlClassifier::isTemplate();
+ if (!_body.contains(body)) {
+ _body.append(body);
+ }
}
-/*!
- 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.
- */
-bool QUmlOpaqueBehavior::maySpecializeType(QUmlClassifier *c) const
+void QUmlOpaqueBehavior::removeBody(QString body)
{
- return UmlClassifier::maySpecializeType(c);
-}
+ // This is a read-write property
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlOpaqueBehavior::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ if (_body.contains(body)) {
+ _body.removeAll(body);
+ }
}
-// OPERATIONS [Class]
-
/*!
- The inherit operation is overridden to exclude redefined properties.
+ Languages the body strings use in the same order as the body strings.
*/
-QSet<QUmlNamedElement *> QUmlOpaqueBehavior::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlOpaqueBehavior::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlOpaqueBehavior::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlOpaqueBehavior::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlOpaqueBehavior::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlOpaqueBehavior::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlOpaqueBehavior::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlOpaqueBehavior::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlOpaqueBehavior::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlOpaqueBehavior::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlOpaqueBehavior::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlOpaqueBehavior::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlOpaqueBehavior::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlOpaqueBehavior::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlOpaqueBehavior::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlOpaqueBehavior::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlOpaqueBehavior::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlOpaqueBehavior::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlOpaqueBehavior::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlOpaqueBehavior::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlOpaqueBehavior::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlOpaqueBehavior::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlOpaqueBehavior::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlOpaqueBehavior::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlOpaqueBehavior::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlOpaqueBehavior::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlOpaqueBehavior::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlOpaqueBehavior::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlOpaqueBehavior::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlOpaqueBehavior::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlOpaqueBehavior::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlOpaqueBehavior::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlOpaqueBehavior::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlOpaqueBehavior::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlOpaqueBehavior::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlOpaqueBehavior::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlOpaqueBehavior::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlOpaqueBehavior::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlOpaqueBehavior::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlOpaqueBehavior::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlOpaqueBehavior::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlOpaqueBehavior::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlOpaqueBehavior::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlOpaqueBehavior::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlOpaqueBehavior::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlOpaqueBehavior::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlOpaqueBehavior::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlOpaqueBehavior::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlOpaqueBehavior::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlOpaqueBehavior::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlOpaqueBehavior::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlOpaqueBehavior::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlOpaqueBehavior::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlOpaqueBehavior::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlOpaqueBehavior::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlOpaqueBehavior::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlOpaqueBehavior::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlOpaqueBehavior::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlOpaqueBehavior::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlOpaqueBehavior::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlOpaqueBehavior::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlOpaqueBehavior::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlOpaqueBehavior::removePostcondition(UmlConstraint *postcondition)
+const QList<QString>
+QUmlOpaqueBehavior::language() const
{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlOpaqueBehavior::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlOpaqueBehavior::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlOpaqueBehavior::addRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::addRedefinedBehavior(redefinedBehavior);
-}
+ // This is a read-write property
-void QUmlOpaqueBehavior::removeRedefinedBehavior(UmlBehavior *redefinedBehavior)
-{
- UmlBehavior::removeRedefinedBehavior(redefinedBehavior);
+ return _language;
}
-void QUmlOpaqueBehavior::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OpaqueBehavior]
-
-void QUmlOpaqueBehavior::addBody(QString body)
+void QUmlOpaqueBehavior::addLanguage(QString language)
{
- UmlOpaqueBehavior::addBody(body);
-}
+ // This is a read-write property
-void QUmlOpaqueBehavior::removeBody(QString body)
-{
- UmlOpaqueBehavior::removeBody(body);
+ if (!_language.contains(language)) {
+ _language.append(language);
+ }
}
-void QUmlOpaqueBehavior::addLanguage(QString language)
+void QUmlOpaqueBehavior::removeLanguage(QString language)
{
- UmlOpaqueBehavior::addLanguage(language);
-}
+ // This is a read-write property
-void QUmlOpaqueBehavior::removeLanguage(QString language)
-{
- UmlOpaqueBehavior::removeLanguage(language);
+ if (_language.contains(language)) {
+ _language.removeAll(language);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlopaquebehavior.h b/src/uml/qumlopaquebehavior.h
index a0cbcf20..58e051df 100644
--- a/src/uml/qumlopaquebehavior.h
+++ b/src/uml/qumlopaquebehavior.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlopaquebehavior_p.h"
+#include <QtUml/QUmlBehavior>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,385 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlBehavioralFeature;
-class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlOpaqueBehavior : public QObject, public UmlOpaqueBehavior
+class Q_UML_EXPORT QUmlOpaqueBehavior : public QUmlBehavior
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QSet<QUmlBehavior *> redefinedBehavior READ redefinedBehavior)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
- // Properties [OpaqueBehavior]
- Q_PROPERTY(QList<QString> body READ body)
- Q_PROPERTY(QList<QString> language READ language)
-
public:
- Q_INVOKABLE explicit QUmlOpaqueBehavior(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
+ explicit QUmlOpaqueBehavior(bool createQObject = true);
+ virtual ~QUmlOpaqueBehavior();
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> redefinedBehavior() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Owned attributes [OpaqueBehavior]
- Q_INVOKABLE const QList<QString> body() const;
- Q_INVOKABLE const QList<QString> language() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Slots for owned attributes [Behavior]
- void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void addRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void removeRedefinedBehavior(UmlBehavior *redefinedBehavior);
- void setSpecification(QUmlBehavioralFeature *specification);
-
- // Slots for owned attributes [OpaqueBehavior]
+ // Owned attributes
+ const QList<QString> body() const;
void addBody(QString body);
void removeBody(QString body);
+ const QList<QString> language() const;
void addLanguage(QString language);
void removeLanguage(QString language);
+
+protected:
+ QList<QString> _body;
+ QList<QString> _language;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOpaqueBehavior *)
-Q_DECLARE_METATYPE(QList<QUmlOpaqueBehavior *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOpaqueBehavior *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOpaqueBehavior) *)
QT_END_HEADER
diff --git a/src/uml/qumlopaqueexpression.cpp b/src/uml/qumlopaqueexpression.cpp
index 43c2780f..a164ec55 100644
--- a/src/uml/qumlopaqueexpression.cpp
+++ b/src/uml/qumlopaqueexpression.cpp
@@ -40,318 +40,150 @@
****************************************************************************/
#include "qumlopaqueexpression.h"
+#include "private/qumlopaqueexpressionobject_p.h"
+
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlOpaqueExpression
+ \class QUmlOpaqueExpression
\inmodule QtUml
\brief An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.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.
*/
-
-QUmlOpaqueExpression::QUmlOpaqueExpression(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOpaqueExpression::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOpaqueExpression::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlOpaqueExpression::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlOpaqueExpression::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlOpaqueExpression::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlOpaqueExpression::nameExpression() const
+QUmlOpaqueExpression::QUmlOpaqueExpression(bool createQObject) :
+ _behavior(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlOpaqueExpressionObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlOpaqueExpression::namespace_() const
+QUmlOpaqueExpression::~QUmlOpaqueExpression()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlOpaqueExpression::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
+// OWNED ATTRIBUTES
/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlOpaqueExpression::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
+ Specifies the behavior of the opaque expression.
*/
-QUmlTemplateParameter *QUmlOpaqueExpression::owningTemplateParameter() const
+QUmlBehavior *
+QUmlOpaqueExpression::behavior() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
+ // This is a read-write association end
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlOpaqueExpression::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ return _behavior;
}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlOpaqueExpression::visibility() const
+void QUmlOpaqueExpression::setBehavior(QUmlBehavior *behavior)
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [OpaqueExpression]
+ // This is a read-write association end
-/*!
- Specifies the behavior of the opaque expression.
- */
-QUmlBehavior *QUmlOpaqueExpression::behavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_behavior);
+ if (_behavior != behavior) {
+ _behavior = behavior;
+ if (behavior->asQObject() && this->asQObject())
+ QObject::connect(behavior->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setBehavior()));
+ }
}
/*!
The text of the expression, possibly in multiple languages.
*/
-const QList<QString> QUmlOpaqueExpression::body() const
+const QList<QString>
+QUmlOpaqueExpression::body() const
{
- return *(reinterpret_cast<const QList<QString> *>(&_body));
-}
+ // This is a read-write property
-/*!
- 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.
- */
-const QList<QString> QUmlOpaqueExpression::language() const
-{
- return *(reinterpret_cast<const QList<QString> *>(&_language));
+ return _body;
}
-/*!
- 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.
- */
-QUmlParameter *QUmlOpaqueExpression::result() const
+void QUmlOpaqueExpression::addBody(QString body)
{
- return reinterpret_cast<QUmlParameter *>(UmlOpaqueExpression::result());
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOpaqueExpression::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (!_body.contains(body)) {
+ _body.append(body);
+ }
}
-/*!
- 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.
- */
-bool QUmlOpaqueExpression::mustBeOwned() const
+void QUmlOpaqueExpression::removeBody(QString body)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write property
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlOpaqueExpression::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (_body.contains(body)) {
+ _body.removeAll(body);
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ 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.
*/
-QSet<QUmlPackage *> QUmlOpaqueExpression::allOwningPackages() const
+const QList<QString>
+QUmlOpaqueExpression::language() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlOpaqueExpression::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _language;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlOpaqueExpression::separator() const
+void QUmlOpaqueExpression::addLanguage(QString language)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write property
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlOpaqueExpression::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ if (!_language.contains(language)) {
+ _language.append(language);
+ }
}
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlOpaqueExpression::booleanValue() const
+void QUmlOpaqueExpression::removeLanguage(QString language)
{
- return UmlValueSpecification::booleanValue();
-}
+ // This is a read-write property
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlOpaqueExpression::integerValue() const
-{
- return UmlValueSpecification::integerValue();
+ if (_language.contains(language)) {
+ _language.removeAll(language);
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlOpaqueExpression::isCompatibleWith(QUmlParameterableElement *p) const
+QUmlParameter *
+QUmlOpaqueExpression::result() const
{
- return UmlValueSpecification::isCompatibleWith(p);
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlOpaqueExpression::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
+ qWarning("UmlOpaqueExpression::result(): to be implemented (this is a derived association end)");
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlOpaqueExpression::isNull() const
-{
- return UmlValueSpecification::isNull();
+ return 0;
}
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlOpaqueExpression::realValue() const
+void QUmlOpaqueExpression::setResult(QUmlParameter *result)
{
- return UmlValueSpecification::realValue();
-}
+ // This is a read-only derived association end
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlOpaqueExpression::stringValue() const
-{
- return UmlValueSpecification::stringValue();
-}
+ qWarning("UmlOpaqueExpression::result(): to be implemented (this is a derived association end)");
+ Q_UNUSED(result);
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlOpaqueExpression::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OPERATIONS [OpaqueExpression]
+// OPERATIONS
/*!
The query isIntegral() tells whether an expression is intended to produce an integer.
*/
bool QUmlOpaqueExpression::isIntegral() const
{
- return UmlOpaqueExpression::isIntegral();
+ qWarning("UmlOpaqueExpression::isIntegral(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -359,7 +191,9 @@ bool QUmlOpaqueExpression::isIntegral() const
*/
bool QUmlOpaqueExpression::isNonNegative() const
{
- return UmlOpaqueExpression::isNonNegative();
+ qWarning("UmlOpaqueExpression::isNonNegative(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -367,7 +201,9 @@ bool QUmlOpaqueExpression::isNonNegative() const
*/
bool QUmlOpaqueExpression::isPositive() const
{
- return UmlOpaqueExpression::isPositive();
+ qWarning("UmlOpaqueExpression::isPositive(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -375,94 +211,8 @@ bool QUmlOpaqueExpression::isPositive() const
*/
int QUmlOpaqueExpression::value() const
{
- return UmlOpaqueExpression::value();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ qWarning("UmlOpaqueExpression::value(): to be implemented (operation)");
-void QUmlOpaqueExpression::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return int ();
}
-void QUmlOpaqueExpression::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlOpaqueExpression::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlOpaqueExpression::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlOpaqueExpression::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlOpaqueExpression::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlOpaqueExpression::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlOpaqueExpression::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlOpaqueExpression::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlOpaqueExpression::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OpaqueExpression]
-
-void QUmlOpaqueExpression::setBehavior(QUmlBehavior *behavior)
-{
- UmlOpaqueExpression::setBehavior(behavior);
-}
-
-void QUmlOpaqueExpression::addBody(QString body)
-{
- UmlOpaqueExpression::addBody(body);
-}
-
-void QUmlOpaqueExpression::removeBody(QString body)
-{
- UmlOpaqueExpression::removeBody(body);
-}
-
-void QUmlOpaqueExpression::addLanguage(QString language)
-{
- UmlOpaqueExpression::addLanguage(language);
-}
-
-void QUmlOpaqueExpression::removeLanguage(QString language)
-{
- UmlOpaqueExpression::removeLanguage(language);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlopaqueexpression.h b/src/uml/qumlopaqueexpression.h
index c87385df..59a9103a 100644
--- a/src/uml/qumlopaqueexpression.h
+++ b/src/uml/qumlopaqueexpression.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlopaqueexpression_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,145 +53,41 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlBehavior;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class Q_UML_EXPORT QUmlOpaqueExpression : public QObject, public UmlOpaqueExpression
+class Q_UML_EXPORT QUmlOpaqueExpression : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [OpaqueExpression]
- Q_PROPERTY(QUmlBehavior * behavior READ behavior)
- Q_PROPERTY(QList<QString> body READ body)
- Q_PROPERTY(QList<QString> language READ language)
- Q_PROPERTY(QUmlParameter * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlOpaqueExpression(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [OpaqueExpression]
- Q_INVOKABLE QUmlBehavior *behavior() const;
- Q_INVOKABLE const QList<QString> body() const;
- Q_INVOKABLE const QList<QString> language() const;
- Q_INVOKABLE QUmlParameter *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [OpaqueExpression]
- Q_INVOKABLE bool isIntegral() const;
- Q_INVOKABLE bool isNonNegative() const;
- Q_INVOKABLE bool isPositive() const;
- Q_INVOKABLE int value() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [OpaqueExpression]
+ explicit QUmlOpaqueExpression(bool createQObject = true);
+ virtual ~QUmlOpaqueExpression();
+
+ // Owned attributes
+ QUmlBehavior *behavior() const;
void setBehavior(QUmlBehavior *behavior);
+ const QList<QString> body() const;
void addBody(QString body);
void removeBody(QString body);
+ const QList<QString> language() const;
void addLanguage(QString language);
void removeLanguage(QString language);
+ QUmlParameter *result() const;
+ Q_DECL_HIDDEN void setResult(QUmlParameter *result);
+
+ // Operations
+ bool isIntegral() const;
+ bool isNonNegative() const;
+ bool isPositive() const;
+ int value() const;
+
+protected:
+ QUmlBehavior *_behavior;
+ QList<QString> _body;
+ QList<QString> _language;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOpaqueExpression *)
-Q_DECLARE_METATYPE(QList<QUmlOpaqueExpression *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOpaqueExpression *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOpaqueExpression) *)
QT_END_HEADER
diff --git a/src/uml/qumloperation.cpp b/src/uml/qumloperation.cpp
index 497d4d0a..1950a0c0 100644
--- a/src/uml/qumloperation.cpp
+++ b/src/uml/qumloperation.cpp
@@ -40,803 +40,561 @@
****************************************************************************/
#include "qumloperation.h"
-#include <QtUml/QUmlBehavior>
+#include "private/qumloperationobject_p.h"
+
#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConstraint>
#include <QtUml/QUmlDataType>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
#include <QtUml/QUmlInterface>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOperationTemplateParameter>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
#include <QtUml/QUmlType>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlOperation
+ \class QUmlOperation
\inmodule QtUml
\brief An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.An operation may invoke both the execution of method behaviors as well as other behavioral responses.Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.
*/
-
-QUmlOperation::QUmlOperation(QObject *parent) :
- QObject(parent)
+QUmlOperation::QUmlOperation(bool createQObject) :
+ _bodyCondition(0),
+ _class_(0),
+ _datatype(0),
+ _interface_(0),
+ _isQuery(false),
+ _templateParameter(0)
{
+ if (createQObject)
+ _qObject = new QUmlOperationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOperation::ownedComment() const
+QUmlOperation::~QUmlOperation()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOperation::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ An optional Constraint on the result values of an invocation of this Operation.
*/
-QUmlElement *QUmlOperation::owner() const
+QUmlConstraint *
+QUmlOperation::bodyCondition() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
+ // This is a read-write association end
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlTemplateSignature *QUmlOperation::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_ownedTemplateSignature);
+ return _bodyCondition;
}
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlOperation::templateBinding() const
+void QUmlOperation::setBodyCondition(QUmlConstraint *bodyCondition)
{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (_bodyCondition != bodyCondition) {
+ // Adjust subsetted properties
+ removeOwnedRule(_bodyCondition);
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlOperation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ _bodyCondition = bodyCondition;
+ if (bodyCondition->asQObject() && this->asQObject())
+ QObject::connect(bodyCondition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setBodyCondition()));
+ bodyCondition->asQObject()->setParent(this->asQObject());
-/*!
- The name of the NamedElement.
- */
-QString QUmlOperation::name() const
-{
- return _name;
+ // Adjust subsetted properties
+ if (bodyCondition) {
+ addOwnedRule(bodyCondition);
+ }
+ }
}
/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlOperation::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
+ The class that owns the operation.
*/
-QUmlNamespace *QUmlOperation::namespace_() const
+QUmlClass *
+QUmlOperation::class_() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlOperation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _class_;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlOperation::visibility() const
+void QUmlOperation::setClass(QUmlClass *class_)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Namespace]
+ if (_class_ != class_) {
+ // Adjust subsetted properties
+ removeFeaturingClassifier(_class_);
+ removeRedefinitionContext(_class_);
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlOperation::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
+ _class_ = class_;
+ if (class_->asQObject() && this->asQObject())
+ QObject::connect(class_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClass()));
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlOperation::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ if (class_) {
+ addFeaturingClassifier(class_);
+ }
+ if (class_) {
+ addRedefinitionContext(class_);
+ }
+ setNamespace(class_);
+ }
}
/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
+ The DataType that owns this Operation.
*/
-const QSet<QUmlNamedElement *> QUmlOperation::member() const
+QUmlDataType *
+QUmlOperation::datatype() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
+ // This is a read-write association end
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlOperation::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ return _datatype;
}
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlOperation::ownedRule() const
+void QUmlOperation::setDatatype(QUmlDataType *datatype)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
+ // This is a read-write association end
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlOperation::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ if (_datatype != datatype) {
+ // Adjust subsetted properties
+ removeFeaturingClassifier(_datatype);
+ removeRedefinitionContext(_datatype);
-// OWNED ATTRIBUTES [RedefinableElement]
+ _datatype = datatype;
+ if (datatype->asQObject() && this->asQObject())
+ QObject::connect(datatype->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDatatype()));
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlOperation::isLeaf() const
-{
- return _isLeaf;
+ // Adjust subsetted properties
+ if (datatype) {
+ addFeaturingClassifier(datatype);
+ }
+ if (datatype) {
+ addRedefinitionContext(datatype);
+ }
+ setNamespace(datatype);
+ }
}
/*!
- The redefinable element that is being redefined by this element.
+ The Interface that owns this Operation.
*/
-const QSet<QUmlRedefinableElement *> QUmlOperation::redefinedElement() const
+QUmlInterface *
+QUmlOperation::interface_() const
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
+ // This is a read-write association end
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlOperation::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ return _interface_;
}
-// OWNED ATTRIBUTES [Feature]
-
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlOperation::featuringClassifier() const
+void QUmlOperation::setInterface(QUmlInterface *interface_)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
+ // This is a read-write association end
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlOperation::isStatic() const
-{
- return _isStatic;
-}
+ if (_interface_ != interface_) {
+ // Adjust subsetted properties
+ removeFeaturingClassifier(_interface_);
+ removeRedefinitionContext(_interface_);
-// OWNED ATTRIBUTES [BehavioralFeature]
+ _interface_ = interface_;
+ if (interface_->asQObject() && this->asQObject())
+ QObject::connect(interface_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInterface()));
-/*!
- 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.
- */
-QtUml::CallConcurrencyKind QUmlOperation::concurrency() const
-{
- return _concurrency;
+ // Adjust subsetted properties
+ if (interface_) {
+ addFeaturingClassifier(interface_);
+ }
+ if (interface_) {
+ addRedefinitionContext(interface_);
+ }
+ setNamespace(interface_);
+ }
}
/*!
- 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.
+ This information is derived from the return result for this Operation.Specifies whether the return parameter is ordered or not, if present.
*/
-bool QUmlOperation::isAbstract() const
+bool
+QUmlOperation::isOrdered() const
{
- return _isAbstract;
-}
+ // This is a read-only derived property
-/*!
- 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).
- */
-const QSet<QUmlBehavior *> QUmlOperation::method() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_method));
-}
+ qWarning("UmlOperation::isOrdered(): to be implemented (this is a derived property)");
-/*!
- The ParameterSets owned by this BehavioralFeature.
- */
-const QSet<QUmlParameterSet *> QUmlOperation::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
+ return bool();
}
-// OWNED ATTRIBUTES [ParameterableElement]
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlOperation::owningTemplateParameter() const
+void QUmlOperation::setOrdered(bool isOrdered)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [Operation]
+ // This is a read-only derived property
-/*!
- An optional Constraint on the result values of an invocation of this Operation.
- */
-QUmlConstraint *QUmlOperation::bodyCondition() const
-{
- return reinterpret_cast<QUmlConstraint *>(_bodyCondition);
-}
+ qWarning("UmlOperation::isOrdered(): to be implemented (this is a derived property)");
+ Q_UNUSED(isOrdered);
-/*!
- The class that owns the operation.
- */
-QUmlClass *QUmlOperation::class_() const
-{
- return reinterpret_cast<QUmlClass *>(_class_);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The DataType that owns this Operation.
+ Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false).
*/
-QUmlDataType *QUmlOperation::datatype() const
+bool
+QUmlOperation::isQuery() const
{
- return reinterpret_cast<QUmlDataType *>(_datatype);
-}
+ // This is a read-write property
-/*!
- The Interface that owns this Operation.
- */
-QUmlInterface *QUmlOperation::interface_() const
-{
- return reinterpret_cast<QUmlInterface *>(_interface_);
+ return _isQuery;
}
-/*!
- This information is derived from the return result for this Operation.Specifies whether the return parameter is ordered or not, if present.
- */
-bool QUmlOperation::isOrdered() const
+void QUmlOperation::setQuery(bool isQuery)
{
- return UmlOperation::isOrdered();
-}
+ // This is a read-write property
-/*!
- Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false).
- */
-bool QUmlOperation::isQuery() const
-{
- return _isQuery;
+ if (_isQuery != isQuery) {
+ _isQuery = isQuery;
+ }
}
/*!
Specifies whether the return parameter is unique or not, if present.This information is derived from the return result for this Operation.
*/
-bool QUmlOperation::isUnique() const
+bool
+QUmlOperation::isUnique() const
{
- return UmlOperation::isUnique();
-}
+ // This is a read-only derived property
-/*!
- This information is derived from the return result for this Operation.Specifies the lower multiplicity of the return parameter, if present.
- */
-int QUmlOperation::lower() const
-{
- return UmlOperation::lower();
-}
+ qWarning("UmlOperation::isUnique(): to be implemented (this is a derived property)");
-/*!
- Specifies the ordered set of formal parameters of this BehavioralFeature.Specifies the parameters owned by this Operation.
- */
-const QList<QUmlParameter *> QUmlOperation::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
+ return bool();
}
-/*!
- An optional set of Constraints specifying the state of the system when the Operation is completed.
- */
-const QSet<QUmlConstraint *> QUmlOperation::postcondition() const
+void QUmlOperation::setUnique(bool isUnique)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
+ // This is a read-only derived property
-/*!
- An optional set of Constraints on the state of the system when the Operation is invoked.
- */
-const QSet<QUmlConstraint *> QUmlOperation::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
+ qWarning("UmlOperation::isUnique(): to be implemented (this is a derived property)");
+ Q_UNUSED(isUnique);
-/*!
- References the Types representing exceptions that may be raised during an invocation of this operation.
- */
-const QSet<QUmlType *> QUmlOperation::raisedException() const
-{
- return *(reinterpret_cast<const QSet<QUmlType *> *>(&_raisedException));
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- References the Operations that are redefined by this Operation.
+ This information is derived from the return result for this Operation.Specifies the lower multiplicity of the return parameter, if present.
*/
-const QSet<QUmlOperation *> QUmlOperation::redefinedOperation() const
+int
+QUmlOperation::lower() const
{
- return *(reinterpret_cast<const QSet<QUmlOperation *> *>(&_redefinedOperation));
-}
+ // This is a read-only derived property
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlOperationTemplateParameter *QUmlOperation::templateParameter() const
-{
- return reinterpret_cast<QUmlOperationTemplateParameter *>(_templateParameter);
-}
+ qWarning("UmlOperation::lower(): to be implemented (this is a derived property)");
-/*!
- This information is derived from the return result for this Operation.Specifies the return result of the operation, if present.
- */
-QUmlType *QUmlOperation::type() const
-{
- return reinterpret_cast<QUmlType *>(UmlOperation::type());
+ return int();
}
-/*!
- This information is derived from the return result for this Operation.Specifies the upper multiplicity of the return parameter, if present.
- */
-int QUmlOperation::upper() const
+void QUmlOperation::setLower(int lower)
{
- return UmlOperation::upper();
-}
+ // This is a read-only derived property
-// OPERATIONS [Element]
+ qWarning("UmlOperation::lower(): to be implemented (this is a derived property)");
+ Q_UNUSED(lower);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOperation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.
+ Specifies the ordered set of formal parameters of this BehavioralFeature.Specifies the parameters owned by this Operation.
*/
-bool QUmlOperation::mustBeOwned() const
+const QList<QUmlParameter *>
+QUmlOperation::ownedParameter() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [TemplateableElement]
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlOperation::isTemplate() const
-{
- return UmlTemplateableElement::isTemplate();
+ return _ownedParameter;
}
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlOperation::parameterableElements() const
+void QUmlOperation::addOwnedParameter(QUmlParameter *ownedParameter)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.append(ownedParameter);
+ if (ownedParameter->asQObject() && this->asQObject())
+ QObject::connect(ownedParameter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedParameter(QObject *)));
+ ownedParameter->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlOperation::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlOperation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedParameter) {
+ ownedParameter->setOperation(this);
+ }
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlOperation::separator() const
+void QUmlOperation::removeOwnedParameter(QUmlParameter *ownedParameter)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
+ if (_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.removeAll(ownedParameter);
+ if (ownedParameter->asQObject())
+ ownedParameter->asQObject()->setParent(0);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlOperation::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedParameter) {
+ ownedParameter->setOperation(0);
+ }
+ }
}
/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlOperation::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlOperation::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ An optional set of Constraints specifying the state of the system when the Operation is completed.
*/
-bool QUmlOperation::membersAreDistinguishable() const
+const QSet<QUmlConstraint *>
+QUmlOperation::postcondition() const
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlOperation::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ return _postcondition;
}
-// OPERATIONS [BehavioralFeature]
-
-/*!
- The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.
- */
-bool QUmlOperation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlOperation::addPostcondition(QUmlConstraint *postcondition)
{
- return UmlBehavioralFeature::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_postcondition.contains(postcondition)) {
+ _postcondition.insert(postcondition);
+ if (postcondition->asQObject() && this->asQObject())
+ QObject::connect(postcondition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePostcondition(QObject *)));
+ postcondition->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlOperation::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust subsetted properties
+ addOwnedRule(postcondition);
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlOperation::isTemplateParameter() const
+void QUmlOperation::removePostcondition(QUmlConstraint *postcondition)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Operation]
+ if (_postcondition.contains(postcondition)) {
+ _postcondition.remove(postcondition);
+ if (postcondition->asQObject())
+ postcondition->asQObject()->setParent(0);
-/*!
- 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.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()'.
- */
-bool QUmlOperation::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlOperation::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeOwnedRule(postcondition);
+ }
}
/*!
- The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set
+ An optional set of Constraints on the state of the system when the Operation is invoked.
*/
-QSet<QUmlParameter *> QUmlOperation::returnResult() const
+const QSet<QUmlConstraint *>
+QUmlOperation::precondition() const
{
- QSet<QUmlParameter *> r;
- foreach (UmlParameter *element, UmlOperation::returnResult())
- r.insert(reinterpret_cast<QUmlParameter *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlOperation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _precondition;
}
-void QUmlOperation::removeOwnedComment(UmlComment *ownedComment)
+void QUmlOperation::addPrecondition(QUmlConstraint *precondition)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+ if (!_precondition.contains(precondition)) {
+ _precondition.insert(precondition);
+ if (precondition->asQObject() && this->asQObject())
+ QObject::connect(precondition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePrecondition(QObject *)));
+ precondition->asQObject()->setParent(this->asQObject());
-void QUmlOperation::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
-{
- UmlTemplateableElement::setOwnedTemplateSignature(ownedTemplateSignature);
+ // Adjust subsetted properties
+ addOwnedRule(precondition);
+ }
}
-void QUmlOperation::addTemplateBinding(UmlTemplateBinding *templateBinding)
+void QUmlOperation::removePrecondition(QUmlConstraint *precondition)
{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
+ // This is a read-write association end
-void QUmlOperation::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (_precondition.contains(precondition)) {
+ _precondition.remove(precondition);
+ if (precondition->asQObject())
+ precondition->asQObject()->setParent(0);
-void QUmlOperation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust subsetted properties
+ removeOwnedRule(precondition);
+ }
}
-void QUmlOperation::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlOperation::setName(QString name)
+/*!
+ References the Types representing exceptions that may be raised during an invocation of this operation.
+ */
+const QSet<QUmlType *>
+QUmlOperation::raisedException() const
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlOperation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _raisedException;
}
-void QUmlOperation::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlOperation::addRaisedException(QUmlType *raisedException)
{
- UmlNamedElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlOperation::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
+ if (!_raisedException.contains(raisedException)) {
+ _raisedException.insert(raisedException);
+ if (raisedException->asQObject() && this->asQObject())
+ QObject::connect(raisedException->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRaisedException(QObject *)));
+ }
}
-void QUmlOperation::removeElementImport(UmlElementImport *elementImport)
+void QUmlOperation::removeRaisedException(QUmlType *raisedException)
{
- UmlNamespace::removeElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlOperation::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
+ if (_raisedException.contains(raisedException)) {
+ _raisedException.remove(raisedException);
+ }
}
-void QUmlOperation::removeOwnedRule(UmlConstraint *ownedRule)
+/*!
+ References the Operations that are redefined by this Operation.
+ */
+const QSet<QUmlOperation *>
+QUmlOperation::redefinedOperation() const
{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // This is a read-write association end
-void QUmlOperation::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
+ return _redefinedOperation;
}
-void QUmlOperation::removePackageImport(UmlPackageImport *packageImport)
+void QUmlOperation::addRedefinedOperation(QUmlOperation *redefinedOperation)
{
- UmlNamespace::removePackageImport(packageImport);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+ if (!_redefinedOperation.contains(redefinedOperation)) {
+ _redefinedOperation.insert(redefinedOperation);
+ if (redefinedOperation->asQObject() && this->asQObject())
+ QObject::connect(redefinedOperation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedOperation(QObject *)));
-void QUmlOperation::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ // Adjust subsetted properties
+ addRedefinedElement(redefinedOperation);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlOperation::setStatic(bool isStatic)
+void QUmlOperation::removeRedefinedOperation(QUmlOperation *redefinedOperation)
{
- UmlFeature::setStatic(isStatic);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [BehavioralFeature]
+ if (_redefinedOperation.contains(redefinedOperation)) {
+ _redefinedOperation.remove(redefinedOperation);
-void QUmlOperation::setConcurrency(QtUml::CallConcurrencyKind concurrency)
-{
- UmlBehavioralFeature::setConcurrency(concurrency);
+ // Adjust subsetted properties
+ removeRedefinedElement(redefinedOperation);
+ }
}
-void QUmlOperation::setAbstract(bool isAbstract)
+/*!
+ The template parameter that exposes this element as a formal parameter.
+ */
+QUmlOperationTemplateParameter *
+QUmlOperation::templateParameter() const
{
- UmlBehavioralFeature::setAbstract(isAbstract);
-}
+ // This is a read-write association end
-void QUmlOperation::addMethod(UmlBehavior *method)
-{
- UmlBehavioralFeature::addMethod(method);
+ return _templateParameter;
}
-void QUmlOperation::removeMethod(UmlBehavior *method)
-{
- UmlBehavioralFeature::removeMethod(method);
-}
-
-void QUmlOperation::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
+void QUmlOperation::setTemplateParameter(QUmlOperationTemplateParameter *templateParameter)
{
- UmlBehavioralFeature::addOwnedParameterSet(ownedParameterSet);
-}
+ // This is a read-write association end
-void QUmlOperation::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavioralFeature::removeOwnedParameterSet(ownedParameterSet);
+ if (_templateParameter != templateParameter) {
+ _templateParameter = templateParameter;
+ if (templateParameter->asQObject() && this->asQObject())
+ QObject::connect(templateParameter->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTemplateParameter()));
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-void QUmlOperation::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+/*!
+ This information is derived from the return result for this Operation.Specifies the return result of the operation, if present.
+ */
+QUmlType *
+QUmlOperation::type() const
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Operation]
+ // This is a read-only derived association end
-void QUmlOperation::setBodyCondition(QUmlConstraint *bodyCondition)
-{
- UmlOperation::setBodyCondition(bodyCondition);
-}
+ qWarning("UmlOperation::type(): to be implemented (this is a derived association end)");
-void QUmlOperation::setClass(QUmlClass *class_)
-{
- UmlOperation::setClass(class_);
+ return 0;
}
-void QUmlOperation::setDatatype(QUmlDataType *datatype)
+void QUmlOperation::setType(QUmlType *type)
{
- UmlOperation::setDatatype(datatype);
-}
+ // This is a read-only derived association end
-void QUmlOperation::setInterface(QUmlInterface *interface_)
-{
- UmlOperation::setInterface(interface_);
-}
+ qWarning("UmlOperation::type(): to be implemented (this is a derived association end)");
+ Q_UNUSED(type);
-void QUmlOperation::setQuery(bool isQuery)
-{
- UmlOperation::setQuery(isQuery);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlOperation::addOwnedParameter(UmlParameter *ownedParameter)
+/*!
+ This information is derived from the return result for this Operation.Specifies the upper multiplicity of the return parameter, if present.
+ */
+int
+QUmlOperation::upper() const
{
- UmlOperation::addOwnedParameter(ownedParameter);
-}
+ // This is a read-only derived property
-void QUmlOperation::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlOperation::removeOwnedParameter(ownedParameter);
-}
+ qWarning("UmlOperation::upper(): to be implemented (this is a derived property)");
-void QUmlOperation::addPostcondition(UmlConstraint *postcondition)
-{
- UmlOperation::addPostcondition(postcondition);
+ return int();
}
-void QUmlOperation::removePostcondition(UmlConstraint *postcondition)
+void QUmlOperation::setUpper(int upper)
{
- UmlOperation::removePostcondition(postcondition);
-}
+ // This is a read-only derived property
-void QUmlOperation::addPrecondition(UmlConstraint *precondition)
-{
- UmlOperation::addPrecondition(precondition);
-}
+ qWarning("UmlOperation::upper(): to be implemented (this is a derived property)");
+ Q_UNUSED(upper);
-void QUmlOperation::removePrecondition(UmlConstraint *precondition)
-{
- UmlOperation::removePrecondition(precondition);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlOperation::addRaisedException(UmlType *raisedException)
-{
- UmlOperation::addRaisedException(raisedException);
-}
+// OPERATIONS
-void QUmlOperation::removeRaisedException(UmlType *raisedException)
+/*!
+ 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.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()'.
+ */
+bool QUmlOperation::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- UmlOperation::removeRaisedException(raisedException);
-}
+ qWarning("UmlOperation::isConsistentWith(): to be implemented (operation)");
-void QUmlOperation::addRedefinedOperation(UmlOperation *redefinedOperation)
-{
- UmlOperation::addRedefinedOperation(redefinedOperation);
+ Q_UNUSED(redefinee);
+ return bool ();
}
-void QUmlOperation::removeRedefinedOperation(UmlOperation *redefinedOperation)
+/*!
+ The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set
+ */
+QSet<QUmlParameter *> QUmlOperation::returnResult() const
{
- UmlOperation::removeRedefinedOperation(redefinedOperation);
-}
+ qWarning("UmlOperation::returnResult(): to be implemented (operation)");
-void QUmlOperation::setTemplateParameter(QUmlOperationTemplateParameter *templateParameter)
-{
- UmlOperation::setTemplateParameter(templateParameter);
+ return QSet<QUmlParameter *> ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumloperation.h b/src/uml/qumloperation.h
index 666eb3b4..02e759c5 100644
--- a/src/uml/qumloperation.h
+++ b/src/uml/qumloperation.h
@@ -43,10 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umloperation_p.h"
+#include <QtUml/QUmlTemplateableElement>
+#include <QtUml/QUmlBehavioralFeature>
+#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,261 +54,81 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
class QUmlClass;
-class QUmlClassifier;
-class QUmlComment;
class QUmlConstraint;
class QUmlDataType;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlInterface;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperationTemplateParameter;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
class QUmlType;
-class Q_UML_EXPORT QUmlOperation : public QObject, public UmlOperation
+class Q_UML_EXPORT QUmlOperation : public QUmlTemplateableElement, public QUmlBehavioralFeature, public QUmlParameterableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QUmlTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [BehavioralFeature]
- Q_PROPERTY(QtUml::CallConcurrencyKind concurrency READ concurrency)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(QSet<QUmlBehavior *> method READ method)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [Operation]
- Q_PROPERTY(QUmlConstraint * bodyCondition READ bodyCondition)
- Q_PROPERTY(QUmlClass * class_ READ class_)
- Q_PROPERTY(QUmlDataType * datatype READ datatype)
- Q_PROPERTY(QUmlInterface * interface_ READ interface_)
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isQuery READ isQuery)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QSet<QUmlType *> raisedException READ raisedException)
- Q_PROPERTY(QSet<QUmlOperation *> redefinedOperation READ redefinedOperation)
- Q_PROPERTY(QUmlOperationTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QUmlType * type READ type)
- Q_PROPERTY(int upper READ upper)
-
public:
- Q_INVOKABLE explicit QUmlOperation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE QUmlTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [BehavioralFeature]
- Q_INVOKABLE QtUml::CallConcurrencyKind concurrency() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> method() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [Operation]
- Q_INVOKABLE QUmlConstraint *bodyCondition() const;
- Q_INVOKABLE QUmlClass *class_() const;
- Q_INVOKABLE QUmlDataType *datatype() const;
- Q_INVOKABLE QUmlInterface *interface_() const;
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isQuery() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE const QSet<QUmlType *> raisedException() const;
- Q_INVOKABLE const QSet<QUmlOperation *> redefinedOperation() const;
- Q_INVOKABLE QUmlOperationTemplateParameter *templateParameter() const;
- Q_INVOKABLE QUmlType *type() const;
- Q_INVOKABLE int upper() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [BehavioralFeature]
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Operation]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE QSet<QUmlParameter *> returnResult() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateableElement]
- void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [BehavioralFeature]
- void setConcurrency(QtUml::CallConcurrencyKind concurrency);
- void setAbstract(bool isAbstract);
- void addMethod(UmlBehavior *method);
- void removeMethod(UmlBehavior *method);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
+ explicit QUmlOperation(bool createQObject = true);
+ virtual ~QUmlOperation();
- // Slots for owned attributes [Operation]
+ // Owned attributes
+ QUmlConstraint *bodyCondition() const;
void setBodyCondition(QUmlConstraint *bodyCondition);
+ QUmlClass *class_() const;
void setClass(QUmlClass *class_);
+ QUmlDataType *datatype() const;
void setDatatype(QUmlDataType *datatype);
+ QUmlInterface *interface_() const;
void setInterface(QUmlInterface *interface_);
+ bool isOrdered() const;
+ Q_DECL_HIDDEN void setOrdered(bool isOrdered);
+ bool isQuery() const;
void setQuery(bool isQuery);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void addRaisedException(UmlType *raisedException);
- void removeRaisedException(UmlType *raisedException);
- void addRedefinedOperation(UmlOperation *redefinedOperation);
- void removeRedefinedOperation(UmlOperation *redefinedOperation);
+ bool isUnique() const;
+ Q_DECL_HIDDEN void setUnique(bool isUnique);
+ int lower() const;
+ Q_DECL_HIDDEN void setLower(int lower);
+ const QList<QUmlParameter *> ownedParameter() const;
+ void addOwnedParameter(QUmlParameter *ownedParameter);
+ void removeOwnedParameter(QUmlParameter *ownedParameter);
+ const QSet<QUmlConstraint *> postcondition() const;
+ void addPostcondition(QUmlConstraint *postcondition);
+ void removePostcondition(QUmlConstraint *postcondition);
+ const QSet<QUmlConstraint *> precondition() const;
+ void addPrecondition(QUmlConstraint *precondition);
+ void removePrecondition(QUmlConstraint *precondition);
+ const QSet<QUmlType *> raisedException() const;
+ void addRaisedException(QUmlType *raisedException);
+ void removeRaisedException(QUmlType *raisedException);
+ const QSet<QUmlOperation *> redefinedOperation() const;
+ void addRedefinedOperation(QUmlOperation *redefinedOperation);
+ void removeRedefinedOperation(QUmlOperation *redefinedOperation);
+ QUmlOperationTemplateParameter *templateParameter() const;
void setTemplateParameter(QUmlOperationTemplateParameter *templateParameter);
+ QUmlType *type() const;
+ Q_DECL_HIDDEN void setType(QUmlType *type);
+ int upper() const;
+ Q_DECL_HIDDEN void setUpper(int upper);
+
+ // Operations
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+ QSet<QUmlParameter *> returnResult() const;
+
+protected:
+ QUmlConstraint *_bodyCondition;
+ QUmlClass *_class_;
+ QUmlDataType *_datatype;
+ QUmlInterface *_interface_;
+ bool _isQuery;
+ QList<QUmlParameter *> _ownedParameter;
+ QSet<QUmlConstraint *> _postcondition;
+ QSet<QUmlConstraint *> _precondition;
+ QSet<QUmlType *> _raisedException;
+ QSet<QUmlOperation *> _redefinedOperation;
+ QUmlOperationTemplateParameter *_templateParameter;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOperation *)
-Q_DECLARE_METATYPE(QList<QUmlOperation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOperation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOperation) *)
QT_END_HEADER
diff --git a/src/uml/qumloperationtemplateparameter.cpp b/src/uml/qumloperationtemplateparameter.cpp
index 60737ddc..6697d581 100644
--- a/src/uml/qumloperationtemplateparameter.cpp
+++ b/src/uml/qumloperationtemplateparameter.cpp
@@ -40,158 +40,54 @@
****************************************************************************/
#include "qumloperationtemplateparameter.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlTemplateSignature>
+#include "private/qumloperationtemplateparameterobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOperation>
/*!
- \class UmlOperationTemplateParameter
+ \class QUmlOperationTemplateParameter
\inmodule QtUml
\brief An operation template parameter exposes an operation as a formal parameter for a template.
*/
-
-QUmlOperationTemplateParameter::QUmlOperationTemplateParameter(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOperationTemplateParameter::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOperationTemplateParameter::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlOperationTemplateParameter::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [TemplateParameter]
-
-/*!
- The element that is the default for this formal template parameter.
- */
-QUmlParameterableElement *QUmlOperationTemplateParameter::default_() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_default_);
-}
-
-/*!
- The element that is owned by this template parameter for the purpose of providing a default.
- */
-QUmlParameterableElement *QUmlOperationTemplateParameter::ownedDefault() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedDefault);
-}
-
-/*!
- The element that is owned by this template parameter.
- */
-QUmlParameterableElement *QUmlOperationTemplateParameter::ownedParameteredElement() const
+QUmlOperationTemplateParameter::QUmlOperationTemplateParameter(bool createQObject) :
+ QUmlTemplateParameter(false),
+ _parameteredElement(0)
{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedParameteredElement);
+ if (createQObject)
+ _qObject = new QUmlOperationTemplateParameterObject(this);
}
-/*!
- The template signature that owns this template parameter.
- */
-QUmlTemplateSignature *QUmlOperationTemplateParameter::signature() const
+QUmlOperationTemplateParameter::~QUmlOperationTemplateParameter()
{
- return reinterpret_cast<QUmlTemplateSignature *>(_signature);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [OperationTemplateParameter]
+// OWNED ATTRIBUTES
/*!
The operation for this template parameter.
*/
-QUmlOperation *QUmlOperationTemplateParameter::parameteredElement() const
-{
- return reinterpret_cast<QUmlOperation *>(_parameteredElement);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOperationTemplateParameter::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOperationTemplateParameter::mustBeOwned() const
+QUmlOperation *
+QUmlOperationTemplateParameter::parameteredElement() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlOperationTemplateParameter::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _parameteredElement;
}
-void QUmlOperationTemplateParameter::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
-
-void QUmlOperationTemplateParameter::setDefault(QUmlParameterableElement *default_)
-{
- UmlTemplateParameter::setDefault(default_);
-}
-
-void QUmlOperationTemplateParameter::setOwnedDefault(QUmlParameterableElement *ownedDefault)
-{
- UmlTemplateParameter::setOwnedDefault(ownedDefault);
-}
-
-void QUmlOperationTemplateParameter::setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement)
-{
- UmlTemplateParameter::setOwnedParameteredElement(ownedParameteredElement);
-}
-
-void QUmlOperationTemplateParameter::setSignature(QUmlTemplateSignature *signature)
-{
- UmlTemplateParameter::setSignature(signature);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [OperationTemplateParameter]
-
void QUmlOperationTemplateParameter::setParameteredElement(QUmlOperation *parameteredElement)
{
- UmlOperationTemplateParameter::setParameteredElement(parameteredElement);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_parameteredElement != parameteredElement) {
+ _parameteredElement = parameteredElement;
+ if (parameteredElement->asQObject() && this->asQObject())
+ QObject::connect(parameteredElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setParameteredElement()));
+ }
+}
diff --git a/src/uml/qumloperationtemplateparameter.h b/src/uml/qumloperationtemplateparameter.h
index 09c1c4b1..6bad8e81 100644
--- a/src/uml/qumloperationtemplateparameter.h
+++ b/src/uml/qumloperationtemplateparameter.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umloperationtemplateparameter_p.h"
+#include <QtUml/QUmlTemplateParameter>
+
QT_BEGIN_HEADER
@@ -52,72 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlOperation;
-class QUmlParameterableElement;
-class QUmlTemplateSignature;
-class Q_UML_EXPORT QUmlOperationTemplateParameter : public QObject, public UmlOperationTemplateParameter
+class Q_UML_EXPORT QUmlOperationTemplateParameter : public QUmlTemplateParameter
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateParameter]
- Q_PROPERTY(QUmlParameterableElement * default_ READ default_)
- Q_PROPERTY(QUmlParameterableElement * ownedDefault READ ownedDefault)
- Q_PROPERTY(QUmlParameterableElement * ownedParameteredElement READ ownedParameteredElement)
- Q_PROPERTY(QUmlTemplateSignature * signature READ signature)
-
- // Properties [OperationTemplateParameter]
- Q_PROPERTY(QUmlOperation * parameteredElement READ parameteredElement)
-
public:
- Q_INVOKABLE explicit QUmlOperationTemplateParameter(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [TemplateParameter]
- Q_INVOKABLE QUmlParameterableElement *default_() const;
- Q_INVOKABLE QUmlParameterableElement *ownedDefault() const;
- Q_INVOKABLE QUmlParameterableElement *ownedParameteredElement() const;
- Q_INVOKABLE QUmlTemplateSignature *signature() const;
+ explicit QUmlOperationTemplateParameter(bool createQObject = true);
+ virtual ~QUmlOperationTemplateParameter();
- // Owned attributes [OperationTemplateParameter]
- Q_INVOKABLE QUmlOperation *parameteredElement() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateParameter]
- void setDefault(QUmlParameterableElement *default_);
- void setOwnedDefault(QUmlParameterableElement *ownedDefault);
- void setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement);
- void setSignature(QUmlTemplateSignature *signature);
-
- // Slots for owned attributes [OperationTemplateParameter]
+ // Owned attributes
+ QUmlOperation *parameteredElement() const;
void setParameteredElement(QUmlOperation *parameteredElement);
+
+protected:
+ QUmlOperation *_parameteredElement;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOperationTemplateParameter *)
-Q_DECLARE_METATYPE(QList<QUmlOperationTemplateParameter *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOperationTemplateParameter *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOperationTemplateParameter) *)
QT_END_HEADER
diff --git a/src/uml/qumloutputpin.cpp b/src/uml/qumloutputpin.cpp
index 57b947dd..78f2a24a 100644
--- a/src/uml/qumloutputpin.cpp
+++ b/src/uml/qumloutputpin.cpp
@@ -40,645 +40,26 @@
****************************************************************************/
#include "qumloutputpin.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumloutputpinobject_p.h"
/*!
- \class UmlOutputPin
+ \class QUmlOutputPin
\inmodule QtUml
\brief An output pin is a pin that holds output values produced by an action.
*/
-
-QUmlOutputPin::QUmlOutputPin(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlOutputPin::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlOutputPin::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlOutputPin::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlOutputPin::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlOutputPin::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlOutputPin::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlOutputPin::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlOutputPin::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlOutputPin::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlOutputPin::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlOutputPin::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlOutputPin::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlOutputPin::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlOutputPin::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlOutputPin::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlOutputPin::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlOutputPin::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlOutputPin::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlOutputPin::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlOutputPin::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlOutputPin::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlOutputPin::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlOutputPin::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlOutputPin::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlOutputPin::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlOutputPin::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlOutputPin::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlOutputPin::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlOutputPin::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlOutputPin::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlOutputPin::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
-
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlOutputPin::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OWNED ATTRIBUTES [Pin]
-
-/*!
- Tells whether the pins provide data to the actions, or just controls when it executes it.
- */
-bool QUmlOutputPin::isControl() const
-{
- return _isControl;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlOutputPin::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOutputPin::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlOutputPin::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlOutputPin::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlOutputPin::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlOutputPin::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlOutputPin::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlOutputPin::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-//int QUmlOutputPin::upperBound() const
-//{
-// return UmlMultiplicityElement::upperBound();
-//}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlOutputPin::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlOutputPin::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlOutputPin::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlOutputPin::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlOutputPin::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlOutputPin::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlOutputPin::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlOutputPin::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlOutputPin::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlOutputPin::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlOutputPin::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlOutputPin::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlOutputPin::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlOutputPin::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlOutputPin::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlOutputPin::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlOutputPin::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlOutputPin::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlOutputPin::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlOutputPin::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlOutputPin::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlOutputPin::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlOutputPin::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlOutputPin::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlOutputPin::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlOutputPin::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlOutputPin::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlOutputPin::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlOutputPin::addOutgoing(UmlActivityEdge *outgoing)
+QUmlOutputPin::QUmlOutputPin(bool createQObject)
{
- UmlActivityNode::addOutgoing(outgoing);
+ if (createQObject)
+ _qObject = new QUmlOutputPinObject(this);
}
-void QUmlOutputPin::removeOutgoing(UmlActivityEdge *outgoing)
+QUmlOutputPin::~QUmlOutputPin()
{
- UmlActivityNode::removeOutgoing(outgoing);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-void QUmlOutputPin::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlOutputPin::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlOutputPin::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlOutputPin::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlOutputPin::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlOutputPin::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlOutputPin::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlOutputPin::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlOutputPin::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Pin]
-
-void QUmlOutputPin::setControl(bool isControl)
-{
- UmlPin::setControl(isControl);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumloutputpin.h b/src/uml/qumloutputpin.h
index 852a90fc..12216a07 100644
--- a/src/uml/qumloutputpin.h
+++ b/src/uml/qumloutputpin.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umloutputpin_p.h"
+#include <QtUml/QUmlPin>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,214 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlOutputPin : public QObject, public UmlOutputPin
+class Q_UML_EXPORT QUmlOutputPin : public QUmlPin
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [Pin]
- Q_PROPERTY(bool isControl READ isControl)
-
public:
- Q_INVOKABLE explicit QUmlOutputPin(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Owned attributes [Pin]
- Q_INVOKABLE bool isControl() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
-// Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
+ explicit QUmlOutputPin(bool createQObject = true);
+ virtual ~QUmlOutputPin();
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
- // Slots for owned attributes [Pin]
- void setControl(bool isControl);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlOutputPin *)
-Q_DECLARE_METATYPE(QList<QUmlOutputPin *> *)
-Q_DECLARE_METATYPE(QSet<QUmlOutputPin *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlOutputPin) *)
QT_END_HEADER
diff --git a/src/uml/qumlpackage.cpp b/src/uml/qumlpackage.cpp
index 73e17558..aeda6032 100644
--- a/src/uml/qumlpackage.cpp
+++ b/src/uml/qumlpackage.cpp
@@ -40,623 +40,410 @@
****************************************************************************/
#include "qumlpackage.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
+#include "private/qumlpackageobject_p.h"
+
#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
#include <QtUml/QUmlPackageMerge>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProfile>
#include <QtUml/QUmlProfileApplication>
#include <QtUml/QUmlStereotype>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
#include <QtUml/QUmlType>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlPackage
+ \class QUmlPackage
\inmodule QtUml
\brief A package can have one or more profile applications 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.Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.A package is used to group elements, and provides a namespace for the grouped elements.
*/
-
-QUmlPackage::QUmlPackage(QObject *parent) :
- QObject(parent)
+QUmlPackage::QUmlPackage(bool createQObject) :
+ _nestingPackage(0)
{
+ if (createQObject)
+ _qObject = new QUmlPackageObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPackage::ownedComment() const
+QUmlPackage::~QUmlPackage()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPackage::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.
*/
-QUmlElement *QUmlPackage::owner() const
+QString
+QUmlPackage::URI() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write property
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPackage::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _URI;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlPackage::name() const
+void QUmlPackage::setURI(QString URI)
{
- return _name;
-}
+ // This is a read-write property
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPackage::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (_URI != URI) {
+ _URI = URI;
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ References the packaged elements that are Packages.
*/
-QUmlNamespace *QUmlPackage::namespace_() const
+const QSet<QUmlPackage *>
+QUmlPackage::nestedPackage() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write derived association end
-/*!
- 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.
- */
-QString QUmlPackage::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
+ qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)");
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlPackage::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ return QSet<QUmlPackage *>();
}
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlPackage::importedMember() const
+void QUmlPackage::addNestedPackage(QUmlPackage *nestedPackage)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write derived association end
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlPackage::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
+ qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)");
+ Q_UNUSED(nestedPackage);
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlPackage::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlPackage::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ // Adjust subsetted properties
+ addPackagedElement(nestedPackage);
+ }
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlPackage::packageImport() const
+void QUmlPackage::removeNestedPackage(QUmlPackage *nestedPackage)
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ // This is a read-write derived association end
-// OWNED ATTRIBUTES [ParameterableElement]
+ qWarning("UmlPackage::nestedPackage(): to be implemented (this is a derived association end)");
+ Q_UNUSED(nestedPackage);
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlPackage::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlPackage::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ // Adjust subsetted properties
+ removePackagedElement(nestedPackage);
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-
/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlPackage::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlTemplateSignature *QUmlPackage::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- The optional bindings from this element to templates.
+ References the Package that owns this Package.
*/
-const QSet<QUmlTemplateBinding *> QUmlPackage::templateBinding() const
+QUmlPackage *
+QUmlPackage::nestingPackage() const
{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Package]
-
-/*!
- Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.
- */
-QString QUmlPackage::URI() const
-{
- return _URI;
+ return _nestingPackage;
}
-/*!
- References the packaged elements that are Packages.
- */
-const QSet<QUmlPackage *> QUmlPackage::nestedPackage() const
+void QUmlPackage::setNestingPackage(QUmlPackage *nestingPackage)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlPackage::nestedPackage())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- References the Package that owns this Package.
- */
-QUmlPackage *QUmlPackage::nestingPackage() const
-{
- return reinterpret_cast<QUmlPackage *>(_nestingPackage);
+ if (_nestingPackage != nestingPackage) {
+ _nestingPackage = nestingPackage;
+ if (nestingPackage->asQObject() && this->asQObject())
+ QObject::connect(nestingPackage->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setNestingPackage()));
+ }
}
/*!
References the Stereotypes that are owned by the Package
*/
-const QSet<QUmlStereotype *> QUmlPackage::ownedStereotype() const
+const QSet<QUmlStereotype *>
+QUmlPackage::ownedStereotype() const
{
- QSet<QUmlStereotype *> r;
- foreach (UmlStereotype *element, UmlPackage::ownedStereotype())
- r.insert(reinterpret_cast<QUmlStereotype *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- References the packaged elements that are Types.
- */
-const QSet<QUmlType *> QUmlPackage::ownedType() const
-{
- QSet<QUmlType *> r;
- foreach (UmlType *element, UmlPackage::ownedType())
- r.insert(reinterpret_cast<QUmlType *>(element));
- return r;
-}
+ qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)");
-/*!
- References the PackageMerges that are owned by this Package.
- */
-const QSet<QUmlPackageMerge *> QUmlPackage::packageMerge() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageMerge *> *>(&_packageMerge));
+ return QSet<QUmlStereotype *>();
}
-/*!
- Specifies the packageable elements that are owned by this Package.
- */
-const QSet<QUmlPackageableElement *> QUmlPackage::packagedElement() const
+void QUmlPackage::addOwnedStereotype(QUmlStereotype *ownedStereotype)
{
- return *(reinterpret_cast<const QSet<QUmlPackageableElement *> *>(&_packagedElement));
-}
+ // This is a read-only derived association end
-/*!
- References the ProfileApplications that indicate which profiles have been applied to the Package.
- */
-const QSet<QUmlProfileApplication *> QUmlPackage::profileApplication() const
-{
- return *(reinterpret_cast<const QSet<QUmlProfileApplication *> *>(&_profileApplication));
-}
+ qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)");
+ Q_UNUSED(ownedStereotype);
-// OPERATIONS [Element]
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPackage::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addPackagedElement(ownedStereotype);
+ }
}
-// OPERATIONS [NamedElement]
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlPackage::allNamespaces() const
+void QUmlPackage::removeOwnedStereotype(QUmlStereotype *ownedStereotype)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPackage::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ qWarning("UmlPackage::ownedStereotype(): to be implemented (this is a derived association end)");
+ Q_UNUSED(ownedStereotype);
-/*!
- 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.
- */
-bool QUmlPackage::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+
+ // Adjust subsetted properties
+ removePackagedElement(ownedStereotype);
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ References the packaged elements that are Types.
*/
-QString QUmlPackage::separator() const
+const QSet<QUmlType *>
+QUmlPackage::ownedType() const
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write derived association end
-// OPERATIONS [Namespace]
+ qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)");
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlPackage::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return QSet<QUmlType *>();
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlPackage::getNamesOfMember(QUmlNamedElement *element) const
+void QUmlPackage::addOwnedType(QUmlType *ownedType)
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write derived association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlPackage::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)");
+ Q_UNUSED(ownedType);
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlPackage::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-// OPERATIONS [ParameterableElement]
+ // Adjust subsetted properties
+ addPackagedElement(ownedType);
-/*!
- 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.
- */
-bool QUmlPackage::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (ownedType) {
+ ownedType->setPackage(this);
+ }
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlPackage::isTemplateParameter() const
+void QUmlPackage::removeOwnedType(QUmlType *ownedType)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write derived association end
-// OPERATIONS [TemplateableElement]
+ qWarning("UmlPackage::ownedType(): to be implemented (this is a derived association end)");
+ Q_UNUSED(ownedType);
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlPackage::isTemplate() const
-{
- return UmlTemplateableElement::isTemplate();
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlPackage::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removePackagedElement(ownedType);
-// OPERATIONS [Package]
-
-/*!
- The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.
- */
-QSet<QUmlStereotype *> QUmlPackage::allApplicableStereotypes() const
-{
- QSet<QUmlStereotype *> r;
- foreach (UmlStereotype *element, UmlPackage::allApplicableStereotypes())
- r.insert(reinterpret_cast<QUmlStereotype *>(element));
- return r;
+ // Adjust opposite properties
+ if (ownedType) {
+ ownedType->setPackage(0);
+ }
+ }
}
/*!
- The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).
+ References the PackageMerges that are owned by this Package.
*/
-QUmlProfile *QUmlPackage::containingProfile() const
+const QSet<QUmlPackageMerge *>
+QUmlPackage::packageMerge() const
{
- return reinterpret_cast<QUmlProfile *>(UmlPackage::containingProfile());
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlPackage::makesVisible(QUmlNamedElement *el) const
-{
- return UmlPackage::makesVisible(el);
+ return _packageMerge;
}
-/*!
- The query mustBeOwned() indicates whether elements of this type must have an owner.
- */
-bool QUmlPackage::mustBeOwned() const
+void QUmlPackage::addPackageMerge(QUmlPackageMerge *packageMerge)
{
- return UmlPackage::mustBeOwned();
-}
+ // This is a read-write association end
-/*!
- The query visibleMembers() defines which members of a Package can be accessed outside it.
- */
-QSet<QUmlPackageableElement *> QUmlPackage::visibleMembers() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlPackage::visibleMembers())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ if (!_packageMerge.contains(packageMerge)) {
+ _packageMerge.insert(packageMerge);
+ if (packageMerge->asQObject() && this->asQObject())
+ QObject::connect(packageMerge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePackageMerge(QObject *)));
+ packageMerge->asQObject()->setParent(this->asQObject());
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // Adjust subsetted properties
+ addOwnedElement(packageMerge);
-void QUmlPackage::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust opposite properties
+ if (packageMerge) {
+ packageMerge->setReceivingPackage(this);
+ }
+ }
}
-void QUmlPackage::removeOwnedComment(UmlComment *ownedComment)
+void QUmlPackage::removePackageMerge(QUmlPackageMerge *packageMerge)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (_packageMerge.contains(packageMerge)) {
+ _packageMerge.remove(packageMerge);
+ if (packageMerge->asQObject())
+ packageMerge->asQObject()->setParent(0);
-void QUmlPackage::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // Adjust subsetted properties
+ removeOwnedElement(packageMerge);
-void QUmlPackage::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ // Adjust opposite properties
+ if (packageMerge) {
+ packageMerge->setReceivingPackage(0);
+ }
+ }
}
-void QUmlPackage::setName(QString name)
+/*!
+ Specifies the packageable elements that are owned by this Package.
+ */
+const QSet<QUmlPackageableElement *>
+QUmlPackage::packagedElement() const
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlPackage::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _packagedElement;
}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-void QUmlPackage::addElementImport(UmlElementImport *elementImport)
+void QUmlPackage::addPackagedElement(QUmlPackageableElement *packagedElement)
{
- UmlNamespace::addElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlPackage::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
+ if (!_packagedElement.contains(packagedElement)) {
+ _packagedElement.insert(packagedElement);
+ if (packagedElement->asQObject() && this->asQObject())
+ QObject::connect(packagedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePackagedElement(QObject *)));
+ packagedElement->asQObject()->setParent(this->asQObject());
-void QUmlPackage::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
+ // Adjust subsetted properties
+ addOwnedMember(packagedElement);
+ }
}
-void QUmlPackage::removeOwnedRule(UmlConstraint *ownedRule)
+void QUmlPackage::removePackagedElement(QUmlPackageableElement *packagedElement)
{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // This is a read-write association end
-void QUmlPackage::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
+ if (_packagedElement.contains(packagedElement)) {
+ _packagedElement.remove(packagedElement);
+ if (packagedElement->asQObject())
+ packagedElement->asQObject()->setParent(0);
-void QUmlPackage::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
+ // Adjust subsetted properties
+ removeOwnedMember(packagedElement);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlPackage::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+/*!
+ References the ProfileApplications that indicate which profiles have been applied to the Package.
+ */
+const QSet<QUmlProfileApplication *>
+QUmlPackage::profileApplication() const
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
+ // This is a read-write association end
-void QUmlPackage::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return _profileApplication;
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlPackage::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlPackage::addProfileApplication(QUmlProfileApplication *profileApplication)
{
- UmlPackageableElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+ if (!_profileApplication.contains(profileApplication)) {
+ _profileApplication.insert(profileApplication);
+ if (profileApplication->asQObject() && this->asQObject())
+ QObject::connect(profileApplication->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeProfileApplication(QObject *)));
+ profileApplication->asQObject()->setParent(this->asQObject());
-void QUmlPackage::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
-{
- UmlTemplateableElement::setOwnedTemplateSignature(ownedTemplateSignature);
-}
+ // Adjust subsetted properties
+ addOwnedElement(profileApplication);
-void QUmlPackage::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
+ // Adjust opposite properties
+ if (profileApplication) {
+ profileApplication->setApplyingPackage(this);
+ }
+ }
}
-void QUmlPackage::removeTemplateBinding(UmlTemplateBinding *templateBinding)
+void QUmlPackage::removeProfileApplication(QUmlProfileApplication *profileApplication)
{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Package]
+ if (_profileApplication.contains(profileApplication)) {
+ _profileApplication.remove(profileApplication);
+ if (profileApplication->asQObject())
+ profileApplication->asQObject()->setParent(0);
-void QUmlPackage::setURI(QString URI)
-{
- UmlPackage::setURI(URI);
-}
+ // Adjust subsetted properties
+ removeOwnedElement(profileApplication);
-void QUmlPackage::addNestedPackage(UmlPackage *nestedPackage)
-{
- UmlPackage::addNestedPackage(nestedPackage);
+ // Adjust opposite properties
+ if (profileApplication) {
+ profileApplication->setApplyingPackage(0);
+ }
+ }
}
-void QUmlPackage::removeNestedPackage(UmlPackage *nestedPackage)
-{
- UmlPackage::removeNestedPackage(nestedPackage);
-}
+// OPERATIONS
-void QUmlPackage::setNestingPackage(QUmlPackage *nestingPackage)
+/*!
+ The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.
+ */
+QSet<QUmlStereotype *> QUmlPackage::allApplicableStereotypes() const
{
- UmlPackage::setNestingPackage(nestingPackage);
-}
+ qWarning("UmlPackage::allApplicableStereotypes(): to be implemented (operation)");
-void QUmlPackage::addOwnedType(UmlType *ownedType)
-{
- UmlPackage::addOwnedType(ownedType);
+ return QSet<QUmlStereotype *> ();
}
-void QUmlPackage::removeOwnedType(UmlType *ownedType)
+/*!
+ The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).
+ */
+QUmlProfile *QUmlPackage::containingProfile() const
{
- UmlPackage::removeOwnedType(ownedType);
-}
+ qWarning("UmlPackage::containingProfile(): to be implemented (operation)");
-void QUmlPackage::addPackageMerge(UmlPackageMerge *packageMerge)
-{
- UmlPackage::addPackageMerge(packageMerge);
+ return 0;
}
-void QUmlPackage::removePackageMerge(UmlPackageMerge *packageMerge)
+/*!
+ 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.
+ */
+bool QUmlPackage::makesVisible(QUmlNamedElement *el) const
{
- UmlPackage::removePackageMerge(packageMerge);
-}
+ qWarning("UmlPackage::makesVisible(): to be implemented (operation)");
-void QUmlPackage::addPackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlPackage::addPackagedElement(packagedElement);
+ Q_UNUSED(el);
+ return bool ();
}
-void QUmlPackage::removePackagedElement(UmlPackageableElement *packagedElement)
+/*!
+ The query mustBeOwned() indicates whether elements of this type must have an owner.
+ */
+bool QUmlPackage::mustBeOwned() const
{
- UmlPackage::removePackagedElement(packagedElement);
-}
+ qWarning("UmlPackage::mustBeOwned(): to be implemented (operation)");
-void QUmlPackage::addProfileApplication(UmlProfileApplication *profileApplication)
-{
- UmlPackage::addProfileApplication(profileApplication);
+ return bool ();
}
-void QUmlPackage::removeProfileApplication(UmlProfileApplication *profileApplication)
+/*!
+ The query visibleMembers() defines which members of a Package can be accessed outside it.
+ */
+QSet<QUmlPackageableElement *> QUmlPackage::visibleMembers() const
{
- UmlPackage::removeProfileApplication(profileApplication);
-}
+ qWarning("UmlPackage::visibleMembers(): to be implemented (operation)");
-QT_END_NAMESPACE
+ return QSet<QUmlPackageableElement *> ();
+}
diff --git a/src/uml/qumlpackage.h b/src/uml/qumlpackage.h
index 73e2635f..73a0f0b7 100644
--- a/src/uml/qumlpackage.h
+++ b/src/uml/qumlpackage.h
@@ -43,10 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpackage_p.h"
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlPackageableElement>
+#include <QtUml/QUmlTemplateableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,197 +54,61 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackageableElement;
-class QUmlPackageImport;
class QUmlPackageMerge;
-class QUmlParameterableElement;
class QUmlProfile;
class QUmlProfileApplication;
class QUmlStereotype;
-class QUmlStringExpression;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
class QUmlType;
-class Q_UML_EXPORT QUmlPackage : public QObject, public UmlPackage
+class Q_UML_EXPORT QUmlPackage : public QUmlNamespace, public QUmlPackageableElement, public QUmlTemplateableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QUmlTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Package]
- Q_PROPERTY(QString URI READ URI)
- Q_PROPERTY(QSet<QUmlPackage *> nestedPackage READ nestedPackage)
- Q_PROPERTY(QUmlPackage * nestingPackage READ nestingPackage)
- Q_PROPERTY(QSet<QUmlStereotype *> ownedStereotype READ ownedStereotype)
- Q_PROPERTY(QSet<QUmlType *> ownedType READ ownedType)
- Q_PROPERTY(QSet<QUmlPackageMerge *> packageMerge READ packageMerge)
- Q_PROPERTY(QSet<QUmlPackageableElement *> packagedElement READ packagedElement)
- Q_PROPERTY(QSet<QUmlProfileApplication *> profileApplication READ profileApplication)
-
public:
- Q_INVOKABLE explicit QUmlPackage(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE QUmlTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Package]
- Q_INVOKABLE QString URI() const;
- Q_INVOKABLE const QSet<QUmlPackage *> nestedPackage() const;
- Q_INVOKABLE QUmlPackage *nestingPackage() const;
- Q_INVOKABLE const QSet<QUmlStereotype *> ownedStereotype() const;
- Q_INVOKABLE const QSet<QUmlType *> ownedType() const;
- Q_INVOKABLE const QSet<QUmlPackageMerge *> packageMerge() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> packagedElement() const;
- Q_INVOKABLE const QSet<QUmlProfileApplication *> profileApplication() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Package]
- Q_INVOKABLE QSet<QUmlStereotype *> allApplicableStereotypes() const;
- Q_INVOKABLE QUmlProfile *containingProfile() const;
- Q_INVOKABLE bool makesVisible(QUmlNamedElement *el) const;
- Q_INVOKABLE bool mustBeOwned() const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> visibleMembers() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TemplateableElement]
- void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Package]
+ explicit QUmlPackage(bool createQObject = true);
+ virtual ~QUmlPackage();
+
+ // Owned attributes
+ QString URI() const;
void setURI(QString URI);
- void addNestedPackage(UmlPackage *nestedPackage);
- void removeNestedPackage(UmlPackage *nestedPackage);
+ const QSet<QUmlPackage *> nestedPackage() const;
+ void addNestedPackage(QUmlPackage *nestedPackage);
+ void removeNestedPackage(QUmlPackage *nestedPackage);
+ QUmlPackage *nestingPackage() const;
void setNestingPackage(QUmlPackage *nestingPackage);
- void addOwnedType(UmlType *ownedType);
- void removeOwnedType(UmlType *ownedType);
- void addPackageMerge(UmlPackageMerge *packageMerge);
- void removePackageMerge(UmlPackageMerge *packageMerge);
- void addPackagedElement(UmlPackageableElement *packagedElement);
- void removePackagedElement(UmlPackageableElement *packagedElement);
- void addProfileApplication(UmlProfileApplication *profileApplication);
- void removeProfileApplication(UmlProfileApplication *profileApplication);
+ const QSet<QUmlStereotype *> ownedStereotype() const;
+ Q_DECL_HIDDEN void addOwnedStereotype(QUmlStereotype *ownedStereotype);
+ Q_DECL_HIDDEN void removeOwnedStereotype(QUmlStereotype *ownedStereotype);
+ const QSet<QUmlType *> ownedType() const;
+ void addOwnedType(QUmlType *ownedType);
+ void removeOwnedType(QUmlType *ownedType);
+ const QSet<QUmlPackageMerge *> packageMerge() const;
+ void addPackageMerge(QUmlPackageMerge *packageMerge);
+ void removePackageMerge(QUmlPackageMerge *packageMerge);
+ const QSet<QUmlPackageableElement *> packagedElement() const;
+ void addPackagedElement(QUmlPackageableElement *packagedElement);
+ void removePackagedElement(QUmlPackageableElement *packagedElement);
+ const QSet<QUmlProfileApplication *> profileApplication() const;
+ void addProfileApplication(QUmlProfileApplication *profileApplication);
+ void removeProfileApplication(QUmlProfileApplication *profileApplication);
+
+ // Operations
+ QSet<QUmlStereotype *> allApplicableStereotypes() const;
+ QUmlProfile *containingProfile() const;
+ bool makesVisible(QUmlNamedElement *el) const;
+ bool mustBeOwned() const;
+ QSet<QUmlPackageableElement *> visibleMembers() const;
+
+protected:
+ QString _URI;
+ QUmlPackage *_nestingPackage;
+ QSet<QUmlPackageMerge *> _packageMerge;
+ QSet<QUmlPackageableElement *> _packagedElement;
+ QSet<QUmlProfileApplication *> _profileApplication;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPackage *)
-Q_DECLARE_METATYPE(QList<QUmlPackage *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPackage *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPackage) *)
QT_END_HEADER
diff --git a/src/uml/qumlpackageableelement.cpp b/src/uml/qumlpackageableelement.cpp
index e11a9ee0..2a3ec0f4 100644
--- a/src/uml/qumlpackageableelement.cpp
+++ b/src/uml/qumlpackageableelement.cpp
@@ -40,256 +40,41 @@
****************************************************************************/
#include "qumlpackageableelement.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlPackageableElement
+ \class QUmlPackageableElement
\inmodule QtUml
\brief Packageable elements are able to serve as a template parameter.A packageable element indicates a named element that may be owned directly by a package.
*/
-
-QUmlPackageableElement::QUmlPackageableElement(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPackageableElement::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPackageableElement::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlPackageableElement::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlPackageableElement::owningTemplateParameter() const
+QUmlPackageableElement::QUmlPackageableElement() :
+ _visibility(QtUml::VisibilityKindPublic)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlPackageableElement::templateParameter() const
+QUmlPackageableElement::~QUmlPackageableElement()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPackageableElement::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlPackageableElement::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPackageableElement::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlPackageableElement::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlPackageableElement::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
+// OWNED ATTRIBUTES
/*!
Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
*/
-QtUml::VisibilityKind QUmlPackageableElement::visibility() const
+QtUml::VisibilityKind
+QUmlPackageableElement::visibility() const
{
- return _visibility;
-}
+ // This is a read-write property
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPackageableElement::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPackageableElement::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlPackageableElement::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlPackageableElement::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlPackageableElement::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPackageableElement::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPackageableElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlPackageableElement::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlPackageableElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlPackageableElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlPackageableElement::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlPackageableElement::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlPackageableElement::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlPackageableElement::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlPackageableElement::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlPackageableElement::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _visibility;
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
void QUmlPackageableElement::setVisibility(QtUml::VisibilityKind visibility)
{
- UmlPackageableElement::setVisibility(visibility);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_visibility != visibility) {
+ _visibility = visibility;
+ }
+}
diff --git a/src/uml/qumlpackageableelement.h b/src/uml/qumlpackageableelement.h
index d798d348..0c3e6fe8 100644
--- a/src/uml/qumlpackageableelement.h
+++ b/src/uml/qumlpackageableelement.h
@@ -43,8 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpackageableelement_p.h"
+#include <QtUml/QUmlParameterableElement>
+#include <QtUml/QUmlNamedElement>
+
#include <QtUml/QtUmlNamespace>
@@ -54,100 +55,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlPackageableElement : public QObject, public UmlPackageableElement
+class Q_UML_EXPORT QUmlPackageableElement : public QUmlParameterableElement, public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
+public:
+ virtual ~QUmlPackageableElement();
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
+ // Owned attributes
+ QtUml::VisibilityKind visibility() const;
+ void setVisibility(QtUml::VisibilityKind visibility);
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+protected:
+ explicit QUmlPackageableElement();
-public:
- Q_DECL_HIDDEN explicit QUmlPackageableElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+ QtUml::VisibilityKind _visibility;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPackageableElement *)
-Q_DECLARE_METATYPE(QList<QUmlPackageableElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPackageableElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPackageableElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlpackageimport.cpp b/src/uml/qumlpackageimport.cpp
index b4b1e9ee..5eebba82 100644
--- a/src/uml/qumlpackageimport.cpp
+++ b/src/uml/qumlpackageimport.cpp
@@ -40,159 +40,115 @@
****************************************************************************/
#include "qumlpackageimport.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumlpackageimportobject_p.h"
+
#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlPackage>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlPackageImport
+ \class QUmlPackageImport
\inmodule QtUml
\brief A package import is a relationship that allows the use of unqualified names to refer to package members from other namespaces.
*/
-
-QUmlPackageImport::QUmlPackageImport(QObject *parent) :
- QObject(parent)
+QUmlPackageImport::QUmlPackageImport(bool createQObject) :
+ _importedPackage(0),
+ _importingNamespace(0),
+ _visibility(QtUml::VisibilityKindPublic)
{
+ if (createQObject)
+ _qObject = new QUmlPackageImportObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPackageImport::ownedComment() const
+QUmlPackageImport::~QUmlPackageImport()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPackageImport::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Specifies the Package whose members are imported into a Namespace.
*/
-QUmlElement *QUmlPackageImport::owner() const
+QUmlPackage *
+QUmlPackageImport::importedPackage() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlPackageImport::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ return _importedPackage;
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlPackageImport::source() const
+void QUmlPackageImport::setImportedPackage(QUmlPackage *importedPackage)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
+ // This is a read-write association end
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlPackageImport::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ if (_importedPackage != importedPackage) {
+ // Adjust subsetted properties
+ removeTarget(_importedPackage);
-// OWNED ATTRIBUTES [PackageImport]
+ _importedPackage = importedPackage;
+ if (importedPackage->asQObject() && this->asQObject())
+ QObject::connect(importedPackage->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setImportedPackage()));
-/*!
- Specifies the Package whose members are imported into a Namespace.
- */
-QUmlPackage *QUmlPackageImport::importedPackage() const
-{
- return reinterpret_cast<QUmlPackage *>(_importedPackage);
+ // Adjust subsetted properties
+ if (importedPackage) {
+ addTarget(importedPackage);
+ }
+ }
}
/*!
Specifies the Namespace that imports the members from a Package.
*/
-QUmlNamespace *QUmlPackageImport::importingNamespace() const
+QUmlNamespace *
+QUmlPackageImport::importingNamespace() const
{
- return reinterpret_cast<QUmlNamespace *>(_importingNamespace);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QtUml::VisibilityKind QUmlPackageImport::visibility() const
-{
- return _visibility;
+ return _importingNamespace;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPackageImport::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPackageImport::mustBeOwned() const
+void QUmlPackageImport::setImportingNamespace(QUmlNamespace *importingNamespace)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ if (_importingNamespace != importingNamespace) {
+ // Adjust subsetted properties
+ removeSource(_importingNamespace);
-void QUmlPackageImport::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ _importingNamespace = importingNamespace;
+ if (importingNamespace->asQObject() && this->asQObject())
+ QObject::connect(importingNamespace->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setImportingNamespace()));
-void QUmlPackageImport::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ // Adjust subsetted properties
+ setOwner(importingNamespace);
+ if (importingNamespace) {
+ addSource(importingNamespace);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageImport]
-
-void QUmlPackageImport::setImportedPackage(QUmlPackage *importedPackage)
+/*!
+ 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.
+ */
+QtUml::VisibilityKind
+QUmlPackageImport::visibility() const
{
- UmlPackageImport::setImportedPackage(importedPackage);
-}
+ // This is a read-write property
-void QUmlPackageImport::setImportingNamespace(QUmlNamespace *importingNamespace)
-{
- UmlPackageImport::setImportingNamespace(importingNamespace);
+ return _visibility;
}
void QUmlPackageImport::setVisibility(QtUml::VisibilityKind visibility)
{
- UmlPackageImport::setVisibility(visibility);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_visibility != visibility) {
+ _visibility = visibility;
+ }
+}
diff --git a/src/uml/qumlpackageimport.h b/src/uml/qumlpackageimport.h
index ea1e7d1b..655e2604 100644
--- a/src/uml/qumlpackageimport.h
+++ b/src/uml/qumlpackageimport.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpackageimport_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
#include <QtUml/QtUmlNamespace>
@@ -54,77 +54,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlNamespace;
class QUmlPackage;
-class Q_UML_EXPORT QUmlPackageImport : public QObject, public UmlPackageImport
+class Q_UML_EXPORT QUmlPackageImport : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [PackageImport]
- Q_PROPERTY(QUmlPackage * importedPackage READ importedPackage)
- Q_PROPERTY(QUmlNamespace * importingNamespace READ importingNamespace)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
public:
- Q_INVOKABLE explicit QUmlPackageImport(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
+ explicit QUmlPackageImport(bool createQObject = true);
+ virtual ~QUmlPackageImport();
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [PackageImport]
- Q_INVOKABLE QUmlPackage *importedPackage() const;
- Q_INVOKABLE QUmlNamespace *importingNamespace() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [PackageImport]
+ // Owned attributes
+ QUmlPackage *importedPackage() const;
void setImportedPackage(QUmlPackage *importedPackage);
+ QUmlNamespace *importingNamespace() const;
void setImportingNamespace(QUmlNamespace *importingNamespace);
+ QtUml::VisibilityKind visibility() const;
void setVisibility(QtUml::VisibilityKind visibility);
+
+protected:
+ QUmlPackage *_importedPackage;
+ QUmlNamespace *_importingNamespace;
+ QtUml::VisibilityKind _visibility;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPackageImport *)
-Q_DECLARE_METATYPE(QList<QUmlPackageImport *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPackageImport *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPackageImport) *)
QT_END_HEADER
diff --git a/src/uml/qumlpackagemerge.cpp b/src/uml/qumlpackagemerge.cpp
index bb596e56..ef7bfbe1 100644
--- a/src/uml/qumlpackagemerge.cpp
+++ b/src/uml/qumlpackagemerge.cpp
@@ -40,145 +40,93 @@
****************************************************************************/
#include "qumlpackagemerge.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlPackage>
+#include "private/qumlpackagemergeobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlPackage>
/*!
- \class UmlPackageMerge
+ \class QUmlPackageMerge
\inmodule QtUml
\brief A package merge defines how the contents of one package are extended by the contents of another package.
*/
-
-QUmlPackageMerge::QUmlPackageMerge(QObject *parent) :
- QObject(parent)
+QUmlPackageMerge::QUmlPackageMerge(bool createQObject) :
+ _mergedPackage(0),
+ _receivingPackage(0)
{
+ if (createQObject)
+ _qObject = new QUmlPackageMergeObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPackageMerge::ownedComment() const
+QUmlPackageMerge::~QUmlPackageMerge()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPackageMerge::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ References the Package that is to be merged with the receiving package of the PackageMerge.
*/
-QUmlElement *QUmlPackageMerge::owner() const
+QUmlPackage *
+QUmlPackageMerge::mergedPackage() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [Relationship]
+ // This is a read-write association end
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlPackageMerge::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ return _mergedPackage;
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlPackageMerge::source() const
+void QUmlPackageMerge::setMergedPackage(QUmlPackage *mergedPackage)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
+ // This is a read-write association end
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlPackageMerge::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ if (_mergedPackage != mergedPackage) {
+ // Adjust subsetted properties
+ removeTarget(_mergedPackage);
-// OWNED ATTRIBUTES [PackageMerge]
+ _mergedPackage = mergedPackage;
+ if (mergedPackage->asQObject() && this->asQObject())
+ QObject::connect(mergedPackage->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMergedPackage()));
-/*!
- References the Package that is to be merged with the receiving package of the PackageMerge.
- */
-QUmlPackage *QUmlPackageMerge::mergedPackage() const
-{
- return reinterpret_cast<QUmlPackage *>(_mergedPackage);
+ // Adjust subsetted properties
+ if (mergedPackage) {
+ addTarget(mergedPackage);
+ }
+ }
}
/*!
References the Package that is being extended with the contents of the merged package of the PackageMerge.
*/
-QUmlPackage *QUmlPackageMerge::receivingPackage() const
-{
- return reinterpret_cast<QUmlPackage *>(_receivingPackage);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPackageMerge::allOwnedElements() const
+QUmlPackage *
+QUmlPackageMerge::receivingPackage() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlPackageMerge::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlPackageMerge::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlPackageMerge::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageMerge]
-
-void QUmlPackageMerge::setMergedPackage(QUmlPackage *mergedPackage)
-{
- UmlPackageMerge::setMergedPackage(mergedPackage);
+ return _receivingPackage;
}
void QUmlPackageMerge::setReceivingPackage(QUmlPackage *receivingPackage)
{
- UmlPackageMerge::setReceivingPackage(receivingPackage);
+ // This is a read-write association end
+
+ if (_receivingPackage != receivingPackage) {
+ // Adjust subsetted properties
+ removeSource(_receivingPackage);
+
+ _receivingPackage = receivingPackage;
+ if (receivingPackage->asQObject() && this->asQObject())
+ QObject::connect(receivingPackage->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReceivingPackage()));
+
+ // Adjust subsetted properties
+ setOwner(receivingPackage);
+ if (receivingPackage) {
+ addSource(receivingPackage);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlpackagemerge.h b/src/uml/qumlpackagemerge.h
index f701684c..0de41029 100644
--- a/src/uml/qumlpackagemerge.h
+++ b/src/uml/qumlpackagemerge.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpackagemerge_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
QT_BEGIN_HEADER
@@ -52,73 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlPackage;
-class Q_UML_EXPORT QUmlPackageMerge : public QObject, public UmlPackageMerge
+class Q_UML_EXPORT QUmlPackageMerge : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [PackageMerge]
- Q_PROPERTY(QUmlPackage * mergedPackage READ mergedPackage)
- Q_PROPERTY(QUmlPackage * receivingPackage READ receivingPackage)
-
public:
- Q_INVOKABLE explicit QUmlPackageMerge(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
+ explicit QUmlPackageMerge(bool createQObject = true);
+ virtual ~QUmlPackageMerge();
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [PackageMerge]
- Q_INVOKABLE QUmlPackage *mergedPackage() const;
- Q_INVOKABLE QUmlPackage *receivingPackage() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [PackageMerge]
+ // Owned attributes
+ QUmlPackage *mergedPackage() const;
void setMergedPackage(QUmlPackage *mergedPackage);
+ QUmlPackage *receivingPackage() const;
void setReceivingPackage(QUmlPackage *receivingPackage);
+
+protected:
+ QUmlPackage *_mergedPackage;
+ QUmlPackage *_receivingPackage;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPackageMerge *)
-Q_DECLARE_METATYPE(QList<QUmlPackageMerge *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPackageMerge *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPackageMerge) *)
QT_END_HEADER
diff --git a/src/uml/qumlparameter.cpp b/src/uml/qumlparameter.cpp
index 96f95cae..c0a0513d 100644
--- a/src/uml/qumlparameter.cpp
+++ b/src/uml/qumlparameter.cpp
@@ -40,544 +40,236 @@
****************************************************************************/
#include "qumlparameter.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElementTemplateParameter>
-#include <QtUml/QUmlConnectorEnd>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
+#include "private/qumlparameterobject_p.h"
+
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlParameter
+ \class QUmlParameter
\inmodule QtUml
\brief Parameters are allowed to be treated as connectable elements.A parameter is a specification of an argument used to pass information into or out of an invocation of a behavioral feature.Parameters have support for streaming, exceptions, and parameter sets.
*/
-
-QUmlParameter::QUmlParameter(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlParameter::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlParameter::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlParameter::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlParameter::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlParameter::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlParameter::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlParameter::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlParameter::upper() const
+QUmlParameter::QUmlParameter(bool createQObject) :
+ _defaultValue(0),
+ _direction(QtUml::ParameterDirectionKindIn),
+ _isException(false),
+ _isStream(false),
+ _operation(0)
{
- return UmlMultiplicityElement::upper();
+ if (createQObject)
+ _qObject = new QUmlParameterObject(this);
}
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlParameter::upperValue() const
+QUmlParameter::~QUmlParameter()
{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
+// OWNED ATTRIBUTES
/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlParameter::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlParameter::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
+ Specifies a String that represents a value to be used when no argument is supplied for the Parameter.
*/
-QUmlStringExpression *QUmlParameter::nameExpression() const
+QString
+QUmlParameter::default_() const
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-write derived property
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlParameter::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ qWarning("UmlParameter::default_(): to be implemented (this is a derived property)");
-/*!
- 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.
- */
-QString QUmlParameter::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return QString();
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlParameter::visibility() const
+void QUmlParameter::setDefault(QString default_)
{
- return _visibility;
-}
+ // This is a read-write derived property
-// OWNED ATTRIBUTES [TypedElement]
+ qWarning("UmlParameter::default_(): to be implemented (this is a derived property)");
+ Q_UNUSED(default_);
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlParameter::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
/*!
- The formal template parameter that owns this element.
+ Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter.
*/
-QUmlTemplateParameter *QUmlParameter::owningTemplateParameter() const
+QUmlValueSpecification *
+QUmlParameter::defaultValue() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [ConnectableElement]
+ // This is a read-write association end
-/*!
- Denotes a set of connector ends that attaches to this connectable element.
- */
-const QList<QUmlConnectorEnd *> QUmlParameter::end() const
-{
- QList<QUmlConnectorEnd *> r;
- foreach (UmlConnectorEnd *element, UmlConnectableElement::end())
- r.append(reinterpret_cast<QUmlConnectorEnd *>(element));
- return r;
+ return _defaultValue;
}
-/*!
- The ConnectableElementTemplateParameter for this ConnectableElement parameter.
- */
-QUmlConnectableElementTemplateParameter *QUmlParameter::templateParameter() const
+void QUmlParameter::setDefaultValue(QUmlValueSpecification *defaultValue)
{
- return reinterpret_cast<QUmlConnectableElementTemplateParameter *>(_templateParameter);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Parameter]
+ if (_defaultValue != defaultValue) {
+ // Adjust subsetted properties
+ removeOwnedElement(_defaultValue);
-/*!
- Specifies a String that represents a value to be used when no argument is supplied for the Parameter.
- */
-QString QUmlParameter::default_() const
-{
- return UmlParameter::default_();
-}
+ _defaultValue = defaultValue;
+ if (defaultValue->asQObject() && this->asQObject())
+ QObject::connect(defaultValue->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDefaultValue()));
+ defaultValue->asQObject()->setParent(this->asQObject());
-/*!
- Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter.
- */
-QUmlValueSpecification *QUmlParameter::defaultValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_defaultValue);
+ // Adjust subsetted properties
+ if (defaultValue) {
+ addOwnedElement(defaultValue);
+ }
+ }
}
/*!
Indicates whether a parameter is being sent into or out of a behavioral element.
*/
-QtUml::ParameterDirectionKind QUmlParameter::direction() const
+QtUml::ParameterDirectionKind
+QUmlParameter::direction() const
{
+ // This is a read-write property
+
return _direction;
}
-/*!
- Specifies the effect that the owner of the parameter has on values passed in or out of the parameter.
- */
-QtUml::ParameterEffectKind QUmlParameter::effect() const
+void QUmlParameter::setDirection(QtUml::ParameterDirectionKind direction)
{
- return _effect;
-}
+ // This is a read-write property
-/*!
- Tells whether an output parameter may emit a value to the exclusion of the other outputs.
- */
-bool QUmlParameter::isException() const
-{
- return _isException;
+ if (_direction != direction) {
+ _direction = direction;
+ }
}
/*!
- Tells whether an input parameter may accept values while its behavior is executing, or whether an output parameter post values while the behavior is executing.
+ Specifies the effect that the owner of the parameter has on values passed in or out of the parameter.
*/
-bool QUmlParameter::isStream() const
+QtUml::ParameterEffectKind
+QUmlParameter::effect() const
{
- return _isStream;
-}
+ // This is a read-write property
-/*!
- References the Operation owning this parameter.
- */
-QUmlOperation *QUmlParameter::operation() const
-{
- return reinterpret_cast<QUmlOperation *>(_operation);
+ return _effect;
}
-/*!
- The parameter sets containing the parameter. See ParameterSet.
- */
-const QSet<QUmlParameterSet *> QUmlParameter::parameterSet() const
+void QUmlParameter::setEffect(QtUml::ParameterEffectKind effect)
{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_parameterSet));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlParameter::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_effect != effect) {
+ _effect = effect;
+ }
}
/*!
- 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.
- */
-bool QUmlParameter::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
+ Tells whether an output parameter may emit a value to the exclusion of the other outputs.
*/
-bool QUmlParameter::compatibleWith(QUmlMultiplicityElement *other) const
+bool
+QUmlParameter::isException() const
{
- return UmlMultiplicityElement::compatibleWith(other);
-}
+ // This is a read-write property
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlParameter::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
+ return _isException;
}
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlParameter::includesMultiplicity(QUmlMultiplicityElement *M) const
+void QUmlParameter::setException(bool isException)
{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
+ // This is a read-write property
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlParameter::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
+ if (_isException != isException) {
+ _isException = isException;
+ }
}
/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
+ 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.
*/
-bool QUmlParameter::isMultivalued() const
+bool
+QUmlParameter::isStream() const
{
- return UmlMultiplicityElement::isMultivalued();
-}
+ // This is a read-write property
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlParameter::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
+ return _isStream;
}
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-int QUmlParameter::upperBound() const
+void QUmlParameter::setStream(bool isStream)
{
- return UmlMultiplicityElement::upperBound();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write property
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlParameter::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (_isStream != isStream) {
+ _isStream = isStream;
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ References the Operation owning this parameter.
*/
-QSet<QUmlPackage *> QUmlParameter::allOwningPackages() const
+QUmlOperation *
+QUmlParameter::operation() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlParameter::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _operation;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlParameter::separator() const
+void QUmlParameter::setOperation(QUmlOperation *operation)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlParameter::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ if (_operation != operation) {
+ _operation = operation;
+ if (operation->asQObject() && this->asQObject())
+ QObject::connect(operation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOperation()));
+ }
}
/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
+ The parameter sets containing the parameter. See ParameterSet.
*/
-bool QUmlParameter::isTemplateParameter() const
+const QSet<QUmlParameterSet *>
+QUmlParameter::parameterSet() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlParameter::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _parameterSet;
}
-void QUmlParameter::removeOwnedComment(UmlComment *ownedComment)
+void QUmlParameter::addParameterSet(QUmlParameterSet *parameterSet)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+ if (!_parameterSet.contains(parameterSet)) {
+ _parameterSet.insert(parameterSet);
+ if (parameterSet->asQObject() && this->asQObject())
+ QObject::connect(parameterSet->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeParameterSet(QObject *)));
-void QUmlParameter::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
+ // Adjust opposite properties
+ if (parameterSet) {
+ parameterSet->addParameter(this);
+ }
+ }
}
-void QUmlParameter::setUnique(bool isUnique)
+void QUmlParameter::removeParameterSet(QUmlParameterSet *parameterSet)
{
- UmlMultiplicityElement::setUnique(isUnique);
-}
+ // This is a read-write association end
-void QUmlParameter::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
+ if (_parameterSet.contains(parameterSet)) {
+ _parameterSet.remove(parameterSet);
-void QUmlParameter::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
+ // Adjust opposite properties
+ if (parameterSet) {
+ parameterSet->removeParameter(this);
+ }
+ }
}
-void QUmlParameter::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlParameter::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlParameter::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlParameter::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlParameter::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlParameter::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlParameter::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlParameter::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlParameter::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
-
-void QUmlParameter::setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter)
-{
- UmlConnectableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Parameter]
-
-void QUmlParameter::setDefault(QString default_)
-{
- UmlParameter::setDefault(default_);
-}
-
-void QUmlParameter::setDefaultValue(QUmlValueSpecification *defaultValue)
-{
- UmlParameter::setDefaultValue(defaultValue);
-}
-
-void QUmlParameter::setDirection(QtUml::ParameterDirectionKind direction)
-{
- UmlParameter::setDirection(direction);
-}
-
-void QUmlParameter::setEffect(QtUml::ParameterEffectKind effect)
-{
- UmlParameter::setEffect(effect);
-}
-
-void QUmlParameter::setException(bool isException)
-{
- UmlParameter::setException(isException);
-}
-
-void QUmlParameter::setStream(bool isStream)
-{
- UmlParameter::setStream(isStream);
-}
-
-void QUmlParameter::setOperation(QUmlOperation *operation)
-{
- UmlParameter::setOperation(operation);
-}
-
-void QUmlParameter::addParameterSet(UmlParameterSet *parameterSet)
-{
- UmlParameter::addParameterSet(parameterSet);
-}
-
-void QUmlParameter::removeParameterSet(UmlParameterSet *parameterSet)
-{
- UmlParameter::removeParameterSet(parameterSet);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlparameter.h b/src/uml/qumlparameter.h
index 3644660a..9f8dd46d 100644
--- a/src/uml/qumlparameter.h
+++ b/src/uml/qumlparameter.h
@@ -43,8 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlparameter_p.h"
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlConnectableElement>
+
#include <QtUml/QtUmlNamespace>
@@ -54,182 +55,48 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlConnectableElementTemplateParameter;
-class QUmlConnectorEnd;
-class QUmlDependency;
-class QUmlElement;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlParameterableElement;
class QUmlParameterSet;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlParameter : public QObject, public UmlParameter
+class Q_UML_EXPORT QUmlParameter : public QUmlMultiplicityElement, public QUmlConnectableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [ConnectableElement]
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QUmlConnectableElementTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [Parameter]
- Q_PROPERTY(QString default_ READ default_)
- Q_PROPERTY(QUmlValueSpecification * defaultValue READ defaultValue)
- Q_PROPERTY(QtUml::ParameterDirectionKind direction READ direction)
- Q_PROPERTY(QtUml::ParameterEffectKind effect READ effect)
- Q_PROPERTY(bool isException READ isException)
- Q_PROPERTY(bool isStream READ isStream)
- Q_PROPERTY(QUmlOperation * operation READ operation)
- Q_PROPERTY(QSet<QUmlParameterSet *> parameterSet READ parameterSet)
-
public:
- Q_INVOKABLE explicit QUmlParameter(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [ConnectableElement]
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QUmlConnectableElementTemplateParameter *templateParameter() const;
-
- // Owned attributes [Parameter]
- Q_INVOKABLE QString default_() const;
- Q_INVOKABLE QUmlValueSpecification *defaultValue() const;
- Q_INVOKABLE QtUml::ParameterDirectionKind direction() const;
- Q_INVOKABLE QtUml::ParameterEffectKind effect() const;
- Q_INVOKABLE bool isException() const;
- Q_INVOKABLE bool isStream() const;
- Q_INVOKABLE QUmlOperation *operation() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> parameterSet() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [ConnectableElement]
- void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
-
- // Slots for owned attributes [Parameter]
+ explicit QUmlParameter(bool createQObject = true);
+ virtual ~QUmlParameter();
+
+ // Owned attributes
+ QString default_() const;
void setDefault(QString default_);
+ QUmlValueSpecification *defaultValue() const;
void setDefaultValue(QUmlValueSpecification *defaultValue);
+ QtUml::ParameterDirectionKind direction() const;
void setDirection(QtUml::ParameterDirectionKind direction);
+ QtUml::ParameterEffectKind effect() const;
void setEffect(QtUml::ParameterEffectKind effect);
+ bool isException() const;
void setException(bool isException);
+ bool isStream() const;
void setStream(bool isStream);
+ QUmlOperation *operation() const;
void setOperation(QUmlOperation *operation);
- void addParameterSet(UmlParameterSet *parameterSet);
- void removeParameterSet(UmlParameterSet *parameterSet);
+ const QSet<QUmlParameterSet *> parameterSet() const;
+ void addParameterSet(QUmlParameterSet *parameterSet);
+ void removeParameterSet(QUmlParameterSet *parameterSet);
+
+protected:
+ QUmlValueSpecification *_defaultValue;
+ QtUml::ParameterDirectionKind _direction;
+ QtUml::ParameterEffectKind _effect;
+ bool _isException;
+ bool _isStream;
+ QUmlOperation *_operation;
+ QSet<QUmlParameterSet *> _parameterSet;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlParameter *)
-Q_DECLARE_METATYPE(QList<QUmlParameter *> *)
-Q_DECLARE_METATYPE(QSet<QUmlParameter *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlParameter) *)
QT_END_HEADER
diff --git a/src/uml/qumlparameterableelement.cpp b/src/uml/qumlparameterableelement.cpp
index e8ebf4ef..eed8a093 100644
--- a/src/uml/qumlparameterableelement.cpp
+++ b/src/uml/qumlparameterableelement.cpp
@@ -40,98 +40,88 @@
****************************************************************************/
#include "qumlparameterableelement.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlTemplateParameter>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlParameterableElement
+ \class QUmlParameterableElement
\inmodule QtUml
\brief A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template.
*/
-
-QUmlParameterableElement::QUmlParameterableElement(QObject *parent) :
- QObject(parent)
+QUmlParameterableElement::QUmlParameterableElement() :
+ _owningTemplateParameter(0),
+ _templateParameter(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlParameterableElement::ownedComment() const
+QUmlParameterableElement::~QUmlParameterableElement()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ The formal template parameter that owns this element.
*/
-const QSet<QUmlElement *> QUmlParameterableElement::ownedElement() const
+QUmlTemplateParameter *
+QUmlParameterableElement::owningTemplateParameter() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _owningTemplateParameter;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlParameterableElement::owner() const
+void QUmlParameterableElement::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ParameterableElement]
+ if (_owningTemplateParameter != owningTemplateParameter) {
+ // Adjust subsetted properties
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlParameterableElement::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ _owningTemplateParameter = owningTemplateParameter;
+ if (owningTemplateParameter->asQObject() && this->asQObject())
+ QObject::connect(owningTemplateParameter->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwningTemplateParameter()));
+
+ // Adjust subsetted properties
+ setTemplateParameter(owningTemplateParameter);
+ setOwner(owningTemplateParameter);
+ }
}
/*!
The template parameter that exposes this element as a formal parameter.
*/
-QUmlTemplateParameter *QUmlParameterableElement::templateParameter() const
+QUmlTemplateParameter *
+QUmlParameterableElement::templateParameter() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlParameterableElement::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _templateParameter;
}
-/*!
- 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.
- */
-bool QUmlParameterableElement::mustBeOwned() const
+void QUmlParameterableElement::setTemplateParameter(QUmlTemplateParameter *templateParameter)
{
- return UmlElement::mustBeOwned();
+ // This is a read-write association end
+
+ if (_templateParameter != templateParameter) {
+ _templateParameter = templateParameter;
+ if (templateParameter->asQObject() && this->asQObject())
+ QObject::connect(templateParameter->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTemplateParameter()));
+ }
}
-// OPERATIONS [ParameterableElement]
+// OPERATIONS
/*!
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.
*/
bool QUmlParameterableElement::isCompatibleWith(QUmlParameterableElement *p) const
{
- return UmlParameterableElement::isCompatibleWith(p);
+ qWarning("UmlParameterableElement::isCompatibleWith(): to be implemented (operation)");
+
+ Q_UNUSED(p);
+ return bool ();
}
/*!
@@ -139,32 +129,8 @@ bool QUmlParameterableElement::isCompatibleWith(QUmlParameterableElement *p) con
*/
bool QUmlParameterableElement::isTemplateParameter() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ qWarning("UmlParameterableElement::isTemplateParameter(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlParameterableElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlParameterableElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return bool ();
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlParameterableElement::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlParameterableElement::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlparameterableelement.h b/src/uml/qumlparameterableelement.h
index 8758ebc2..5d12a5cf 100644
--- a/src/uml/qumlparameterableelement.h
+++ b/src/uml/qumlparameterableelement.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlparameterableelement_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,59 +52,33 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlParameterableElement : public QObject, public UmlParameterableElement
+class Q_UML_EXPORT QUmlParameterableElement : public virtual QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
public:
- Q_DECL_HIDDEN explicit QUmlParameterableElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
+ virtual ~QUmlParameterableElement();
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
+ // Owned attributes
+ QUmlTemplateParameter *owningTemplateParameter() const;
+ void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
+ QUmlTemplateParameter *templateParameter() const;
+ void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-public Q_SLOTS:
+ // Operations
+ bool isCompatibleWith(QUmlParameterableElement *p) const;
+ bool isTemplateParameter() const;
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+protected:
+ explicit QUmlParameterableElement();
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ QUmlTemplateParameter *_owningTemplateParameter;
+ QUmlTemplateParameter *_templateParameter;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlParameterableElement *)
-Q_DECLARE_METATYPE(QList<QUmlParameterableElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlParameterableElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlParameterableElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlparameterset.cpp b/src/uml/qumlparameterset.cpp
index 870ca238..7847b1d6 100644
--- a/src/uml/qumlparameterset.cpp
+++ b/src/uml/qumlparameterset.cpp
@@ -40,246 +40,112 @@
****************************************************************************/
#include "qumlparameterset.h"
-#include <QtUml/QUmlComment>
+#include "private/qumlparametersetobject_p.h"
+
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlParameterSet
+ \class QUmlParameterSet
\inmodule QtUml
\brief A parameter set is an element that provides alternative sets of inputs or outputs that a behavior may use.
*/
-
-QUmlParameterSet::QUmlParameterSet(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlParameterSet::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlParameterSet::ownedElement() const
+QUmlParameterSet::QUmlParameterSet(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlParameterSetObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlParameterSet::owner() const
+QUmlParameterSet::~QUmlParameterSet()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
+// OWNED ATTRIBUTES
/*!
- Indicates the dependencies that reference the client.
+ 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.
*/
-const QSet<QUmlDependency *> QUmlParameterSet::clientDependency() const
+const QSet<QUmlConstraint *>
+QUmlParameterSet::condition() const
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ // This is a read-write association end
-/*!
- The name of the NamedElement.
- */
-QString QUmlParameterSet::name() const
-{
- return _name;
+ return _condition;
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlParameterSet::nameExpression() const
+void QUmlParameterSet::addCondition(QUmlConstraint *condition)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-write association end
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlParameterSet::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ if (!_condition.contains(condition)) {
+ _condition.insert(condition);
+ if (condition->asQObject() && this->asQObject())
+ QObject::connect(condition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeCondition(QObject *)));
+ condition->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-QString QUmlParameterSet::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust subsetted properties
+ addOwnedElement(condition);
+ }
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlParameterSet::visibility() const
+void QUmlParameterSet::removeCondition(QUmlConstraint *condition)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [ParameterSet]
+ if (_condition.contains(condition)) {
+ _condition.remove(condition);
+ if (condition->asQObject())
+ condition->asQObject()->setParent(0);
-/*!
- 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.
- */
-const QSet<QUmlConstraint *> QUmlParameterSet::condition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_condition));
+ // Adjust subsetted properties
+ removeOwnedElement(condition);
+ }
}
/*!
Parameters in the parameter set.
*/
-const QSet<QUmlParameter *> QUmlParameterSet::parameter() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameter *> *>(&_parameter));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlParameterSet::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlParameterSet::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlParameterSet::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlParameterSet::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlParameterSet::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlParameterSet::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlParameterSet::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlParameterSet::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlParameterSet::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlParameterSet::removeClientDependency(UmlDependency *clientDependency)
+const QSet<QUmlParameter *>
+QUmlParameterSet::parameter() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlParameterSet::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlParameterSet::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _parameter;
}
-void QUmlParameterSet::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlParameterSet::addParameter(QUmlParameter *parameter)
{
- UmlNamedElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ParameterSet]
+ if (!_parameter.contains(parameter)) {
+ _parameter.insert(parameter);
+ if (parameter->asQObject() && this->asQObject())
+ QObject::connect(parameter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeParameter(QObject *)));
-void QUmlParameterSet::addCondition(UmlConstraint *condition)
-{
- UmlParameterSet::addCondition(condition);
+ // Adjust opposite properties
+ if (parameter) {
+ parameter->addParameterSet(this);
+ }
+ }
}
-void QUmlParameterSet::removeCondition(UmlConstraint *condition)
+void QUmlParameterSet::removeParameter(QUmlParameter *parameter)
{
- UmlParameterSet::removeCondition(condition);
-}
+ // This is a read-write association end
-void QUmlParameterSet::addParameter(UmlParameter *parameter)
-{
- UmlParameterSet::addParameter(parameter);
-}
+ if (_parameter.contains(parameter)) {
+ _parameter.remove(parameter);
-void QUmlParameterSet::removeParameter(UmlParameter *parameter)
-{
- UmlParameterSet::removeParameter(parameter);
+ // Adjust opposite properties
+ if (parameter) {
+ parameter->removeParameterSet(this);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlparameterset.h b/src/uml/qumlparameterset.h
index 4f5ffef1..3c9a5be4 100644
--- a/src/uml/qumlparameterset.h
+++ b/src/uml/qumlparameterset.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlparameterset_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,92 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlParameter;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlParameterSet : public QObject, public UmlParameterSet
+class Q_UML_EXPORT QUmlParameterSet : public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [ParameterSet]
- Q_PROPERTY(QSet<QUmlConstraint *> condition READ condition)
- Q_PROPERTY(QSet<QUmlParameter *> parameter READ parameter)
-
public:
- Q_INVOKABLE explicit QUmlParameterSet(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [ParameterSet]
- Q_INVOKABLE const QSet<QUmlConstraint *> condition() const;
- Q_INVOKABLE const QSet<QUmlParameter *> parameter() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [ParameterSet]
- void addCondition(UmlConstraint *condition);
- void removeCondition(UmlConstraint *condition);
- void addParameter(UmlParameter *parameter);
- void removeParameter(UmlParameter *parameter);
+ explicit QUmlParameterSet(bool createQObject = true);
+ virtual ~QUmlParameterSet();
+
+ // Owned attributes
+ const QSet<QUmlConstraint *> condition() const;
+ void addCondition(QUmlConstraint *condition);
+ void removeCondition(QUmlConstraint *condition);
+ const QSet<QUmlParameter *> parameter() const;
+ void addParameter(QUmlParameter *parameter);
+ void removeParameter(QUmlParameter *parameter);
+
+protected:
+ QSet<QUmlConstraint *> _condition;
+ QSet<QUmlParameter *> _parameter;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlParameterSet *)
-Q_DECLARE_METATYPE(QList<QUmlParameterSet *> *)
-Q_DECLARE_METATYPE(QSet<QUmlParameterSet *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlParameterSet) *)
QT_END_HEADER
diff --git a/src/uml/qumlpartdecomposition.cpp b/src/uml/qumlpartdecomposition.cpp
index 52de0064..d1dfe893 100644
--- a/src/uml/qumlpartdecomposition.cpp
+++ b/src/uml/qumlpartdecomposition.cpp
@@ -40,356 +40,27 @@
****************************************************************************/
#include "qumlpartdecomposition.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGate>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
-#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlpartdecompositionobject_p.h"
/*!
- \class UmlPartDecomposition
+ \class QUmlPartDecomposition
\inmodule QtUml
\brief A part decomposition is a description of the internal interactions of one lifeline relative to an interaction.
*/
-
-QUmlPartDecomposition::QUmlPartDecomposition(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPartDecomposition::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPartDecomposition::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlPartDecomposition::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPartDecomposition::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlPartDecomposition::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPartDecomposition::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlPartDecomposition::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlPartDecomposition::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlPartDecomposition::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- References the Lifelines that the InteractionFragment involves.
- */
-const QSet<QUmlLifeline *> QUmlPartDecomposition::covered() const
-{
- return *(reinterpret_cast<const QSet<QUmlLifeline *> *>(&_covered));
-}
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlPartDecomposition::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlPartDecomposition::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlPartDecomposition::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [InteractionUse]
-
-/*!
- The actual gates of the InteractionUse
- */
-const QSet<QUmlGate *> QUmlPartDecomposition::actualGate() const
-{
- return *(reinterpret_cast<const QSet<QUmlGate *> *>(&_actualGate));
-}
-
-/*!
- The actual arguments of the Interaction
- */
-const QList<QUmlValueSpecification *> QUmlPartDecomposition::argument() const
-{
- return *(reinterpret_cast<const QList<QUmlValueSpecification *> *>(&_argument));
-}
-
-/*!
- Refers to the Interaction that defines its meaning
- */
-QUmlInteraction *QUmlPartDecomposition::refersTo() const
-{
- return reinterpret_cast<QUmlInteraction *>(_refersTo);
-}
-
-/*!
- The value of the executed Interaction.
- */
-QUmlValueSpecification *QUmlPartDecomposition::returnValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_returnValue);
-}
-
-/*!
- The recipient of the return value.
- */
-QUmlProperty *QUmlPartDecomposition::returnValueRecipient() const
-{
- return reinterpret_cast<QUmlProperty *>(_returnValueRecipient);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPartDecomposition::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPartDecomposition::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlPartDecomposition::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPartDecomposition::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPartDecomposition::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlPartDecomposition::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlPartDecomposition::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlPartDecomposition::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlPartDecomposition::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlPartDecomposition::removeClientDependency(UmlDependency *clientDependency)
+QUmlPartDecomposition::QUmlPartDecomposition(bool createQObject) :
+ QUmlInteractionUse(false)
{
- UmlNamedElement::removeClientDependency(clientDependency);
+ if (createQObject)
+ _qObject = new QUmlPartDecompositionObject(this);
}
-void QUmlPartDecomposition::setName(QString name)
+QUmlPartDecomposition::~QUmlPartDecomposition()
{
- UmlNamedElement::setName(name);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-void QUmlPartDecomposition::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlPartDecomposition::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlPartDecomposition::addCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::addCovered(covered);
-}
-
-void QUmlPartDecomposition::removeCovered(UmlLifeline *covered)
-{
- UmlInteractionFragment::removeCovered(covered);
-}
-
-void QUmlPartDecomposition::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlPartDecomposition::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlPartDecomposition::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlPartDecomposition::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionUse]
-
-void QUmlPartDecomposition::addActualGate(UmlGate *actualGate)
-{
- UmlInteractionUse::addActualGate(actualGate);
-}
-
-void QUmlPartDecomposition::removeActualGate(UmlGate *actualGate)
-{
- UmlInteractionUse::removeActualGate(actualGate);
-}
-
-void QUmlPartDecomposition::addArgument(UmlValueSpecification *argument)
-{
- UmlInteractionUse::addArgument(argument);
-}
-
-void QUmlPartDecomposition::removeArgument(UmlValueSpecification *argument)
-{
- UmlInteractionUse::removeArgument(argument);
-}
-
-void QUmlPartDecomposition::setRefersTo(QUmlInteraction *refersTo)
-{
- UmlInteractionUse::setRefersTo(refersTo);
-}
-
-void QUmlPartDecomposition::setReturnValue(QUmlValueSpecification *returnValue)
-{
- UmlInteractionUse::setReturnValue(returnValue);
-}
-
-void QUmlPartDecomposition::setReturnValueRecipient(QUmlProperty *returnValueRecipient)
-{
- UmlInteractionUse::setReturnValueRecipient(returnValueRecipient);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlpartdecomposition.h b/src/uml/qumlpartdecomposition.h
index a1d73155..6688f682 100644
--- a/src/uml/qumlpartdecomposition.h
+++ b/src/uml/qumlpartdecomposition.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpartdecomposition_p.h"
+#include <QtUml/QUmlInteractionUse>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,126 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGate;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
-class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlProperty;
-class QUmlStringExpression;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlPartDecomposition : public QObject, public UmlPartDecomposition
+class Q_UML_EXPORT QUmlPartDecomposition : public QUmlInteractionUse
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QSet<QUmlLifeline *> covered READ covered)
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [InteractionUse]
- Q_PROPERTY(QSet<QUmlGate *> actualGate READ actualGate)
- Q_PROPERTY(QList<QUmlValueSpecification *> argument READ argument)
- Q_PROPERTY(QUmlInteraction * refersTo READ refersTo)
- Q_PROPERTY(QUmlValueSpecification * returnValue READ returnValue)
- Q_PROPERTY(QUmlProperty * returnValueRecipient READ returnValueRecipient)
-
public:
- Q_INVOKABLE explicit QUmlPartDecomposition(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE const QSet<QUmlLifeline *> covered() const;
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
-
- // Owned attributes [InteractionUse]
- Q_INVOKABLE const QSet<QUmlGate *> actualGate() const;
- Q_INVOKABLE const QList<QUmlValueSpecification *> argument() const;
- Q_INVOKABLE QUmlInteraction *refersTo() const;
- Q_INVOKABLE QUmlValueSpecification *returnValue() const;
- Q_INVOKABLE QUmlProperty *returnValueRecipient() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
+ explicit QUmlPartDecomposition(bool createQObject = true);
+ virtual ~QUmlPartDecomposition();
- // Slots for owned attributes [InteractionFragment]
- void addCovered(UmlLifeline *covered);
- void removeCovered(UmlLifeline *covered);
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- // Slots for owned attributes [InteractionUse]
- void addActualGate(UmlGate *actualGate);
- void removeActualGate(UmlGate *actualGate);
- void addArgument(UmlValueSpecification *argument);
- void removeArgument(UmlValueSpecification *argument);
- void setRefersTo(QUmlInteraction *refersTo);
- void setReturnValue(QUmlValueSpecification *returnValue);
- void setReturnValueRecipient(QUmlProperty *returnValueRecipient);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPartDecomposition *)
-Q_DECLARE_METATYPE(QList<QUmlPartDecomposition *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPartDecomposition *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPartDecomposition) *)
QT_END_HEADER
diff --git a/src/uml/qumlpin.cpp b/src/uml/qumlpin.cpp
index 50b61c36..82699dad 100644
--- a/src/uml/qumlpin.cpp
+++ b/src/uml/qumlpin.cpp
@@ -40,645 +40,41 @@
****************************************************************************/
#include "qumlpin.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlPin
+ \class QUmlPin
\inmodule QtUml
\brief A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.A pin is an object node for inputs and outputs to actions.
*/
-
-QUmlPin::QUmlPin(QObject *parent) :
- QObject(parent)
+QUmlPin::QUmlPin() :
+ _isControl(false)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPin::ownedComment() const
+QUmlPin::~QUmlPin()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPin::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlPin::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlPin::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlPin::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlPin::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlPin::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlPin::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlPin::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPin::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlPin::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPin::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlPin::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlPin::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlPin::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlPin::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlPin::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlPin::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlPin::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlPin::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlPin::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlPin::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlPin::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlPin::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlPin::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlPin::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlPin::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlPin::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlPin::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlPin::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlPin::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
-
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlPin::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OWNED ATTRIBUTES [Pin]
+// OWNED ATTRIBUTES
/*!
Tells whether the pins provide data to the actions, or just controls when it executes it.
*/
-bool QUmlPin::isControl() const
-{
- return _isControl;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPin::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPin::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlPin::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlPin::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlPin::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlPin::is(int lowerbound, int upperbound) const
+bool
+QUmlPin::isControl() const
{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlPin::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlPin::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-//int QUmlPin::upperBound() const
-//{
-// return UmlMultiplicityElement::upperBound();
-//}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlPin::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPin::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPin::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlPin::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlPin::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlPin::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlPin::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlPin::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlPin::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlPin::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlPin::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlPin::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
+ // This is a read-write property
-void QUmlPin::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlPin::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlPin::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlPin::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlPin::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlPin::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlPin::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlPin::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlPin::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlPin::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlPin::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlPin::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlPin::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlPin::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlPin::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlPin::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlPin::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlPin::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlPin::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlPin::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlPin::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlPin::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlPin::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlPin::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlPin::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlPin::setSelection(QUmlBehavior *selection)
-{
- UmlObjectNode::setSelection(selection);
-}
-
-void QUmlPin::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
+ return _isControl;
}
-// SLOTS FOR OWNED ATTRIBUTES [Pin]
-
void QUmlPin::setControl(bool isControl)
{
- UmlPin::setControl(isControl);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isControl != isControl) {
+ _isControl = isControl;
+ }
+}
diff --git a/src/uml/qumlpin.h b/src/uml/qumlpin.h
index 481dabe4..8963265d 100644
--- a/src/uml/qumlpin.h
+++ b/src/uml/qumlpin.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpin_p.h"
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlObjectNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,214 +53,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlPin : public QObject, public UmlPin
+class Q_UML_EXPORT QUmlPin : public QUmlMultiplicityElement, public QUmlObjectNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [Pin]
- Q_PROPERTY(bool isControl READ isControl)
-
public:
- Q_DECL_HIDDEN explicit QUmlPin(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
+ virtual ~QUmlPin();
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
-
- // Owned attributes [Pin]
- Q_INVOKABLE bool isControl() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
-// Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
+ // Owned attributes
+ bool isControl() const;
+ void setControl(bool isControl);
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
+protected:
+ explicit QUmlPin();
- // Slots for owned attributes [Pin]
- void setControl(bool isControl);
+ bool _isControl;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPin *)
-Q_DECLARE_METATYPE(QList<QUmlPin *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPin *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPin) *)
QT_END_HEADER
diff --git a/src/uml/qumlport.cpp b/src/uml/qumlport.cpp
index 87d6bebb..e35adfba 100644
--- a/src/uml/qumlport.cpp
+++ b/src/uml/qumlport.cpp
@@ -40,926 +40,229 @@
****************************************************************************/
#include "qumlport.h"
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElementTemplateParameter>
-#include <QtUml/QUmlConnectorEnd>
-#include <QtUml/QUmlDataType>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
+#include "private/qumlportobject_p.h"
+
#include <QtUml/QUmlInterface>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
#include <QtUml/QUmlProtocolStateMachine>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlPort
+ \class QUmlPort
\inmodule QtUml
\brief A port has an associated protocol state machine.A port is a property of a classifier that specifies a distinct interaction point between that classifier and its environment or between the (behavior of the) classifier and its internal parts. Ports are connected to properties of the classifier by connectors through which requests can be made to invoke the behavioral features of a classifier. A Port may specify the services a classifier provides (offers) to its environment as well as the services that a classifier expects (requires) of its environment.
*/
-
-QUmlPort::QUmlPort(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPort::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPort::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlPort::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPort::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlPort::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPort::nameExpression() const
+QUmlPort::QUmlPort(bool createQObject) :
+ QUmlProperty(false),
+ _isBehavior(false),
+ _isConjugated(false),
+ _isService(true),
+ _protocol(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlPortObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlPort::namespace_() const
+QUmlPort::~QUmlPort()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlPort::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlPort::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlPort::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlPort::isOrdered() const
-{
- return _isOrdered;
-}
+// OWNED ATTRIBUTES
/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlPort::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlPort::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlPort::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlPort::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlPort::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlPort::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlPort::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlPort::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [Feature]
-
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlPort::featuringClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
-
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlPort::isStatic() const
-{
- return _isStatic;
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlPort::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [ConnectableElement]
-
-/*!
- Denotes a set of connector ends that attaches to this connectable element.
- */
-const QList<QUmlConnectorEnd *> QUmlPort::end() const
-{
- QList<QUmlConnectorEnd *> r;
- foreach (UmlConnectorEnd *element, UmlConnectableElement::end())
- r.append(reinterpret_cast<QUmlConnectorEnd *>(element));
- return r;
-}
-
-/*!
- The ConnectableElementTemplateParameter for this ConnectableElement parameter.
- */
-QUmlConnectableElementTemplateParameter *QUmlPort::templateParameter() const
-{
- return reinterpret_cast<QUmlConnectableElementTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [DeploymentTarget]
-
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlPort::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlPort::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
-}
-
-// OWNED ATTRIBUTES [Property]
-
-/*!
- Specifies the kind of aggregation that applies to the Property.
- */
-QtUml::AggregationKind QUmlPort::aggregation() const
-{
- return _aggregation;
-}
-
-/*!
- References the association of which this property is a member, if any.
- */
-QUmlAssociation *QUmlPort::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(_association);
-}
-
-/*!
- Designates the optional association end that owns a qualifier attribute.
- */
-QUmlProperty *QUmlPort::associationEnd() const
-{
- return reinterpret_cast<QUmlProperty *>(_associationEnd);
-}
-
-/*!
- References the Class that owns the Property.References the Class that owns the Property.
- */
-QUmlClass *QUmlPort::class_() const
-{
- return reinterpret_cast<QUmlClass *>(_class_);
-}
-
-/*!
- The DataType that owns this Property.
- */
-QUmlDataType *QUmlPort::datatype() const
-{
- return reinterpret_cast<QUmlDataType *>(_datatype);
-}
-
-/*!
- Specifies a String that represents a value to be used when no argument is supplied for the Property.A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
- */
-QString QUmlPort::default_() const
-{
- return UmlProperty::default_();
-}
-
-/*!
- A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
- */
-QUmlValueSpecification *QUmlPort::defaultValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_defaultValue);
-}
-
-/*!
- References the Interface that owns the Property
- */
-QUmlInterface *QUmlPort::interface_() const
-{
- return reinterpret_cast<QUmlInterface *>(_interface_);
-}
-
-/*!
- If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.This is a derived value, indicating whether the aggregation of the Property is composite or not.
- */
-bool QUmlPort::isComposite() const
-{
- return UmlProperty::isComposite();
-}
-
-/*!
- If isDerived is true, the value of the attribute is derived from information elsewhere.Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
- */
-bool QUmlPort::isDerived() const
-{
- return _isDerived;
-}
-
-/*!
- Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.
- */
-bool QUmlPort::isDerivedUnion() const
-{
- return _isDerivedUnion;
-}
-
-/*!
- True indicates this property can be used to uniquely identify an instance of the containing Class.
- */
-bool QUmlPort::isID() const
-{
- return _isID;
-}
-
-/*!
- If true, the attribute may only be read, and not written.If isReadOnly is true, the attribute may not be written to after initialization.
+ 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.
*/
-bool QUmlPort::isReadOnly() const
+bool
+QUmlPort::isBehavior() const
{
- return _isReadOnly;
-}
+ // This is a read-write property
-/*!
- In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end.
- */
-QUmlProperty *QUmlPort::opposite() const
-{
- return reinterpret_cast<QUmlProperty *>(UmlProperty::opposite());
+ return _isBehavior;
}
-/*!
- References the owning association of this property, if any.
- */
-QUmlAssociation *QUmlPort::owningAssociation() const
+void QUmlPort::setBehavior(bool isBehavior)
{
- return reinterpret_cast<QUmlAssociation *>(_owningAssociation);
-}
+ // This is a read-write property
-/*!
- An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified.
- */
-const QList<QUmlProperty *> QUmlPort::qualifier() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_qualifier));
+ if (_isBehavior != isBehavior) {
+ _isBehavior = isBehavior;
+ }
}
/*!
- References the properties that are redefined by this property.
+ Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false.
*/
-const QSet<QUmlProperty *> QUmlPort::redefinedProperty() const
+bool
+QUmlPort::isConjugated() const
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_redefinedProperty));
-}
+ // This is a read-write property
-/*!
- References the properties of which this property is constrained to be a subset.
- */
-const QSet<QUmlProperty *> QUmlPort::subsettedProperty() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_subsettedProperty));
+ return _isConjugated;
}
-// OWNED ATTRIBUTES [Port]
-
-/*!
- 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.
- */
-bool QUmlPort::isBehavior() const
+void QUmlPort::setConjugated(bool isConjugated)
{
- return _isBehavior;
-}
+ // This is a read-write property
-/*!
- Specifies the way that the provided and required interfaces are derived from the Port’s Type. The default value is false.
- */
-bool QUmlPort::isConjugated() const
-{
- return _isConjugated;
+ if (_isConjugated != isConjugated) {
+ _isConjugated = isConjugated;
+ }
}
/*!
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.
*/
-bool QUmlPort::isService() const
+bool
+QUmlPort::isService() const
{
+ // This is a read-write property
+
return _isService;
}
-/*!
- References an optional protocol state machine which describes valid interactions at this interaction point.
- */
-QUmlProtocolStateMachine *QUmlPort::protocol() const
+void QUmlPort::setService(bool isService)
{
- return reinterpret_cast<QUmlProtocolStateMachine *>(_protocol);
-}
+ // This is a read-write property
-/*!
- References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes.
- */
-const QSet<QUmlInterface *> QUmlPort::provided() const
-{
- QSet<QUmlInterface *> r;
- foreach (UmlInterface *element, UmlPort::provided())
- r.insert(reinterpret_cast<QUmlInterface *>(element));
- return r;
+ if (_isService != isService) {
+ _isService = isService;
+ }
}
/*!
- A port may be redefined when its containing classifier is specialized. The redefining port may have additional interfaces to those that are associated with the redefined port or it may replace an interface by one of its subtypes.
+ References an optional protocol state machine which describes valid interactions at this interaction point.
*/
-const QSet<QUmlPort *> QUmlPort::redefinedPort() const
+QUmlProtocolStateMachine *
+QUmlPort::protocol() const
{
- return *(reinterpret_cast<const QSet<QUmlPort *> *>(&_redefinedPort));
-}
+ // This is a read-write association end
-/*!
- References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface.
- */
-const QSet<QUmlInterface *> QUmlPort::required() const
-{
- QSet<QUmlInterface *> r;
- foreach (UmlInterface *element, UmlPort::required())
- r.insert(reinterpret_cast<QUmlInterface *>(element));
- return r;
+ return _protocol;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPort::allOwnedElements() const
+void QUmlPort::setProtocol(QUmlProtocolStateMachine *protocol)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlPort::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ if (_protocol != protocol) {
+ _protocol = protocol;
+ if (protocol->asQObject() && this->asQObject())
+ QObject::connect(protocol->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setProtocol()));
+ }
}
-// OPERATIONS [NamedElement]
-
/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
+ References the interfaces specifying the set of operations and receptions that the classifier offers to its environment via this port, and which it will handle either directly or by forwarding it to a part of its internal structure. This association is derived according to the value of isConjugated. If isConjugated is false, provided is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface. If isConjugated is true, it is derived as the union of the sets of interfaces used by the type of the port and its supertypes.
*/
-QList<QUmlNamespace *> QUmlPort::allNamespaces() const
+const QSet<QUmlInterface *>
+QUmlPort::provided() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPort::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ qWarning("UmlPort::provided(): to be implemented (this is a derived association end)");
-/*!
- 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.
- */
-bool QUmlPort::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return QSet<QUmlInterface *>();
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlPort::separator() const
+void QUmlPort::addProvided(QUmlInterface *provided)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-only derived association end
-// OPERATIONS [MultiplicityElement]
+ qWarning("UmlPort::provided(): to be implemented (this is a derived association end)");
+ Q_UNUSED(provided);
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlPort::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlPort::includesCardinality(int C) const
+void QUmlPort::removeProvided(QUmlInterface *provided)
{
- return UmlMultiplicityElement::includesCardinality(C);
-}
+ // This is a read-only derived association end
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlPort::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlPort::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
+ qWarning("UmlPort::provided(): to be implemented (this is a derived association end)");
+ Q_UNUSED(provided);
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlPort::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlPort::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
+ 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.
*/
-int QUmlPort::upperBound() const
+const QSet<QUmlPort *>
+QUmlPort::redefinedPort() const
{
- return UmlMultiplicityElement::upperBound();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlPort::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ return _redefinedPort;
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlPort::isTemplateParameter() const
+void QUmlPort::addRedefinedPort(QUmlPort *redefinedPort)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Property]
+ if (!_redefinedPort.contains(redefinedPort)) {
+ _redefinedPort.insert(redefinedPort);
+ if (redefinedPort->asQObject() && this->asQObject())
+ QObject::connect(redefinedPort->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedPort(QObject *)));
-/*!
- The query isAttribute() is true if the Property is defined as an attribute of some classifier.
- */
-bool QUmlPort::isAttribute(QUmlProperty *p) const
-{
- return UmlProperty::isAttribute(p);
+ // Adjust subsetted properties
+ addRedefinedProperty(redefinedPort);
+ }
}
-/*!
- 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 properties, the type must be conformant with the type of the specified parameterable element.
- */
-bool QUmlPort::isCompatibleWith(QUmlParameterableElement *p) const
+void QUmlPort::removeRedefinedPort(QUmlPort *redefinedPort)
{
- return UmlProperty::isCompatibleWith(p);
-}
+ // This is a read-write association end
-/*!
- 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.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, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.
- */
-bool QUmlPort::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlProperty::isConsistentWith(redefinee);
-}
+ if (_redefinedPort.contains(redefinedPort)) {
+ _redefinedPort.remove(redefinedPort);
-/*!
- The query isNavigable() indicates whether it is possible to navigate across the property.
- */
-bool QUmlPort::isNavigable() const
-{
- return UmlProperty::isNavigable();
+ // Adjust subsetted properties
+ removeRedefinedProperty(redefinedPort);
+ }
}
/*!
- 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.
+ References the interfaces specifying the set of operations and receptions that the classifier expects its environment to handle via this port. This association is derived according to the value of isConjugated. If isConjugated is false, required is derived as the union of the sets of interfaces used by the type of the port and its supertypes. If isConjugated is true, it is derived as the union of the sets of interfaces realized by the type of the port and its supertypes, or directly from the type of the port if the port is typed by an interface.
*/
-QSet<QUmlType *> QUmlPort::subsettingContext() const
+const QSet<QUmlInterface *>
+QUmlPort::required() const
{
- QSet<QUmlType *> r;
- foreach (UmlType *element, UmlProperty::subsettingContext())
- r.insert(reinterpret_cast<QUmlType *>(element));
- return r;
-}
+ // This is a read-only derived association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ qWarning("UmlPort::required(): to be implemented (this is a derived association end)");
-void QUmlPort::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return QSet<QUmlInterface *>();
}
-void QUmlPort::removeOwnedComment(UmlComment *ownedComment)
+void QUmlPort::addRequired(QUmlInterface *required)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlPort::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlPort::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlPort::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlPort::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-only derived association end
-void QUmlPort::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlPort::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+ qWarning("UmlPort::required(): to be implemented (this is a derived association end)");
+ Q_UNUSED(required);
-void QUmlPort::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlPort::setUnique(bool isUnique)
+void QUmlPort::removeRequired(QUmlInterface *required)
{
- UmlMultiplicityElement::setUnique(isUnique);
-}
+ // This is a read-only derived association end
-void QUmlPort::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
+ qWarning("UmlPort::required(): to be implemented (this is a derived association end)");
+ Q_UNUSED(required);
-void QUmlPort::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlPort::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlPort::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlPort::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlPort::setStatic(bool isStatic)
-{
- UmlFeature::setStatic(isStatic);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlPort::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
-
-void QUmlPort::setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter)
-{
- UmlConnectableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
-
-void QUmlPort::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
-}
-
-void QUmlPort::removeDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Property]
-
-void QUmlPort::setAggregation(QtUml::AggregationKind aggregation)
-{
- UmlProperty::setAggregation(aggregation);
-}
-
-void QUmlPort::setAssociation(QUmlAssociation *association)
-{
- UmlProperty::setAssociation(association);
-}
-
-void QUmlPort::setAssociationEnd(QUmlProperty *associationEnd)
-{
- UmlProperty::setAssociationEnd(associationEnd);
-}
-
-void QUmlPort::setClass(QUmlClass *class_)
-{
- UmlProperty::setClass(class_);
-}
-
-void QUmlPort::setDatatype(QUmlDataType *datatype)
-{
- UmlProperty::setDatatype(datatype);
-}
-
-void QUmlPort::setDefault(QString default_)
-{
- UmlProperty::setDefault(default_);
-}
-
-void QUmlPort::setDefaultValue(QUmlValueSpecification *defaultValue)
-{
- UmlProperty::setDefaultValue(defaultValue);
-}
-
-void QUmlPort::setInterface(QUmlInterface *interface_)
-{
- UmlProperty::setInterface(interface_);
-}
-
-void QUmlPort::setComposite(bool isComposite)
-{
- UmlProperty::setComposite(isComposite);
-}
-
-void QUmlPort::setDerived(bool isDerived)
-{
- UmlProperty::setDerived(isDerived);
-}
-
-void QUmlPort::setDerivedUnion(bool isDerivedUnion)
-{
- UmlProperty::setDerivedUnion(isDerivedUnion);
-}
-
-void QUmlPort::setID(bool isID)
-{
- UmlProperty::setID(isID);
-}
-
-void QUmlPort::setReadOnly(bool isReadOnly)
-{
- UmlProperty::setReadOnly(isReadOnly);
-}
-
-void QUmlPort::setOpposite(QUmlProperty *opposite)
-{
- UmlProperty::setOpposite(opposite);
-}
-
-void QUmlPort::setOwningAssociation(QUmlAssociation *owningAssociation)
-{
- UmlProperty::setOwningAssociation(owningAssociation);
-}
-
-void QUmlPort::addQualifier(UmlProperty *qualifier)
-{
- UmlProperty::addQualifier(qualifier);
-}
-
-void QUmlPort::removeQualifier(UmlProperty *qualifier)
-{
- UmlProperty::removeQualifier(qualifier);
-}
-
-void QUmlPort::addRedefinedProperty(UmlProperty *redefinedProperty)
-{
- UmlProperty::addRedefinedProperty(redefinedProperty);
-}
-
-void QUmlPort::removeRedefinedProperty(UmlProperty *redefinedProperty)
-{
- UmlProperty::removeRedefinedProperty(redefinedProperty);
-}
-
-void QUmlPort::addSubsettedProperty(UmlProperty *subsettedProperty)
-{
- UmlProperty::addSubsettedProperty(subsettedProperty);
-}
-
-void QUmlPort::removeSubsettedProperty(UmlProperty *subsettedProperty)
-{
- UmlProperty::removeSubsettedProperty(subsettedProperty);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Port]
-
-void QUmlPort::setBehavior(bool isBehavior)
-{
- UmlPort::setBehavior(isBehavior);
-}
-
-void QUmlPort::setConjugated(bool isConjugated)
-{
- UmlPort::setConjugated(isConjugated);
-}
-
-void QUmlPort::setService(bool isService)
-{
- UmlPort::setService(isService);
-}
-
-void QUmlPort::setProtocol(QUmlProtocolStateMachine *protocol)
-{
- UmlPort::setProtocol(protocol);
-}
-
-void QUmlPort::addRedefinedPort(UmlPort *redefinedPort)
-{
- UmlPort::addRedefinedPort(redefinedPort);
-}
-
-void QUmlPort::removeRedefinedPort(UmlPort *redefinedPort)
-{
- UmlPort::removeRedefinedPort(redefinedPort);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlport.h b/src/uml/qumlport.h
index f3e04df4..efecfc9a 100644
--- a/src/uml/qumlport.h
+++ b/src/uml/qumlport.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlport_p.h"
+#include <QtUml/QUmlProperty>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,299 +52,45 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlAssociation;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConnectableElementTemplateParameter;
-class QUmlConnectorEnd;
-class QUmlDataType;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
class QUmlInterface;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlParameterableElement;
-class QUmlProperty;
class QUmlProtocolStateMachine;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlPort : public QObject, public UmlPort
+class Q_UML_EXPORT QUmlPort : public QUmlProperty
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [StructuralFeature]
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [ConnectableElement]
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QUmlConnectableElementTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [Property]
- Q_PROPERTY(QtUml::AggregationKind aggregation READ aggregation)
- Q_PROPERTY(QUmlAssociation * association READ association)
- Q_PROPERTY(QUmlProperty * associationEnd READ associationEnd)
- Q_PROPERTY(QUmlClass * class_ READ class_)
- Q_PROPERTY(QUmlDataType * datatype READ datatype)
- Q_PROPERTY(QString default_ READ default_)
- Q_PROPERTY(QUmlValueSpecification * defaultValue READ defaultValue)
- Q_PROPERTY(QUmlInterface * interface_ READ interface_)
- Q_PROPERTY(bool isComposite READ isComposite)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(bool isDerivedUnion READ isDerivedUnion)
- Q_PROPERTY(bool isID READ isID)
- Q_PROPERTY(bool isReadOnly READ isReadOnly)
- Q_PROPERTY(QUmlProperty * opposite READ opposite)
- Q_PROPERTY(QUmlAssociation * owningAssociation READ owningAssociation)
- Q_PROPERTY(QList<QUmlProperty *> qualifier READ qualifier)
- Q_PROPERTY(QSet<QUmlProperty *> redefinedProperty READ redefinedProperty)
- Q_PROPERTY(QSet<QUmlProperty *> subsettedProperty READ subsettedProperty)
-
- // Properties [Port]
- Q_PROPERTY(bool isBehavior READ isBehavior)
- Q_PROPERTY(bool isConjugated READ isConjugated)
- Q_PROPERTY(bool isService READ isService)
- Q_PROPERTY(QUmlProtocolStateMachine * protocol READ protocol)
- Q_PROPERTY(QSet<QUmlInterface *> provided READ provided)
- Q_PROPERTY(QSet<QUmlPort *> redefinedPort READ redefinedPort)
- Q_PROPERTY(QSet<QUmlInterface *> required READ required)
-
public:
- Q_INVOKABLE explicit QUmlPort(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [StructuralFeature]
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [ConnectableElement]
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QUmlConnectableElementTemplateParameter *templateParameter() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Owned attributes [Property]
- Q_INVOKABLE QtUml::AggregationKind aggregation() const;
- Q_INVOKABLE QUmlAssociation *association() const;
- Q_INVOKABLE QUmlProperty *associationEnd() const;
- Q_INVOKABLE QUmlClass *class_() const;
- Q_INVOKABLE QUmlDataType *datatype() const;
- Q_INVOKABLE QString default_() const;
- Q_INVOKABLE QUmlValueSpecification *defaultValue() const;
- Q_INVOKABLE QUmlInterface *interface_() const;
- Q_INVOKABLE bool isComposite() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE bool isDerivedUnion() const;
- Q_INVOKABLE bool isID() const;
- Q_INVOKABLE bool isReadOnly() const;
- Q_INVOKABLE QUmlProperty *opposite() const;
- Q_INVOKABLE QUmlAssociation *owningAssociation() const;
- Q_INVOKABLE const QList<QUmlProperty *> qualifier() const;
- Q_INVOKABLE const QSet<QUmlProperty *> redefinedProperty() const;
- Q_INVOKABLE const QSet<QUmlProperty *> subsettedProperty() const;
-
- // Owned attributes [Port]
- Q_INVOKABLE bool isBehavior() const;
- Q_INVOKABLE bool isConjugated() const;
- Q_INVOKABLE bool isService() const;
- Q_INVOKABLE QUmlProtocolStateMachine *protocol() const;
- Q_INVOKABLE const QSet<QUmlInterface *> provided() const;
- Q_INVOKABLE const QSet<QUmlPort *> redefinedPort() const;
- Q_INVOKABLE const QSet<QUmlInterface *> required() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Property]
- Q_INVOKABLE bool isAttribute(QUmlProperty *p) const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isNavigable() const;
- Q_INVOKABLE QSet<QUmlType *> subsettingContext() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [StructuralFeature]
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [ConnectableElement]
- void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
-
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
-
- // Slots for owned attributes [Property]
- void setAggregation(QtUml::AggregationKind aggregation);
- void setAssociation(QUmlAssociation *association);
- void setAssociationEnd(QUmlProperty *associationEnd);
- void setClass(QUmlClass *class_);
- void setDatatype(QUmlDataType *datatype);
- void setDefault(QString default_);
- void setDefaultValue(QUmlValueSpecification *defaultValue);
- void setInterface(QUmlInterface *interface_);
- void setComposite(bool isComposite);
- void setDerived(bool isDerived);
- void setDerivedUnion(bool isDerivedUnion);
- void setID(bool isID);
- void setReadOnly(bool isReadOnly);
- void setOpposite(QUmlProperty *opposite);
- void setOwningAssociation(QUmlAssociation *owningAssociation);
- void addQualifier(UmlProperty *qualifier);
- void removeQualifier(UmlProperty *qualifier);
- void addRedefinedProperty(UmlProperty *redefinedProperty);
- void removeRedefinedProperty(UmlProperty *redefinedProperty);
- void addSubsettedProperty(UmlProperty *subsettedProperty);
- void removeSubsettedProperty(UmlProperty *subsettedProperty);
+ explicit QUmlPort(bool createQObject = true);
+ virtual ~QUmlPort();
- // Slots for owned attributes [Port]
+ // Owned attributes
+ bool isBehavior() const;
void setBehavior(bool isBehavior);
+ bool isConjugated() const;
void setConjugated(bool isConjugated);
+ bool isService() const;
void setService(bool isService);
+ QUmlProtocolStateMachine *protocol() const;
void setProtocol(QUmlProtocolStateMachine *protocol);
- void addRedefinedPort(UmlPort *redefinedPort);
- void removeRedefinedPort(UmlPort *redefinedPort);
+ const QSet<QUmlInterface *> provided() const;
+ Q_DECL_HIDDEN void addProvided(QUmlInterface *provided);
+ Q_DECL_HIDDEN void removeProvided(QUmlInterface *provided);
+ const QSet<QUmlPort *> redefinedPort() const;
+ void addRedefinedPort(QUmlPort *redefinedPort);
+ void removeRedefinedPort(QUmlPort *redefinedPort);
+ const QSet<QUmlInterface *> required() const;
+ Q_DECL_HIDDEN void addRequired(QUmlInterface *required);
+ Q_DECL_HIDDEN void removeRequired(QUmlInterface *required);
+
+protected:
+ bool _isBehavior;
+ bool _isConjugated;
+ bool _isService;
+ QUmlProtocolStateMachine *_protocol;
+ QSet<QUmlPort *> _redefinedPort;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPort *)
-Q_DECLARE_METATYPE(QList<QUmlPort *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPort *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPort) *)
QT_END_HEADER
diff --git a/src/uml/qumlprimitivetype.cpp b/src/uml/qumlprimitivetype.cpp
index 169c57c1..49774f8a 100644
--- a/src/uml/qumlprimitivetype.cpp
+++ b/src/uml/qumlprimitivetype.cpp
@@ -40,863 +40,27 @@
****************************************************************************/
#include "qumlprimitivetype.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlprimitivetypeobject_p.h"
/*!
- \class UmlPrimitiveType
+ \class QUmlPrimitiveType
\inmodule QtUml
\brief A primitive type defines a predefined data type, without any relevant substructure (i.e., it has no parts in the context of UML). A primitive datatype may have an algebra and operations defined outside of UML, for example, mathematically.
*/
-
-QUmlPrimitiveType::QUmlPrimitiveType(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPrimitiveType::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPrimitiveType::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlPrimitiveType::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPrimitiveType::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlPrimitiveType::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPrimitiveType::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlPrimitiveType::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlPrimitiveType::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlPrimitiveType::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlPrimitiveType::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlPrimitiveType::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlPrimitiveType::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlPrimitiveType::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlPrimitiveType::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlPrimitiveType::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlPrimitiveType::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlPrimitiveType::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlPrimitiveType::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlPrimitiveType::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlPrimitiveType::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlPrimitiveType::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlPrimitiveType::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlPrimitiveType::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlPrimitiveType::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlPrimitiveType::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlPrimitiveType::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlPrimitiveType::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlPrimitiveType::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlPrimitiveType::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlPrimitiveType::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlPrimitiveType::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlPrimitiveType::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlPrimitiveType::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlPrimitiveType::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlPrimitiveType::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlPrimitiveType::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [DataType]
-
-/*!
- The Attributes owned by the DataType.
- */
-const QList<QUmlProperty *> QUmlPrimitiveType::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The Operations owned by the DataType.
- */
-const QList<QUmlOperation *> QUmlPrimitiveType::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlPrimitiveType::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlPrimitiveType::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPrimitiveType::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlPrimitiveType::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlPrimitiveType::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlPrimitiveType::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlPrimitiveType::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlPrimitiveType::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlPrimitiveType::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlPrimitiveType::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlPrimitiveType::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlPrimitiveType::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlPrimitiveType::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlPrimitiveType::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlPrimitiveType::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlPrimitiveType::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlPrimitiveType::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [DataType]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlPrimitiveType::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlDataType::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlPrimitiveType::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlPrimitiveType::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlPrimitiveType::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlPrimitiveType::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlPrimitiveType::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlPrimitiveType::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlPrimitiveType::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlPrimitiveType::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlPrimitiveType::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlPrimitiveType::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlPrimitiveType::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlPrimitiveType::removePackageImport(UmlPackageImport *packageImport)
+QUmlPrimitiveType::QUmlPrimitiveType(bool createQObject) :
+ QUmlDataType(false)
{
- UmlNamespace::removePackageImport(packageImport);
+ if (createQObject)
+ _qObject = new QUmlPrimitiveTypeObject(this);
}
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlPrimitiveType::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+QUmlPrimitiveType::~QUmlPrimitiveType()
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlPrimitiveType::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlPrimitiveType::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlPrimitiveType::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlPrimitiveType::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlPrimitiveType::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlPrimitiveType::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlPrimitiveType::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlPrimitiveType::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlPrimitiveType::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlPrimitiveType::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlPrimitiveType::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlPrimitiveType::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlPrimitiveType::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlPrimitiveType::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlPrimitiveType::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlPrimitiveType::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlPrimitiveType::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlPrimitiveType::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlPrimitiveType::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlPrimitiveType::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlPrimitiveType::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlPrimitiveType::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlPrimitiveType::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlPrimitiveType::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlPrimitiveType::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlPrimitiveType::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DataType]
-
-void QUmlPrimitiveType::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlDataType::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlPrimitiveType::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlDataType::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlPrimitiveType::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlDataType::addOwnedOperation(ownedOperation);
-}
-
-void QUmlPrimitiveType::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlDataType::removeOwnedOperation(ownedOperation);
-}
-
-QT_END_NAMESPACE
diff --git a/src/uml/qumlprimitivetype.h b/src/uml/qumlprimitivetype.h
index 5a69b4d6..26516baa 100644
--- a/src/uml/qumlprimitivetype.h
+++ b/src/uml/qumlprimitivetype.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlprimitivetype_p.h"
+#include <QtUml/QUmlDataType>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,273 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-
-class Q_UML_EXPORT QUmlPrimitiveType : public QObject, public UmlPrimitiveType
+class Q_UML_EXPORT QUmlPrimitiveType : public QUmlDataType
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [DataType]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
-
public:
- Q_INVOKABLE explicit QUmlPrimitiveType(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [DataType]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [DataType]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ explicit QUmlPrimitiveType(bool createQObject = true);
+ virtual ~QUmlPrimitiveType();
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
- // Slots for owned attributes [DataType]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPrimitiveType *)
-Q_DECLARE_METATYPE(QList<QUmlPrimitiveType *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPrimitiveType *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPrimitiveType) *)
QT_END_HEADER
diff --git a/src/uml/qumlprofile.cpp b/src/uml/qumlprofile.cpp
index 1ec437c9..c8f2b056 100644
--- a/src/uml/qumlprofile.cpp
+++ b/src/uml/qumlprofile.cpp
@@ -40,663 +40,112 @@
****************************************************************************/
#include "qumlprofile.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
+#include "private/qumlprofileobject_p.h"
+
#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlPackageMerge>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProfileApplication>
-#include <QtUml/QUmlStereotype>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlProfile
+ \class QUmlProfile
\inmodule QtUml
\brief A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain.
*/
-
-QUmlProfile::QUmlProfile(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlProfile::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlProfile::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlProfile::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlProfile::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlProfile::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlProfile::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlProfile::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlProfile::qualifiedName() const
+QUmlProfile::QUmlProfile(bool createQObject) :
+ QUmlPackage(false)
{
- return UmlNamedElement::qualifiedName();
+ if (createQObject)
+ _qObject = new QUmlProfileObject(this);
}
-// OWNED ATTRIBUTES [Namespace]
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlProfile::elementImport() const
+QUmlProfile::~QUmlProfile()
{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlProfile::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlProfile::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlProfile::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlProfile::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlProfile::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlProfile::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlProfile::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlProfile::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlTemplateSignature *QUmlProfile::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlProfile::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Package]
-
-/*!
- Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules.
- */
-QString QUmlProfile::URI() const
-{
- return _URI;
-}
-
-/*!
- References the packaged elements that are Packages.
- */
-const QSet<QUmlPackage *> QUmlProfile::nestedPackage() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlPackage::nestedPackage())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- References the Package that owns this Package.
- */
-QUmlPackage *QUmlProfile::nestingPackage() const
-{
- return reinterpret_cast<QUmlPackage *>(_nestingPackage);
-}
-
-/*!
- References the Stereotypes that are owned by the Package
- */
-const QSet<QUmlStereotype *> QUmlProfile::ownedStereotype() const
-{
- QSet<QUmlStereotype *> r;
- foreach (UmlStereotype *element, UmlPackage::ownedStereotype())
- r.insert(reinterpret_cast<QUmlStereotype *>(element));
- return r;
-}
-
-/*!
- References the packaged elements that are Types.
- */
-const QSet<QUmlType *> QUmlProfile::ownedType() const
-{
- QSet<QUmlType *> r;
- foreach (UmlType *element, UmlPackage::ownedType())
- r.insert(reinterpret_cast<QUmlType *>(element));
- return r;
-}
-
-/*!
- References the PackageMerges that are owned by this Package.
- */
-const QSet<QUmlPackageMerge *> QUmlProfile::packageMerge() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageMerge *> *>(&_packageMerge));
-}
-
-/*!
- Specifies the packageable elements that are owned by this Package.
- */
-const QSet<QUmlPackageableElement *> QUmlProfile::packagedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageableElement *> *>(&_packagedElement));
-}
-
-/*!
- References the ProfileApplications that indicate which profiles have been applied to the Package.
- */
-const QSet<QUmlProfileApplication *> QUmlProfile::profileApplication() const
-{
- return *(reinterpret_cast<const QSet<QUmlProfileApplication *> *>(&_profileApplication));
-}
-
-// OWNED ATTRIBUTES [Profile]
+// OWNED ATTRIBUTES
/*!
References a metaclass that may be extended.
*/
-const QSet<QUmlElementImport *> QUmlProfile::metaclassReference() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_metaclassReference));
-}
-
-/*!
- References a package containing (directly or indirectly) metaclasses that may be extended.
- */
-const QSet<QUmlPackageImport *> QUmlProfile::metamodelReference() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_metamodelReference));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlProfile::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlProfile::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlProfile::allOwningPackages() const
+const QSet<QUmlElementImport *>
+QUmlProfile::metaclassReference() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlProfile::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlProfile::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlProfile::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlProfile::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlProfile::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlProfile::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlProfile::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlProfile::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [TemplateableElement]
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlProfile::isTemplate() const
-{
- return UmlTemplateableElement::isTemplate();
+ return _metaclassReference;
}
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlProfile::parameterableElements() const
+void QUmlProfile::addMetaclassReference(QUmlElementImport *metaclassReference)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Package]
+ if (!_metaclassReference.contains(metaclassReference)) {
+ _metaclassReference.insert(metaclassReference);
+ if (metaclassReference->asQObject() && this->asQObject())
+ QObject::connect(metaclassReference->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMetaclassReference(QObject *)));
+ metaclassReference->asQObject()->setParent(this->asQObject());
-/*!
- The query allApplicableStereotypes() returns all the directly or indirectly owned stereotypes, including stereotypes contained in sub-profiles.
- */
-QSet<QUmlStereotype *> QUmlProfile::allApplicableStereotypes() const
-{
- QSet<QUmlStereotype *> r;
- foreach (UmlStereotype *element, UmlPackage::allApplicableStereotypes())
- r.insert(reinterpret_cast<QUmlStereotype *>(element));
- return r;
+ // Adjust subsetted properties
+ addElementImport(metaclassReference);
+ }
}
-/*!
- The query containingProfile() returns the closest profile directly or indirectly containing this package (or this package itself, if it is a profile).
- */
-QUmlProfile *QUmlProfile::containingProfile() const
+void QUmlProfile::removeMetaclassReference(QUmlElementImport *metaclassReference)
{
- return reinterpret_cast<QUmlProfile *>(UmlPackage::containingProfile());
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlProfile::makesVisible(QUmlNamedElement *el) const
-{
- return UmlPackage::makesVisible(el);
-}
+ if (_metaclassReference.contains(metaclassReference)) {
+ _metaclassReference.remove(metaclassReference);
+ if (metaclassReference->asQObject())
+ metaclassReference->asQObject()->setParent(0);
-/*!
- The query mustBeOwned() indicates whether elements of this type must have an owner.
- */
-bool QUmlProfile::mustBeOwned() const
-{
- return UmlPackage::mustBeOwned();
+ // Adjust subsetted properties
+ removeElementImport(metaclassReference);
+ }
}
/*!
- The query visibleMembers() defines which members of a Package can be accessed outside it.
+ References a package containing (directly or indirectly) metaclasses that may be extended.
*/
-QSet<QUmlPackageableElement *> QUmlProfile::visibleMembers() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlPackage::visibleMembers())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlProfile::addOwnedComment(UmlComment *ownedComment)
+const QSet<QUmlPackageImport *>
+QUmlProfile::metamodelReference() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlProfile::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlProfile::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ return _metamodelReference;
}
-void QUmlProfile::removeClientDependency(UmlDependency *clientDependency)
+void QUmlProfile::addMetamodelReference(QUmlPackageImport *metamodelReference)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlProfile::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ if (!_metamodelReference.contains(metamodelReference)) {
+ _metamodelReference.insert(metamodelReference);
+ if (metamodelReference->asQObject() && this->asQObject())
+ QObject::connect(metamodelReference->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeMetamodelReference(QObject *)));
+ metamodelReference->asQObject()->setParent(this->asQObject());
-void QUmlProfile::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ // Adjust subsetted properties
+ addPackageImport(metamodelReference);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-void QUmlProfile::addElementImport(UmlElementImport *elementImport)
+void QUmlProfile::removeMetamodelReference(QUmlPackageImport *metamodelReference)
{
- UmlNamespace::addElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlProfile::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
+ if (_metamodelReference.contains(metamodelReference)) {
+ _metamodelReference.remove(metamodelReference);
+ if (metamodelReference->asQObject())
+ metamodelReference->asQObject()->setParent(0);
-void QUmlProfile::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
+ // Adjust subsetted properties
+ removePackageImport(metamodelReference);
+ }
}
-void QUmlProfile::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlProfile::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlProfile::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlProfile::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlProfile::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlProfile::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlProfile::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
-{
- UmlTemplateableElement::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlProfile::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlProfile::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Package]
-
-void QUmlProfile::setURI(QString URI)
-{
- UmlPackage::setURI(URI);
-}
-
-void QUmlProfile::addNestedPackage(UmlPackage *nestedPackage)
-{
- UmlPackage::addNestedPackage(nestedPackage);
-}
-
-void QUmlProfile::removeNestedPackage(UmlPackage *nestedPackage)
-{
- UmlPackage::removeNestedPackage(nestedPackage);
-}
-
-void QUmlProfile::setNestingPackage(QUmlPackage *nestingPackage)
-{
- UmlPackage::setNestingPackage(nestingPackage);
-}
-
-void QUmlProfile::addOwnedType(UmlType *ownedType)
-{
- UmlPackage::addOwnedType(ownedType);
-}
-
-void QUmlProfile::removeOwnedType(UmlType *ownedType)
-{
- UmlPackage::removeOwnedType(ownedType);
-}
-
-void QUmlProfile::addPackageMerge(UmlPackageMerge *packageMerge)
-{
- UmlPackage::addPackageMerge(packageMerge);
-}
-
-void QUmlProfile::removePackageMerge(UmlPackageMerge *packageMerge)
-{
- UmlPackage::removePackageMerge(packageMerge);
-}
-
-void QUmlProfile::addPackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlPackage::addPackagedElement(packagedElement);
-}
-
-void QUmlProfile::removePackagedElement(UmlPackageableElement *packagedElement)
-{
- UmlPackage::removePackagedElement(packagedElement);
-}
-
-void QUmlProfile::addProfileApplication(UmlProfileApplication *profileApplication)
-{
- UmlPackage::addProfileApplication(profileApplication);
-}
-
-void QUmlProfile::removeProfileApplication(UmlProfileApplication *profileApplication)
-{
- UmlPackage::removeProfileApplication(profileApplication);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Profile]
-
-void QUmlProfile::addMetaclassReference(UmlElementImport *metaclassReference)
-{
- UmlProfile::addMetaclassReference(metaclassReference);
-}
-
-void QUmlProfile::removeMetaclassReference(UmlElementImport *metaclassReference)
-{
- UmlProfile::removeMetaclassReference(metaclassReference);
-}
-
-void QUmlProfile::addMetamodelReference(UmlPackageImport *metamodelReference)
-{
- UmlProfile::addMetamodelReference(metamodelReference);
-}
-
-void QUmlProfile::removeMetamodelReference(UmlPackageImport *metamodelReference)
-{
- UmlProfile::removeMetamodelReference(metamodelReference);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlprofile.h b/src/uml/qumlprofile.h
index e5978a52..da39554b 100644
--- a/src/uml/qumlprofile.h
+++ b/src/uml/qumlprofile.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlprofile_p.h"
+#include <QtUml/QUmlPackage>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,211 +52,31 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
class QUmlPackageImport;
-class QUmlPackageMerge;
-class QUmlParameterableElement;
-class QUmlProfileApplication;
-class QUmlStereotype;
-class QUmlStringExpression;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class Q_UML_EXPORT QUmlProfile : public QObject, public UmlProfile
+class Q_UML_EXPORT QUmlProfile : public QUmlPackage
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QUmlTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Package]
- Q_PROPERTY(QString URI READ URI)
- Q_PROPERTY(QSet<QUmlPackage *> nestedPackage READ nestedPackage)
- Q_PROPERTY(QUmlPackage * nestingPackage READ nestingPackage)
- Q_PROPERTY(QSet<QUmlStereotype *> ownedStereotype READ ownedStereotype)
- Q_PROPERTY(QSet<QUmlType *> ownedType READ ownedType)
- Q_PROPERTY(QSet<QUmlPackageMerge *> packageMerge READ packageMerge)
- Q_PROPERTY(QSet<QUmlPackageableElement *> packagedElement READ packagedElement)
- Q_PROPERTY(QSet<QUmlProfileApplication *> profileApplication READ profileApplication)
-
- // Properties [Profile]
- Q_PROPERTY(QSet<QUmlElementImport *> metaclassReference READ metaclassReference)
- Q_PROPERTY(QSet<QUmlPackageImport *> metamodelReference READ metamodelReference)
-
public:
- Q_INVOKABLE explicit QUmlProfile(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE QUmlTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Package]
- Q_INVOKABLE QString URI() const;
- Q_INVOKABLE const QSet<QUmlPackage *> nestedPackage() const;
- Q_INVOKABLE QUmlPackage *nestingPackage() const;
- Q_INVOKABLE const QSet<QUmlStereotype *> ownedStereotype() const;
- Q_INVOKABLE const QSet<QUmlType *> ownedType() const;
- Q_INVOKABLE const QSet<QUmlPackageMerge *> packageMerge() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> packagedElement() const;
- Q_INVOKABLE const QSet<QUmlProfileApplication *> profileApplication() const;
-
- // Owned attributes [Profile]
- Q_INVOKABLE const QSet<QUmlElementImport *> metaclassReference() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> metamodelReference() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Package]
- Q_INVOKABLE QSet<QUmlStereotype *> allApplicableStereotypes() const;
- Q_INVOKABLE QUmlProfile *containingProfile() const;
- Q_INVOKABLE bool makesVisible(QUmlNamedElement *el) const;
- Q_INVOKABLE bool mustBeOwned() const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> visibleMembers() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TemplateableElement]
- void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Package]
- void setURI(QString URI);
- void addNestedPackage(UmlPackage *nestedPackage);
- void removeNestedPackage(UmlPackage *nestedPackage);
- void setNestingPackage(QUmlPackage *nestingPackage);
- void addOwnedType(UmlType *ownedType);
- void removeOwnedType(UmlType *ownedType);
- void addPackageMerge(UmlPackageMerge *packageMerge);
- void removePackageMerge(UmlPackageMerge *packageMerge);
- void addPackagedElement(UmlPackageableElement *packagedElement);
- void removePackagedElement(UmlPackageableElement *packagedElement);
- void addProfileApplication(UmlProfileApplication *profileApplication);
- void removeProfileApplication(UmlProfileApplication *profileApplication);
-
- // Slots for owned attributes [Profile]
- void addMetaclassReference(UmlElementImport *metaclassReference);
- void removeMetaclassReference(UmlElementImport *metaclassReference);
- void addMetamodelReference(UmlPackageImport *metamodelReference);
- void removeMetamodelReference(UmlPackageImport *metamodelReference);
+ explicit QUmlProfile(bool createQObject = true);
+ virtual ~QUmlProfile();
+
+ // Owned attributes
+ const QSet<QUmlElementImport *> metaclassReference() const;
+ void addMetaclassReference(QUmlElementImport *metaclassReference);
+ void removeMetaclassReference(QUmlElementImport *metaclassReference);
+ const QSet<QUmlPackageImport *> metamodelReference() const;
+ void addMetamodelReference(QUmlPackageImport *metamodelReference);
+ void removeMetamodelReference(QUmlPackageImport *metamodelReference);
+
+protected:
+ QSet<QUmlElementImport *> _metaclassReference;
+ QSet<QUmlPackageImport *> _metamodelReference;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlProfile *)
-Q_DECLARE_METATYPE(QList<QUmlProfile *> *)
-Q_DECLARE_METATYPE(QSet<QUmlProfile *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlProfile) *)
QT_END_HEADER
diff --git a/src/uml/qumlprofileapplication.cpp b/src/uml/qumlprofileapplication.cpp
index a1669d7d..a9e3d9b4 100644
--- a/src/uml/qumlprofileapplication.cpp
+++ b/src/uml/qumlprofileapplication.cpp
@@ -40,159 +40,115 @@
****************************************************************************/
#include "qumlprofileapplication.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumlprofileapplicationobject_p.h"
+
#include <QtUml/QUmlPackage>
#include <QtUml/QUmlProfile>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlProfileApplication
+ \class QUmlProfileApplication
\inmodule QtUml
\brief A profile application is used to show which profiles have been applied to a package.
*/
-
-QUmlProfileApplication::QUmlProfileApplication(QObject *parent) :
- QObject(parent)
+QUmlProfileApplication::QUmlProfileApplication(bool createQObject) :
+ _appliedProfile(0),
+ _applyingPackage(0),
+ _isStrict(false)
{
+ if (createQObject)
+ _qObject = new QUmlProfileApplicationObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlProfileApplication::ownedComment() const
+QUmlProfileApplication::~QUmlProfileApplication()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlProfileApplication::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ References the Profiles that are applied to a Package through this ProfileApplication.
*/
-QUmlElement *QUmlProfileApplication::owner() const
+QUmlProfile *
+QUmlProfileApplication::appliedProfile() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlProfileApplication::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ return _appliedProfile;
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlProfileApplication::source() const
+void QUmlProfileApplication::setAppliedProfile(QUmlProfile *appliedProfile)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
+ // This is a read-write association end
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlProfileApplication::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ if (_appliedProfile != appliedProfile) {
+ // Adjust subsetted properties
+ removeTarget(_appliedProfile);
-// OWNED ATTRIBUTES [ProfileApplication]
+ _appliedProfile = appliedProfile;
+ if (appliedProfile->asQObject() && this->asQObject())
+ QObject::connect(appliedProfile->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAppliedProfile()));
-/*!
- References the Profiles that are applied to a Package through this ProfileApplication.
- */
-QUmlProfile *QUmlProfileApplication::appliedProfile() const
-{
- return reinterpret_cast<QUmlProfile *>(_appliedProfile);
+ // Adjust subsetted properties
+ if (appliedProfile) {
+ addTarget(appliedProfile);
+ }
+ }
}
/*!
The package that owns the profile application.
*/
-QUmlPackage *QUmlProfileApplication::applyingPackage() const
+QUmlPackage *
+QUmlProfileApplication::applyingPackage() const
{
- return reinterpret_cast<QUmlPackage *>(_applyingPackage);
-}
+ // This is a read-write association end
-/*!
- Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied.
- */
-bool QUmlProfileApplication::isStrict() const
-{
- return _isStrict;
+ return _applyingPackage;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlProfileApplication::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlProfileApplication::mustBeOwned() const
+void QUmlProfileApplication::setApplyingPackage(QUmlPackage *applyingPackage)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ if (_applyingPackage != applyingPackage) {
+ // Adjust subsetted properties
+ removeSource(_applyingPackage);
-void QUmlProfileApplication::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ _applyingPackage = applyingPackage;
+ if (applyingPackage->asQObject() && this->asQObject())
+ QObject::connect(applyingPackage->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setApplyingPackage()));
-void QUmlProfileApplication::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ // Adjust subsetted properties
+ setOwner(applyingPackage);
+ if (applyingPackage) {
+ addSource(applyingPackage);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [ProfileApplication]
-
-void QUmlProfileApplication::setAppliedProfile(QUmlProfile *appliedProfile)
+/*!
+ Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied.
+ */
+bool
+QUmlProfileApplication::isStrict() const
{
- UmlProfileApplication::setAppliedProfile(appliedProfile);
-}
+ // This is a read-write property
-void QUmlProfileApplication::setApplyingPackage(QUmlPackage *applyingPackage)
-{
- UmlProfileApplication::setApplyingPackage(applyingPackage);
+ return _isStrict;
}
void QUmlProfileApplication::setStrict(bool isStrict)
{
- UmlProfileApplication::setStrict(isStrict);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isStrict != isStrict) {
+ _isStrict = isStrict;
+ }
+}
diff --git a/src/uml/qumlprofileapplication.h b/src/uml/qumlprofileapplication.h
index bad3c2be..a9830308 100644
--- a/src/uml/qumlprofileapplication.h
+++ b/src/uml/qumlprofileapplication.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlprofileapplication_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
QT_BEGIN_HEADER
@@ -52,77 +52,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlPackage;
class QUmlProfile;
-class Q_UML_EXPORT QUmlProfileApplication : public QObject, public UmlProfileApplication
+class Q_UML_EXPORT QUmlProfileApplication : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [ProfileApplication]
- Q_PROPERTY(QUmlProfile * appliedProfile READ appliedProfile)
- Q_PROPERTY(QUmlPackage * applyingPackage READ applyingPackage)
- Q_PROPERTY(bool isStrict READ isStrict)
-
public:
- Q_INVOKABLE explicit QUmlProfileApplication(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
+ explicit QUmlProfileApplication(bool createQObject = true);
+ virtual ~QUmlProfileApplication();
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [ProfileApplication]
- Q_INVOKABLE QUmlProfile *appliedProfile() const;
- Q_INVOKABLE QUmlPackage *applyingPackage() const;
- Q_INVOKABLE bool isStrict() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [ProfileApplication]
+ // Owned attributes
+ QUmlProfile *appliedProfile() const;
void setAppliedProfile(QUmlProfile *appliedProfile);
+ QUmlPackage *applyingPackage() const;
void setApplyingPackage(QUmlPackage *applyingPackage);
+ bool isStrict() const;
void setStrict(bool isStrict);
+
+protected:
+ QUmlProfile *_appliedProfile;
+ QUmlPackage *_applyingPackage;
+ bool _isStrict;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlProfileApplication *)
-Q_DECLARE_METATYPE(QList<QUmlProfileApplication *> *)
-Q_DECLARE_METATYPE(QSet<QUmlProfileApplication *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlProfileApplication) *)
QT_END_HEADER
diff --git a/src/uml/qumlproperty.cpp b/src/uml/qumlproperty.cpp
index 11112f19..e071acaa 100644
--- a/src/uml/qumlproperty.cpp
+++ b/src/uml/qumlproperty.cpp
@@ -40,828 +40,584 @@
****************************************************************************/
#include "qumlproperty.h"
+#include "private/qumlpropertyobject_p.h"
+
#include <QtUml/QUmlAssociation>
#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElementTemplateParameter>
-#include <QtUml/QUmlConnectorEnd>
#include <QtUml/QUmlDataType>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlDeployment>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlInterface>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
#include <QtUml/QUmlType>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlProperty
+ \class QUmlProperty
\inmodule QtUml
\brief 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. The range of valid values represented by the property can be controlled by setting the property's type.A property is a structural feature of a classifier that characterizes instances of the classifier. A property related by ownedAttribute to a classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the class to a value or set of values of the type of the attribute. A property related by memberEnd or its specializations to an association represents an end of the association. The type of the property is the type of the end of the association.A property has the capability of being a deployment target in a deployment relationship. This enables modeling the deployment to hierarchical nodes that have properties functioning as internal parts.Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.A property represents a set of instances that are owned by a containing classifier instance.
*/
-
-QUmlProperty::QUmlProperty(QObject *parent) :
- QObject(parent)
+QUmlProperty::QUmlProperty(bool createQObject) :
+ _aggregation(QtUml::AggregationKindNone),
+ _association(0),
+ _associationEnd(0),
+ _class_(0),
+ _datatype(0),
+ _defaultValue(0),
+ _interface_(0),
+ _isDerived(false),
+ _isDerivedUnion(false),
+ _isID(false),
+ _isReadOnly(false),
+ _owningAssociation(0)
{
+ if (createQObject)
+ _qObject = new QUmlPropertyObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlProperty::ownedComment() const
+QUmlProperty::~QUmlProperty()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlProperty::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Specifies the kind of aggregation that applies to the Property.
*/
-QUmlElement *QUmlProperty::owner() const
+QtUml::AggregationKind
+QUmlProperty::aggregation() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write property
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlProperty::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _aggregation;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlProperty::name() const
+void QUmlProperty::setAggregation(QtUml::AggregationKind aggregation)
{
- return _name;
-}
+ // This is a read-write property
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlProperty::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (_aggregation != aggregation) {
+ _aggregation = aggregation;
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ References the association of which this property is a member, if any.
*/
-QUmlNamespace *QUmlProperty::namespace_() const
+QUmlAssociation *
+QUmlProperty::association() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlProperty::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _association;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlProperty::visibility() const
+void QUmlProperty::setAssociation(QUmlAssociation *association)
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TypedElement]
+ // This is a read-write association end
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlProperty::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
+ if (_association != association) {
+ _association = association;
+ if (association->asQObject() && this->asQObject())
+ QObject::connect(association->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAssociation()));
+ }
}
-// OWNED ATTRIBUTES [MultiplicityElement]
-
/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
+ Designates the optional association end that owns a qualifier attribute.
*/
-bool QUmlProperty::isOrdered() const
+QUmlProperty *
+QUmlProperty::associationEnd() const
{
- return _isOrdered;
-}
+ // This is a read-write association end
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlProperty::isUnique() const
-{
- return _isUnique;
+ return _associationEnd;
}
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlProperty::lower() const
+void QUmlProperty::setAssociationEnd(QUmlProperty *associationEnd)
{
- return UmlMultiplicityElement::lower();
-}
+ // This is a read-write association end
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlProperty::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
+ if (_associationEnd != associationEnd) {
+ // Adjust subsetted properties
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlProperty::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
+ _associationEnd = associationEnd;
+ if (associationEnd->asQObject() && this->asQObject())
+ QObject::connect(associationEnd->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setAssociationEnd()));
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlProperty::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
+ // Adjust subsetted properties
+ setOwner(associationEnd);
+ }
}
-// OWNED ATTRIBUTES [RedefinableElement]
-
/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
+ References the Class that owns the Property.References the Class that owns the Property.
*/
-bool QUmlProperty::isLeaf() const
+QUmlClass *
+QUmlProperty::class_() const
{
- return _isLeaf;
-}
+ // This is a read-write association end
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlProperty::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ return _class_;
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlProperty::redefinitionContext() const
+void QUmlProperty::setClass(QUmlClass *class_)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Feature]
+ if (_class_ != class_) {
+ // Adjust subsetted properties
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlProperty::featuringClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
+ _class_ = class_;
+ if (class_->asQObject() && this->asQObject())
+ QObject::connect(class_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClass()));
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlProperty::isStatic() const
-{
- return _isStatic;
+ // Adjust subsetted properties
+ setNamespace(class_);
+ }
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
/*!
- The formal template parameter that owns this element.
+ The DataType that owns this Property.
*/
-QUmlTemplateParameter *QUmlProperty::owningTemplateParameter() const
+QUmlDataType *
+QUmlProperty::datatype() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [ConnectableElement]
+ // This is a read-write association end
-/*!
- Denotes a set of connector ends that attaches to this connectable element.
- */
-const QList<QUmlConnectorEnd *> QUmlProperty::end() const
-{
- QList<QUmlConnectorEnd *> r;
- foreach (UmlConnectorEnd *element, UmlConnectableElement::end())
- r.append(reinterpret_cast<QUmlConnectorEnd *>(element));
- return r;
+ return _datatype;
}
-/*!
- The ConnectableElementTemplateParameter for this ConnectableElement parameter.
- */
-QUmlConnectableElementTemplateParameter *QUmlProperty::templateParameter() const
+void QUmlProperty::setDatatype(QUmlDataType *datatype)
{
- return reinterpret_cast<QUmlConnectableElementTemplateParameter *>(_templateParameter);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [DeploymentTarget]
+ if (_datatype != datatype) {
+ // Adjust subsetted properties
-/*!
- The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget.
- */
-const QSet<QUmlPackageableElement *> QUmlProperty::deployedElement() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlDeploymentTarget::deployedElement())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ _datatype = datatype;
+ if (datatype->asQObject() && this->asQObject())
+ QObject::connect(datatype->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDatatype()));
-/*!
- The set of Deployments for a DeploymentTarget.
- */
-const QSet<QUmlDeployment *> QUmlProperty::deployment() const
-{
- return *(reinterpret_cast<const QSet<QUmlDeployment *> *>(&_deployment));
+ // Adjust subsetted properties
+ setNamespace(datatype);
+ }
}
-// OWNED ATTRIBUTES [Property]
-
/*!
- Specifies the kind of aggregation that applies to the Property.
+ Specifies a String that represents a value to be used when no argument is supplied for the Property.A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
*/
-QtUml::AggregationKind QUmlProperty::aggregation() const
+QString
+QUmlProperty::default_() const
{
- return _aggregation;
-}
+ // This is a read-write derived property
-/*!
- References the association of which this property is a member, if any.
- */
-QUmlAssociation *QUmlProperty::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(_association);
-}
+ qWarning("UmlProperty::default_(): to be implemented (this is a derived property)");
-/*!
- Designates the optional association end that owns a qualifier attribute.
- */
-QUmlProperty *QUmlProperty::associationEnd() const
-{
- return reinterpret_cast<QUmlProperty *>(_associationEnd);
+ return QString();
}
-/*!
- References the Class that owns the Property.References the Class that owns the Property.
- */
-QUmlClass *QUmlProperty::class_() const
+void QUmlProperty::setDefault(QString default_)
{
- return reinterpret_cast<QUmlClass *>(_class_);
-}
+ // This is a read-write derived property
-/*!
- The DataType that owns this Property.
- */
-QUmlDataType *QUmlProperty::datatype() const
-{
- return reinterpret_cast<QUmlDataType *>(_datatype);
-}
+ qWarning("UmlProperty::default_(): to be implemented (this is a derived property)");
+ Q_UNUSED(default_);
-/*!
- Specifies a String that represents a value to be used when no argument is supplied for the Property.A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
- */
-QString QUmlProperty::default_() const
-{
- return UmlProperty::default_();
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated.
*/
-QUmlValueSpecification *QUmlProperty::defaultValue() const
+QUmlValueSpecification *
+QUmlProperty::defaultValue() const
{
- return reinterpret_cast<QUmlValueSpecification *>(_defaultValue);
-}
+ // This is a read-write association end
-/*!
- References the Interface that owns the Property
- */
-QUmlInterface *QUmlProperty::interface_() const
-{
- return reinterpret_cast<QUmlInterface *>(_interface_);
+ return _defaultValue;
}
-/*!
- If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.This is a derived value, indicating whether the aggregation of the Property is composite or not.
- */
-bool QUmlProperty::isComposite() const
+void QUmlProperty::setDefaultValue(QUmlValueSpecification *defaultValue)
{
- return UmlProperty::isComposite();
-}
+ // This is a read-write association end
-/*!
- If isDerived is true, the value of the attribute is derived from information elsewhere.Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
- */
-bool QUmlProperty::isDerived() const
-{
- return _isDerived;
-}
+ if (_defaultValue != defaultValue) {
+ // Adjust subsetted properties
+ removeOwnedElement(_defaultValue);
-/*!
- Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.
- */
-bool QUmlProperty::isDerivedUnion() const
-{
- return _isDerivedUnion;
-}
+ _defaultValue = defaultValue;
+ if (defaultValue->asQObject() && this->asQObject())
+ QObject::connect(defaultValue->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDefaultValue()));
+ defaultValue->asQObject()->setParent(this->asQObject());
-/*!
- True indicates this property can be used to uniquely identify an instance of the containing Class.
- */
-bool QUmlProperty::isID() const
-{
- return _isID;
+ // Adjust subsetted properties
+ if (defaultValue) {
+ addOwnedElement(defaultValue);
+ }
+ }
}
/*!
- If true, the attribute may only be read, and not written.If isReadOnly is true, the attribute may not be written to after initialization.
+ References the Interface that owns the Property
*/
-bool QUmlProperty::isReadOnly() const
+QUmlInterface *
+QUmlProperty::interface_() const
{
- return _isReadOnly;
-}
+ // This is a read-write association end
-/*!
- In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end.
- */
-QUmlProperty *QUmlProperty::opposite() const
-{
- return reinterpret_cast<QUmlProperty *>(UmlProperty::opposite());
+ return _interface_;
}
-/*!
- References the owning association of this property, if any.
- */
-QUmlAssociation *QUmlProperty::owningAssociation() const
+void QUmlProperty::setInterface(QUmlInterface *interface_)
{
- return reinterpret_cast<QUmlAssociation *>(_owningAssociation);
-}
+ // This is a read-write association end
-/*!
- An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified.
- */
-const QList<QUmlProperty *> QUmlProperty::qualifier() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_qualifier));
-}
+ if (_interface_ != interface_) {
+ // Adjust subsetted properties
-/*!
- References the properties that are redefined by this property.
- */
-const QSet<QUmlProperty *> QUmlProperty::redefinedProperty() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_redefinedProperty));
+ _interface_ = interface_;
+ if (interface_->asQObject() && this->asQObject())
+ QObject::connect(interface_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInterface()));
+
+ // Adjust subsetted properties
+ setNamespace(interface_);
+ }
}
/*!
- References the properties of which this property is constrained to be a subset.
+ If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.This is a derived value, indicating whether the aggregation of the Property is composite or not.
*/
-const QSet<QUmlProperty *> QUmlProperty::subsettedProperty() const
+bool
+QUmlProperty::isComposite() const
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_subsettedProperty));
-}
+ // This is a read-write derived property
-// OPERATIONS [Element]
+ qWarning("UmlProperty::isComposite(): to be implemented (this is a derived property)");
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlProperty::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return bool();
}
-/*!
- 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.
- */
-bool QUmlProperty::mustBeOwned() const
+void QUmlProperty::setComposite(bool isComposite)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write derived property
-// OPERATIONS [NamedElement]
+ qWarning("UmlProperty::isComposite(): to be implemented (this is a derived property)");
+ Q_UNUSED(isComposite);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlProperty::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ If isDerived is true, the value of the attribute is derived from information elsewhere.Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information.
*/
-QSet<QUmlPackage *> QUmlProperty::allOwningPackages() const
+bool
+QUmlProperty::isDerived() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlProperty::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isDerived;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlProperty::separator() const
+void QUmlProperty::setDerived(bool isDerived)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [MultiplicityElement]
+ // This is a read-write property
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlProperty::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
+ if (_isDerived != isDerived) {
+ _isDerived = isDerived;
+ }
}
/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
+ Specifies whether the property is derived as the union of all of the properties that are constrained to subset it.
*/
-bool QUmlProperty::includesCardinality(int C) const
+bool
+QUmlProperty::isDerivedUnion() const
{
- return UmlMultiplicityElement::includesCardinality(C);
-}
+ // This is a read-write property
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlProperty::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
+ return _isDerivedUnion;
}
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlProperty::is(int lowerbound, int upperbound) const
+void QUmlProperty::setDerivedUnion(bool isDerivedUnion)
{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
+ // This is a read-write property
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlProperty::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
+ if (_isDerivedUnion != isDerivedUnion) {
+ _isDerivedUnion = isDerivedUnion;
+ }
}
/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
+ True indicates this property can be used to uniquely identify an instance of the containing Class.
*/
-int QUmlProperty::lowerBound() const
+bool
+QUmlProperty::isID() const
{
- return UmlMultiplicityElement::lowerBound();
-}
+ // This is a read-write property
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-int QUmlProperty::upperBound() const
-{
- return UmlMultiplicityElement::upperBound();
+ return _isID;
}
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlProperty::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlProperty::setID(bool isID)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write property
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlProperty::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ if (_isID != isID) {
+ _isID = isID;
+ }
}
-// OPERATIONS [Property]
-
/*!
- The query isAttribute() is true if the Property is defined as an attribute of some classifier.
+ If true, the attribute may only be read, and not written.If isReadOnly is true, the attribute may not be written to after initialization.
*/
-bool QUmlProperty::isAttribute(QUmlProperty *p) const
+bool
+QUmlProperty::isReadOnly() const
{
- return UmlProperty::isAttribute(p);
-}
+ // This is a read-write property
-/*!
- 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 properties, the type must be conformant with the type of the specified parameterable element.
- */
-bool QUmlProperty::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlProperty::isCompatibleWith(p);
+ return _isReadOnly;
}
-/*!
- 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.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, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.
- */
-bool QUmlProperty::isConsistentWith(QUmlRedefinableElement *redefinee) const
+void QUmlProperty::setReadOnly(bool isReadOnly)
{
- return UmlProperty::isConsistentWith(redefinee);
-}
+ // This is a read-write property
-/*!
- The query isNavigable() indicates whether it is possible to navigate across the property.
- */
-bool QUmlProperty::isNavigable() const
-{
- return UmlProperty::isNavigable();
+ if (_isReadOnly != isReadOnly) {
+ _isReadOnly = isReadOnly;
+ }
}
/*!
- 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.
+ In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end.
*/
-QSet<QUmlType *> QUmlProperty::subsettingContext() const
+QUmlProperty *
+QUmlProperty::opposite() const
{
- QSet<QUmlType *> r;
- foreach (UmlType *element, UmlProperty::subsettingContext())
- r.insert(reinterpret_cast<QUmlType *>(element));
- return r;
-}
+ // This is a read-write derived association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ qWarning("UmlProperty::opposite(): to be implemented (this is a derived association end)");
-void QUmlProperty::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlProperty::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return 0;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlProperty::addClientDependency(UmlDependency *clientDependency)
+void QUmlProperty::setOpposite(QUmlProperty *opposite)
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write derived association end
-void QUmlProperty::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ qWarning("UmlProperty::opposite(): to be implemented (this is a derived association end)");
+ Q_UNUSED(opposite);
-void QUmlProperty::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlProperty::setNameExpression(QUmlStringExpression *nameExpression)
+/*!
+ References the owning association of this property, if any.
+ */
+QUmlAssociation *
+QUmlProperty::owningAssociation() const
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlProperty::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ return _owningAssociation;
}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlProperty::setType(QUmlType *type)
+void QUmlProperty::setOwningAssociation(QUmlAssociation *owningAssociation)
{
- UmlTypedElement::setType(type);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
+ if (_owningAssociation != owningAssociation) {
+ // Adjust subsetted properties
+ removeFeaturingClassifier(_owningAssociation);
+ removeRedefinitionContext(_owningAssociation);
-void QUmlProperty::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
+ _owningAssociation = owningAssociation;
+ if (owningAssociation->asQObject() && this->asQObject())
+ QObject::connect(owningAssociation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwningAssociation()));
-void QUmlProperty::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
+ // Adjust subsetted properties
+ if (owningAssociation) {
+ addFeaturingClassifier(owningAssociation);
+ }
+ if (owningAssociation) {
+ addRedefinitionContext(owningAssociation);
+ }
+ setNamespace(owningAssociation);
+ setAssociation(owningAssociation);
+ }
}
-void QUmlProperty::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlProperty::setLowerValue(QUmlValueSpecification *lowerValue)
+/*!
+ An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified.
+ */
+const QList<QUmlProperty *>
+QUmlProperty::qualifier() const
{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
+ // This is a read-write association end
-void QUmlProperty::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
+ return _qualifier;
}
-void QUmlProperty::setUpperValue(QUmlValueSpecification *upperValue)
+void QUmlProperty::addQualifier(QUmlProperty *qualifier)
{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
+ if (!_qualifier.contains(qualifier)) {
+ _qualifier.append(qualifier);
+ if (qualifier->asQObject() && this->asQObject())
+ QObject::connect(qualifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeQualifier(QObject *)));
+ qualifier->asQObject()->setParent(this->asQObject());
-void QUmlProperty::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ // Adjust subsetted properties
+ addOwnedElement(qualifier);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlProperty::setStatic(bool isStatic)
+void QUmlProperty::removeQualifier(QUmlProperty *qualifier)
{
- UmlFeature::setStatic(isStatic);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
+ if (_qualifier.contains(qualifier)) {
+ _qualifier.removeAll(qualifier);
+ if (qualifier->asQObject())
+ qualifier->asQObject()->setParent(0);
-void QUmlProperty::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
+ // Adjust subsetted properties
+ removeOwnedElement(qualifier);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
-void QUmlProperty::setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter)
+/*!
+ References the properties that are redefined by this property.
+ */
+const QSet<QUmlProperty *>
+QUmlProperty::redefinedProperty() const
{
- UmlConnectableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [DeploymentTarget]
+ // This is a read-write association end
-void QUmlProperty::addDeployment(UmlDeployment *deployment)
-{
- UmlDeploymentTarget::addDeployment(deployment);
+ return _redefinedProperty;
}
-void QUmlProperty::removeDeployment(UmlDeployment *deployment)
+void QUmlProperty::addRedefinedProperty(QUmlProperty *redefinedProperty)
{
- UmlDeploymentTarget::removeDeployment(deployment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Property]
+ if (!_redefinedProperty.contains(redefinedProperty)) {
+ _redefinedProperty.insert(redefinedProperty);
+ if (redefinedProperty->asQObject() && this->asQObject())
+ QObject::connect(redefinedProperty->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedProperty(QObject *)));
-void QUmlProperty::setAggregation(QtUml::AggregationKind aggregation)
-{
- UmlProperty::setAggregation(aggregation);
+ // Adjust subsetted properties
+ addRedefinedElement(redefinedProperty);
+ }
}
-void QUmlProperty::setAssociation(QUmlAssociation *association)
+void QUmlProperty::removeRedefinedProperty(QUmlProperty *redefinedProperty)
{
- UmlProperty::setAssociation(association);
-}
+ // This is a read-write association end
-void QUmlProperty::setAssociationEnd(QUmlProperty *associationEnd)
-{
- UmlProperty::setAssociationEnd(associationEnd);
-}
+ if (_redefinedProperty.contains(redefinedProperty)) {
+ _redefinedProperty.remove(redefinedProperty);
-void QUmlProperty::setClass(QUmlClass *class_)
-{
- UmlProperty::setClass(class_);
+ // Adjust subsetted properties
+ removeRedefinedElement(redefinedProperty);
+ }
}
-void QUmlProperty::setDatatype(QUmlDataType *datatype)
+/*!
+ References the properties of which this property is constrained to be a subset.
+ */
+const QSet<QUmlProperty *>
+QUmlProperty::subsettedProperty() const
{
- UmlProperty::setDatatype(datatype);
-}
+ // This is a read-write association end
-void QUmlProperty::setDefault(QString default_)
-{
- UmlProperty::setDefault(default_);
+ return _subsettedProperty;
}
-void QUmlProperty::setDefaultValue(QUmlValueSpecification *defaultValue)
+void QUmlProperty::addSubsettedProperty(QUmlProperty *subsettedProperty)
{
- UmlProperty::setDefaultValue(defaultValue);
-}
+ // This is a read-write association end
-void QUmlProperty::setInterface(QUmlInterface *interface_)
-{
- UmlProperty::setInterface(interface_);
+ if (!_subsettedProperty.contains(subsettedProperty)) {
+ _subsettedProperty.insert(subsettedProperty);
+ if (subsettedProperty->asQObject() && this->asQObject())
+ QObject::connect(subsettedProperty->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubsettedProperty(QObject *)));
+ }
}
-void QUmlProperty::setComposite(bool isComposite)
+void QUmlProperty::removeSubsettedProperty(QUmlProperty *subsettedProperty)
{
- UmlProperty::setComposite(isComposite);
-}
+ // This is a read-write association end
-void QUmlProperty::setDerived(bool isDerived)
-{
- UmlProperty::setDerived(isDerived);
+ if (_subsettedProperty.contains(subsettedProperty)) {
+ _subsettedProperty.remove(subsettedProperty);
+ }
}
-void QUmlProperty::setDerivedUnion(bool isDerivedUnion)
-{
- UmlProperty::setDerivedUnion(isDerivedUnion);
-}
+// OPERATIONS
-void QUmlProperty::setID(bool isID)
+/*!
+ The query isAttribute() is true if the Property is defined as an attribute of some classifier.
+ */
+bool QUmlProperty::isAttribute(QUmlProperty *p) const
{
- UmlProperty::setID(isID);
-}
+ qWarning("UmlProperty::isAttribute(): to be implemented (operation)");
-void QUmlProperty::setReadOnly(bool isReadOnly)
-{
- UmlProperty::setReadOnly(isReadOnly);
+ Q_UNUSED(p);
+ return bool ();
}
-void QUmlProperty::setOpposite(QUmlProperty *opposite)
+/*!
+ 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 properties, the type must be conformant with the type of the specified parameterable element.
+ */
+bool QUmlProperty::isCompatibleWith(QUmlParameterableElement *p) const
{
- UmlProperty::setOpposite(opposite);
-}
+ qWarning("UmlProperty::isCompatibleWith(): to be implemented (operation)");
-void QUmlProperty::setOwningAssociation(QUmlAssociation *owningAssociation)
-{
- UmlProperty::setOwningAssociation(owningAssociation);
+ Q_UNUSED(p);
+ return bool ();
}
-void QUmlProperty::addQualifier(UmlProperty *qualifier)
+/*!
+ 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.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, and the multiplicity of the redefining property (if specified) is contained in the multiplicity of the redefined property.
+ */
+bool QUmlProperty::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- UmlProperty::addQualifier(qualifier);
-}
+ qWarning("UmlProperty::isConsistentWith(): to be implemented (operation)");
-void QUmlProperty::removeQualifier(UmlProperty *qualifier)
-{
- UmlProperty::removeQualifier(qualifier);
+ Q_UNUSED(redefinee);
+ return bool ();
}
-void QUmlProperty::addRedefinedProperty(UmlProperty *redefinedProperty)
+/*!
+ The query isNavigable() indicates whether it is possible to navigate across the property.
+ */
+bool QUmlProperty::isNavigable() const
{
- UmlProperty::addRedefinedProperty(redefinedProperty);
-}
+ qWarning("UmlProperty::isNavigable(): to be implemented (operation)");
-void QUmlProperty::removeRedefinedProperty(UmlProperty *redefinedProperty)
-{
- UmlProperty::removeRedefinedProperty(redefinedProperty);
+ return bool ();
}
-void QUmlProperty::addSubsettedProperty(UmlProperty *subsettedProperty)
+/*!
+ 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.
+ */
+QSet<QUmlType *> QUmlProperty::subsettingContext() const
{
- UmlProperty::addSubsettedProperty(subsettedProperty);
-}
+ qWarning("UmlProperty::subsettingContext(): to be implemented (operation)");
-void QUmlProperty::removeSubsettedProperty(UmlProperty *subsettedProperty)
-{
- UmlProperty::removeSubsettedProperty(subsettedProperty);
+ return QSet<QUmlType *> ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlproperty.h b/src/uml/qumlproperty.h
index 13235c5a..6f9f951e 100644
--- a/src/uml/qumlproperty.h
+++ b/src/uml/qumlproperty.h
@@ -43,8 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlproperty_p.h"
+#include <QtUml/QUmlStructuralFeature>
+#include <QtUml/QUmlConnectableElement>
+#include <QtUml/QUmlDeploymentTarget>
+
#include <QtUml/QtUmlNamespace>
@@ -56,269 +58,88 @@ QT_MODULE(QtUml)
class QUmlAssociation;
class QUmlClass;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConnectableElementTemplateParameter;
-class QUmlConnectorEnd;
class QUmlDataType;
-class QUmlDependency;
-class QUmlDeployment;
-class QUmlElement;
class QUmlInterface;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
class QUmlParameterableElement;
class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlType;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlProperty : public QObject, public UmlProperty
+class Q_UML_EXPORT QUmlProperty : public QUmlStructuralFeature, public QUmlConnectableElement, public QUmlDeploymentTarget
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [StructuralFeature]
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [ConnectableElement]
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QUmlConnectableElementTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [DeploymentTarget]
- Q_PROPERTY(QSet<QUmlPackageableElement *> deployedElement READ deployedElement)
- Q_PROPERTY(QSet<QUmlDeployment *> deployment READ deployment)
-
- // Properties [Property]
- Q_PROPERTY(QtUml::AggregationKind aggregation READ aggregation)
- Q_PROPERTY(QUmlAssociation * association READ association)
- Q_PROPERTY(QUmlProperty * associationEnd READ associationEnd)
- Q_PROPERTY(QUmlClass * class_ READ class_)
- Q_PROPERTY(QUmlDataType * datatype READ datatype)
- Q_PROPERTY(QString default_ READ default_)
- Q_PROPERTY(QUmlValueSpecification * defaultValue READ defaultValue)
- Q_PROPERTY(QUmlInterface * interface_ READ interface_)
- Q_PROPERTY(bool isComposite READ isComposite)
- Q_PROPERTY(bool isDerived READ isDerived)
- Q_PROPERTY(bool isDerivedUnion READ isDerivedUnion)
- Q_PROPERTY(bool isID READ isID)
- Q_PROPERTY(bool isReadOnly READ isReadOnly)
- Q_PROPERTY(QUmlProperty * opposite READ opposite)
- Q_PROPERTY(QUmlAssociation * owningAssociation READ owningAssociation)
- Q_PROPERTY(QList<QUmlProperty *> qualifier READ qualifier)
- Q_PROPERTY(QSet<QUmlProperty *> redefinedProperty READ redefinedProperty)
- Q_PROPERTY(QSet<QUmlProperty *> subsettedProperty READ subsettedProperty)
-
public:
- Q_INVOKABLE explicit QUmlProperty(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [StructuralFeature]
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [ConnectableElement]
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QUmlConnectableElementTemplateParameter *templateParameter() const;
-
- // Owned attributes [DeploymentTarget]
- Q_INVOKABLE const QSet<QUmlPackageableElement *> deployedElement() const;
- Q_INVOKABLE const QSet<QUmlDeployment *> deployment() const;
-
- // Owned attributes [Property]
- Q_INVOKABLE QtUml::AggregationKind aggregation() const;
- Q_INVOKABLE QUmlAssociation *association() const;
- Q_INVOKABLE QUmlProperty *associationEnd() const;
- Q_INVOKABLE QUmlClass *class_() const;
- Q_INVOKABLE QUmlDataType *datatype() const;
- Q_INVOKABLE QString default_() const;
- Q_INVOKABLE QUmlValueSpecification *defaultValue() const;
- Q_INVOKABLE QUmlInterface *interface_() const;
- Q_INVOKABLE bool isComposite() const;
- Q_INVOKABLE bool isDerived() const;
- Q_INVOKABLE bool isDerivedUnion() const;
- Q_INVOKABLE bool isID() const;
- Q_INVOKABLE bool isReadOnly() const;
- Q_INVOKABLE QUmlProperty *opposite() const;
- Q_INVOKABLE QUmlAssociation *owningAssociation() const;
- Q_INVOKABLE const QList<QUmlProperty *> qualifier() const;
- Q_INVOKABLE const QSet<QUmlProperty *> redefinedProperty() const;
- Q_INVOKABLE const QSet<QUmlProperty *> subsettedProperty() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Property]
- Q_INVOKABLE bool isAttribute(QUmlProperty *p) const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isNavigable() const;
- Q_INVOKABLE QSet<QUmlType *> subsettingContext() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [StructuralFeature]
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [ConnectableElement]
- void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
-
- // Slots for owned attributes [DeploymentTarget]
- void addDeployment(UmlDeployment *deployment);
- void removeDeployment(UmlDeployment *deployment);
+ explicit QUmlProperty(bool createQObject = true);
+ virtual ~QUmlProperty();
- // Slots for owned attributes [Property]
+ // Owned attributes
+ QtUml::AggregationKind aggregation() const;
void setAggregation(QtUml::AggregationKind aggregation);
+ QUmlAssociation *association() const;
void setAssociation(QUmlAssociation *association);
+ QUmlProperty *associationEnd() const;
void setAssociationEnd(QUmlProperty *associationEnd);
+ QUmlClass *class_() const;
void setClass(QUmlClass *class_);
+ QUmlDataType *datatype() const;
void setDatatype(QUmlDataType *datatype);
+ QString default_() const;
void setDefault(QString default_);
+ QUmlValueSpecification *defaultValue() const;
void setDefaultValue(QUmlValueSpecification *defaultValue);
+ QUmlInterface *interface_() const;
void setInterface(QUmlInterface *interface_);
+ bool isComposite() const;
void setComposite(bool isComposite);
+ bool isDerived() const;
void setDerived(bool isDerived);
+ bool isDerivedUnion() const;
void setDerivedUnion(bool isDerivedUnion);
+ bool isID() const;
void setID(bool isID);
+ bool isReadOnly() const;
void setReadOnly(bool isReadOnly);
+ QUmlProperty *opposite() const;
void setOpposite(QUmlProperty *opposite);
+ QUmlAssociation *owningAssociation() const;
void setOwningAssociation(QUmlAssociation *owningAssociation);
- void addQualifier(UmlProperty *qualifier);
- void removeQualifier(UmlProperty *qualifier);
- void addRedefinedProperty(UmlProperty *redefinedProperty);
- void removeRedefinedProperty(UmlProperty *redefinedProperty);
- void addSubsettedProperty(UmlProperty *subsettedProperty);
- void removeSubsettedProperty(UmlProperty *subsettedProperty);
+ const QList<QUmlProperty *> qualifier() const;
+ void addQualifier(QUmlProperty *qualifier);
+ void removeQualifier(QUmlProperty *qualifier);
+ const QSet<QUmlProperty *> redefinedProperty() const;
+ void addRedefinedProperty(QUmlProperty *redefinedProperty);
+ void removeRedefinedProperty(QUmlProperty *redefinedProperty);
+ const QSet<QUmlProperty *> subsettedProperty() const;
+ void addSubsettedProperty(QUmlProperty *subsettedProperty);
+ void removeSubsettedProperty(QUmlProperty *subsettedProperty);
+
+ // Operations
+ bool isAttribute(QUmlProperty *p) const;
+ bool isCompatibleWith(QUmlParameterableElement *p) const;
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+ bool isNavigable() const;
+ QSet<QUmlType *> subsettingContext() const;
+
+protected:
+ QtUml::AggregationKind _aggregation;
+ QUmlAssociation *_association;
+ QUmlProperty *_associationEnd;
+ QUmlClass *_class_;
+ QUmlDataType *_datatype;
+ QUmlValueSpecification *_defaultValue;
+ QUmlInterface *_interface_;
+ bool _isDerived;
+ bool _isDerivedUnion;
+ bool _isID;
+ bool _isReadOnly;
+ QUmlAssociation *_owningAssociation;
+ QList<QUmlProperty *> _qualifier;
+ QSet<QUmlProperty *> _redefinedProperty;
+ QSet<QUmlProperty *> _subsettedProperty;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlProperty *)
-Q_DECLARE_METATYPE(QList<QUmlProperty *> *)
-Q_DECLARE_METATYPE(QSet<QUmlProperty *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlProperty) *)
QT_END_HEADER
diff --git a/src/uml/qumlprotocolconformance.cpp b/src/uml/qumlprotocolconformance.cpp
index 173ed379..3a914c04 100644
--- a/src/uml/qumlprotocolconformance.cpp
+++ b/src/uml/qumlprotocolconformance.cpp
@@ -40,145 +40,93 @@
****************************************************************************/
#include "qumlprotocolconformance.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlProtocolStateMachine>
+#include "private/qumlprotocolconformanceobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlProtocolStateMachine>
/*!
- \class UmlProtocolConformance
+ \class QUmlProtocolConformance
\inmodule QtUml
\brief Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines. Protocol conformance declares that the specific protocol state machine specifies a protocol that conforms to the general state machine one, or that the specific behavioral state machine abide by the protocol of the general protocol state machine.
*/
-
-QUmlProtocolConformance::QUmlProtocolConformance(QObject *parent) :
- QObject(parent)
+QUmlProtocolConformance::QUmlProtocolConformance(bool createQObject) :
+ _generalMachine(0),
+ _specificMachine(0)
{
+ if (createQObject)
+ _qObject = new QUmlProtocolConformanceObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlProtocolConformance::ownedComment() const
+QUmlProtocolConformance::~QUmlProtocolConformance()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlProtocolConformance::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Specifies the protocol state machine to which the specific state machine conforms.
*/
-QUmlElement *QUmlProtocolConformance::owner() const
+QUmlProtocolStateMachine *
+QUmlProtocolConformance::generalMachine() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [Relationship]
+ // This is a read-write association end
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlProtocolConformance::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ return _generalMachine;
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlProtocolConformance::source() const
+void QUmlProtocolConformance::setGeneralMachine(QUmlProtocolStateMachine *generalMachine)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
+ // This is a read-write association end
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlProtocolConformance::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ if (_generalMachine != generalMachine) {
+ // Adjust subsetted properties
+ removeTarget(_generalMachine);
-// OWNED ATTRIBUTES [ProtocolConformance]
+ _generalMachine = generalMachine;
+ if (generalMachine->asQObject() && this->asQObject())
+ QObject::connect(generalMachine->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setGeneralMachine()));
-/*!
- Specifies the protocol state machine to which the specific state machine conforms.
- */
-QUmlProtocolStateMachine *QUmlProtocolConformance::generalMachine() const
-{
- return reinterpret_cast<QUmlProtocolStateMachine *>(_generalMachine);
+ // Adjust subsetted properties
+ if (generalMachine) {
+ addTarget(generalMachine);
+ }
+ }
}
/*!
Specifies the state machine which conforms to the general state machine.
*/
-QUmlProtocolStateMachine *QUmlProtocolConformance::specificMachine() const
-{
- return reinterpret_cast<QUmlProtocolStateMachine *>(_specificMachine);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlProtocolConformance::allOwnedElements() const
+QUmlProtocolStateMachine *
+QUmlProtocolConformance::specificMachine() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlProtocolConformance::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlProtocolConformance::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlProtocolConformance::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [ProtocolConformance]
-
-void QUmlProtocolConformance::setGeneralMachine(QUmlProtocolStateMachine *generalMachine)
-{
- UmlProtocolConformance::setGeneralMachine(generalMachine);
+ return _specificMachine;
}
void QUmlProtocolConformance::setSpecificMachine(QUmlProtocolStateMachine *specificMachine)
{
- UmlProtocolConformance::setSpecificMachine(specificMachine);
+ // This is a read-write association end
+
+ if (_specificMachine != specificMachine) {
+ // Adjust subsetted properties
+ removeSource(_specificMachine);
+
+ _specificMachine = specificMachine;
+ if (specificMachine->asQObject() && this->asQObject())
+ QObject::connect(specificMachine->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecificMachine()));
+
+ // Adjust subsetted properties
+ setOwner(specificMachine);
+ if (specificMachine) {
+ addSource(specificMachine);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlprotocolconformance.h b/src/uml/qumlprotocolconformance.h
index 344c2aff..6c05039b 100644
--- a/src/uml/qumlprotocolconformance.h
+++ b/src/uml/qumlprotocolconformance.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlprotocolconformance_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
QT_BEGIN_HEADER
@@ -52,73 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlProtocolStateMachine;
-class Q_UML_EXPORT QUmlProtocolConformance : public QObject, public UmlProtocolConformance
+class Q_UML_EXPORT QUmlProtocolConformance : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [ProtocolConformance]
- Q_PROPERTY(QUmlProtocolStateMachine * generalMachine READ generalMachine)
- Q_PROPERTY(QUmlProtocolStateMachine * specificMachine READ specificMachine)
-
public:
- Q_INVOKABLE explicit QUmlProtocolConformance(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
+ explicit QUmlProtocolConformance(bool createQObject = true);
+ virtual ~QUmlProtocolConformance();
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [ProtocolConformance]
- Q_INVOKABLE QUmlProtocolStateMachine *generalMachine() const;
- Q_INVOKABLE QUmlProtocolStateMachine *specificMachine() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [ProtocolConformance]
+ // Owned attributes
+ QUmlProtocolStateMachine *generalMachine() const;
void setGeneralMachine(QUmlProtocolStateMachine *generalMachine);
+ QUmlProtocolStateMachine *specificMachine() const;
void setSpecificMachine(QUmlProtocolStateMachine *specificMachine);
+
+protected:
+ QUmlProtocolStateMachine *_generalMachine;
+ QUmlProtocolStateMachine *_specificMachine;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlProtocolConformance *)
-Q_DECLARE_METATYPE(QList<QUmlProtocolConformance *> *)
-Q_DECLARE_METATYPE(QSet<QUmlProtocolConformance *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlProtocolConformance) *)
QT_END_HEADER
diff --git a/src/uml/qumlprotocolstatemachine.cpp b/src/uml/qumlprotocolstatemachine.cpp
index f05ad12f..28a6f421 100644
--- a/src/uml/qumlprotocolstatemachine.cpp
+++ b/src/uml/qumlprotocolstatemachine.cpp
@@ -40,1274 +40,81 @@
****************************************************************************/
#include "qumlprotocolstatemachine.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlProtocolConformance>
-#include <QtUml/QUmlPseudostate>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlRegion>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
+#include "private/qumlprotocolstatemachineobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlProtocolConformance>
/*!
- \class UmlProtocolStateMachine
+ \class QUmlProtocolStateMachine
\inmodule QtUml
\brief 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.
*/
-
-QUmlProtocolStateMachine::QUmlProtocolStateMachine(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlProtocolStateMachine::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlProtocolStateMachine::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlProtocolStateMachine::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlProtocolStateMachine::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlProtocolStateMachine::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlProtocolStateMachine::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlProtocolStateMachine::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlProtocolStateMachine::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlProtocolStateMachine::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlProtocolStateMachine::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlProtocolStateMachine::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlProtocolStateMachine::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlProtocolStateMachine::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlProtocolStateMachine::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlProtocolStateMachine::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlProtocolStateMachine::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlProtocolStateMachine::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlProtocolStateMachine::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlProtocolStateMachine::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlProtocolStateMachine::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlProtocolStateMachine::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlProtocolStateMachine::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlProtocolStateMachine::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlProtocolStateMachine::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlProtocolStateMachine::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlProtocolStateMachine::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlProtocolStateMachine::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlProtocolStateMachine::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlProtocolStateMachine::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlProtocolStateMachine::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlProtocolStateMachine::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlProtocolStateMachine::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlProtocolStateMachine::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlProtocolStateMachine::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlProtocolStateMachine::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlProtocolStateMachine::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlProtocolStateMachine::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlProtocolStateMachine::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlProtocolStateMachine::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlProtocolStateMachine::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlProtocolStateMachine::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlProtocolStateMachine::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlProtocolStateMachine::extension() const
+QUmlProtocolStateMachine::QUmlProtocolStateMachine(bool createQObject) :
+ QUmlStateMachine(false)
{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlProtocolStateMachineObject(this);
}
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlProtocolStateMachine::isAbstract() const
+QUmlProtocolStateMachine::~QUmlProtocolStateMachine()
{
- return _isAbstract;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlProtocolStateMachine::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlProtocolStateMachine::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlProtocolStateMachine::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlProtocolStateMachine::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlProtocolStateMachine::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlProtocolStateMachine::context() const
-{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
-
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlProtocolStateMachine::isReentrant() const
-{
- return _isReentrant;
-}
-
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlProtocolStateMachine::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
-
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlProtocolStateMachine::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
-
-/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
- */
-const QSet<QUmlConstraint *> QUmlProtocolStateMachine::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
-}
-
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlProtocolStateMachine::precondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
-
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlProtocolStateMachine::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
-}
-
-// OWNED ATTRIBUTES [StateMachine]
-
-/*!
- The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.
- */
-const QSet<QUmlPseudostate *> QUmlProtocolStateMachine::connectionPoint() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_connectionPoint));
-}
-
-/*!
- The state machines of which this is an extension.
- */
-const QSet<QUmlStateMachine *> QUmlProtocolStateMachine::extendedStateMachine() const
-{
- return *(reinterpret_cast<const QSet<QUmlStateMachine *> *>(&_extendedStateMachine));
-}
-
-/*!
- The regions owned directly by the state machine.
- */
-const QSet<QUmlRegion *> QUmlProtocolStateMachine::region() const
-{
- return *(reinterpret_cast<const QSet<QUmlRegion *> *>(&_region));
-}
-
-/*!
- References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.
- */
-const QSet<QUmlState *> QUmlProtocolStateMachine::submachineState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_submachineState));
-}
-
-// OWNED ATTRIBUTES [ProtocolStateMachine]
+// OWNED ATTRIBUTES
/*!
Conformance between protocol state machines.
*/
-const QSet<QUmlProtocolConformance *> QUmlProtocolStateMachine::conformance() const
+const QSet<QUmlProtocolConformance *>
+QUmlProtocolStateMachine::conformance() const
{
- return *(reinterpret_cast<const QSet<QUmlProtocolConformance *> *>(&_conformance));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlProtocolStateMachine::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _conformance;
}
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::mustBeOwned() const
+void QUmlProtocolStateMachine::addConformance(QUmlProtocolConformance *conformance)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (!_conformance.contains(conformance)) {
+ _conformance.insert(conformance);
+ if (conformance->asQObject() && this->asQObject())
+ QObject::connect(conformance->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConformance(QObject *)));
+ conformance->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlProtocolStateMachine::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addOwnedElement(conformance);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlProtocolStateMachine::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (conformance) {
+ conformance->setSpecificMachine(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlProtocolStateMachine::removeConformance(QUmlProtocolConformance *conformance)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlProtocolStateMachine::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_conformance.contains(conformance)) {
+ _conformance.remove(conformance);
+ if (conformance->asQObject())
+ conformance->asQObject()->setParent(0);
-// OPERATIONS [Namespace]
+ // Adjust subsetted properties
+ removeOwnedElement(conformance);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlProtocolStateMachine::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlProtocolStateMachine::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlProtocolStateMachine::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlProtocolStateMachine::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlProtocolStateMachine::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlProtocolStateMachine::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlProtocolStateMachine::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlProtocolStateMachine::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlProtocolStateMachine::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlProtocolStateMachine::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlProtocolStateMachine::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlProtocolStateMachine::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// OPERATIONS [StateMachine]
-
-/*!
- 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.
- */
-QUmlNamespace *QUmlProtocolStateMachine::LCA(QUmlState *s1, QUmlState *s2) const
-{
- return reinterpret_cast<QUmlNamespace *>(UmlStateMachine::LCA(s1, s2));
-}
-
-/*!
- The query ancestor(s1, s2) checks whether s1 is an ancestor state of state s2.
- */
-bool QUmlProtocolStateMachine::ancestor(QUmlState *s1, QUmlState *s2) const
-{
- return UmlStateMachine::ancestor(s1, s2);
-}
-
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlStateMachine::isConsistentWith(redefinee);
-}
-
-/*!
- 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.
- */
-bool QUmlProtocolStateMachine::isRedefinitionContextValid(QUmlStateMachine *redefined) const
-{
- return UmlStateMachine::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlProtocolStateMachine::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlProtocolStateMachine::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlProtocolStateMachine::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlProtocolStateMachine::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlProtocolStateMachine::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlProtocolStateMachine::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlProtocolStateMachine::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlProtocolStateMachine::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlProtocolStateMachine::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlProtocolStateMachine::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlProtocolStateMachine::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlProtocolStateMachine::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlProtocolStateMachine::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlProtocolStateMachine::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlProtocolStateMachine::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlProtocolStateMachine::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlProtocolStateMachine::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlProtocolStateMachine::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlProtocolStateMachine::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlProtocolStateMachine::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlProtocolStateMachine::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
+ // Adjust opposite properties
+ if (conformance) {
+ conformance->setSpecificMachine(0);
+ }
+ }
}
-void QUmlProtocolStateMachine::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlProtocolStateMachine::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlProtocolStateMachine::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlProtocolStateMachine::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlProtocolStateMachine::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlProtocolStateMachine::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlProtocolStateMachine::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlProtocolStateMachine::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlProtocolStateMachine::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlProtocolStateMachine::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlProtocolStateMachine::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlProtocolStateMachine::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlProtocolStateMachine::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlProtocolStateMachine::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlProtocolStateMachine::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlProtocolStateMachine::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlProtocolStateMachine::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlProtocolStateMachine::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlProtocolStateMachine::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlProtocolStateMachine::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlProtocolStateMachine::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlProtocolStateMachine::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlProtocolStateMachine::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlProtocolStateMachine::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlProtocolStateMachine::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlProtocolStateMachine::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlProtocolStateMachine::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlProtocolStateMachine::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlProtocolStateMachine::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlProtocolStateMachine::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlProtocolStateMachine::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlProtocolStateMachine::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlProtocolStateMachine::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlProtocolStateMachine::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlProtocolStateMachine::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlProtocolStateMachine::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlProtocolStateMachine::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlProtocolStateMachine::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlProtocolStateMachine::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlProtocolStateMachine::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlProtocolStateMachine::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlProtocolStateMachine::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlProtocolStateMachine::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlProtocolStateMachine::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StateMachine]
-
-void QUmlProtocolStateMachine::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlStateMachine::addConnectionPoint(connectionPoint);
-}
-
-void QUmlProtocolStateMachine::removeConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlStateMachine::removeConnectionPoint(connectionPoint);
-}
-
-void QUmlProtocolStateMachine::addExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- UmlStateMachine::addExtendedStateMachine(extendedStateMachine);
-}
-
-void QUmlProtocolStateMachine::removeExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- UmlStateMachine::removeExtendedStateMachine(extendedStateMachine);
-}
-
-void QUmlProtocolStateMachine::addRegion(UmlRegion *region)
-{
- UmlStateMachine::addRegion(region);
-}
-
-void QUmlProtocolStateMachine::removeRegion(UmlRegion *region)
-{
- UmlStateMachine::removeRegion(region);
-}
-
-void QUmlProtocolStateMachine::addSubmachineState(UmlState *submachineState)
-{
- UmlStateMachine::addSubmachineState(submachineState);
-}
-
-void QUmlProtocolStateMachine::removeSubmachineState(UmlState *submachineState)
-{
- UmlStateMachine::removeSubmachineState(submachineState);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ProtocolStateMachine]
-
-void QUmlProtocolStateMachine::addConformance(UmlProtocolConformance *conformance)
-{
- UmlProtocolStateMachine::addConformance(conformance);
-}
-
-void QUmlProtocolStateMachine::removeConformance(UmlProtocolConformance *conformance)
-{
- UmlProtocolStateMachine::removeConformance(conformance);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlprotocolstatemachine.h b/src/uml/qumlprotocolstatemachine.h
index a9292757..3b089086 100644
--- a/src/uml/qumlprotocolstatemachine.h
+++ b/src/uml/qumlprotocolstatemachine.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlprotocolstatemachine_p.h"
+#include <QtUml/QUmlStateMachine>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,408 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlBehavioralFeature;
-class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
class QUmlProtocolConformance;
-class QUmlPseudostate;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlRegion;
-class QUmlState;
-class QUmlStateMachine;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlProtocolStateMachine : public QObject, public UmlProtocolStateMachine
+class Q_UML_EXPORT QUmlProtocolStateMachine : public QUmlStateMachine
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
- // Properties [StateMachine]
- Q_PROPERTY(QSet<QUmlPseudostate *> connectionPoint READ connectionPoint)
- Q_PROPERTY(QSet<QUmlStateMachine *> extendedStateMachine READ extendedStateMachine)
- Q_PROPERTY(QSet<QUmlRegion *> region READ region)
- Q_PROPERTY(QSet<QUmlState *> submachineState READ submachineState)
-
- // Properties [ProtocolStateMachine]
- Q_PROPERTY(QSet<QUmlProtocolConformance *> conformance READ conformance)
-
public:
- Q_INVOKABLE explicit QUmlProtocolStateMachine(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Owned attributes [StateMachine]
- Q_INVOKABLE const QSet<QUmlPseudostate *> connectionPoint() const;
- Q_INVOKABLE const QSet<QUmlStateMachine *> extendedStateMachine() const;
- Q_INVOKABLE const QSet<QUmlRegion *> region() const;
- Q_INVOKABLE const QSet<QUmlState *> submachineState() const;
-
- // Owned attributes [ProtocolStateMachine]
- Q_INVOKABLE const QSet<QUmlProtocolConformance *> conformance() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
- // Operations [StateMachine]
- Q_INVOKABLE QUmlNamespace *LCA(QUmlState *s1, QUmlState *s2) const;
- Q_INVOKABLE bool ancestor(QUmlState *s1, QUmlState *s2) const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlStateMachine *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Slots for owned attributes [Behavior]
- void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void setSpecification(QUmlBehavioralFeature *specification);
+ explicit QUmlProtocolStateMachine(bool createQObject = true);
+ virtual ~QUmlProtocolStateMachine();
- // Slots for owned attributes [StateMachine]
- void addConnectionPoint(UmlPseudostate *connectionPoint);
- void removeConnectionPoint(UmlPseudostate *connectionPoint);
- void addExtendedStateMachine(UmlStateMachine *extendedStateMachine);
- void removeExtendedStateMachine(UmlStateMachine *extendedStateMachine);
- void addRegion(UmlRegion *region);
- void removeRegion(UmlRegion *region);
- void addSubmachineState(UmlState *submachineState);
- void removeSubmachineState(UmlState *submachineState);
+ // Owned attributes
+ const QSet<QUmlProtocolConformance *> conformance() const;
+ void addConformance(QUmlProtocolConformance *conformance);
+ void removeConformance(QUmlProtocolConformance *conformance);
- // Slots for owned attributes [ProtocolStateMachine]
- void addConformance(UmlProtocolConformance *conformance);
- void removeConformance(UmlProtocolConformance *conformance);
+protected:
+ QSet<QUmlProtocolConformance *> _conformance;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlProtocolStateMachine *)
-Q_DECLARE_METATYPE(QList<QUmlProtocolStateMachine *> *)
-Q_DECLARE_METATYPE(QSet<QUmlProtocolStateMachine *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlProtocolStateMachine) *)
QT_END_HEADER
diff --git a/src/uml/qumlprotocoltransition.cpp b/src/uml/qumlprotocoltransition.cpp
index 8e3ba5a5..79e48d2c 100644
--- a/src/uml/qumlprotocoltransition.cpp
+++ b/src/uml/qumlprotocoltransition.cpp
@@ -40,555 +40,130 @@
****************************************************************************/
#include "qumlprotocoltransition.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
+#include "private/qumlprotocoltransitionobject_p.h"
+
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRegion>
-#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTransition>
-#include <QtUml/QUmlTrigger>
-#include <QtUml/QUmlVertex>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlProtocolTransition
+ \class QUmlProtocolTransition
\inmodule QtUml
\brief A protocol transition 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.
*/
-
-QUmlProtocolTransition::QUmlProtocolTransition(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlProtocolTransition::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlProtocolTransition::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlProtocolTransition::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlProtocolTransition::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlProtocolTransition::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlProtocolTransition::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlProtocolTransition::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlProtocolTransition::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlProtocolTransition::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlProtocolTransition::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlProtocolTransition::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlProtocolTransition::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlProtocolTransition::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlProtocolTransition::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlProtocolTransition::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlProtocolTransition::ownedRule() const
+QUmlProtocolTransition::QUmlProtocolTransition(bool createQObject) :
+ QUmlTransition(false),
+ _postCondition(0),
+ _preCondition(0)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ if (createQObject)
+ _qObject = new QUmlProtocolTransitionObject(this);
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlProtocolTransition::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [Transition]
-
-/*!
- Designates the region that owns this transition.
- */
-QUmlRegion *QUmlProtocolTransition::container() const
-{
- return reinterpret_cast<QUmlRegion *>(_container);
-}
-
-/*!
- Specifies an optional behavior to be performed when the transition fires.
- */
-QUmlBehavior *QUmlProtocolTransition::effect() const
-{
- return reinterpret_cast<QUmlBehavior *>(_effect);
-}
-
-/*!
- 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.
- */
-QUmlConstraint *QUmlProtocolTransition::guard() const
-{
- return reinterpret_cast<QUmlConstraint *>(_guard);
-}
-
-/*!
- Indicates the precise type of the transition.
- */
-QtUml::TransitionKind QUmlProtocolTransition::kind() const
-{
- return _kind;
-}
-
-/*!
- The transition that is redefined by this transition.
- */
-QUmlTransition *QUmlProtocolTransition::redefinedTransition() const
-{
- return reinterpret_cast<QUmlTransition *>(_redefinedTransition);
-}
-
-/*!
- References the classifier in which context this element may be redefined.
- */
-QUmlClassifier *QUmlProtocolTransition::redefinitionContext() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlTransition::redefinitionContext());
-}
-
-/*!
- Designates the originating vertex (state or pseudostate) of the transition.
- */
-QUmlVertex *QUmlProtocolTransition::source() const
-{
- return reinterpret_cast<QUmlVertex *>(_source);
-}
-
-/*!
- Designates the target vertex that is reached when the transition is taken.
- */
-QUmlVertex *QUmlProtocolTransition::target() const
-{
- return reinterpret_cast<QUmlVertex *>(_target);
-}
-
-/*!
- Specifies the triggers that may fire the transition.
- */
-const QSet<QUmlTrigger *> QUmlProtocolTransition::trigger() const
+QUmlProtocolTransition::~QUmlProtocolTransition()
{
- return *(reinterpret_cast<const QSet<QUmlTrigger *> *>(&_trigger));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ProtocolTransition]
+// OWNED ATTRIBUTES
/*!
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.
*/
-QUmlConstraint *QUmlProtocolTransition::postCondition() const
+QUmlConstraint *
+QUmlProtocolTransition::postCondition() const
{
- return reinterpret_cast<QUmlConstraint *>(_postCondition);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QUmlConstraint *QUmlProtocolTransition::preCondition() const
-{
- return reinterpret_cast<QUmlConstraint *>(_preCondition);
-}
-
-/*!
- This association refers to the associated operation. It is derived from the operation of the call trigger when applicable.
- */
-const QSet<QUmlOperation *> QUmlProtocolTransition::referred() const
-{
- QSet<QUmlOperation *> r;
- foreach (UmlOperation *element, UmlProtocolTransition::referred())
- r.insert(reinterpret_cast<QUmlOperation *>(element));
- return r;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlProtocolTransition::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _postCondition;
}
-/*!
- 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.
- */
-bool QUmlProtocolTransition::mustBeOwned() const
+void QUmlProtocolTransition::setPostCondition(QUmlConstraint *postCondition)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_postCondition != postCondition) {
+ // Adjust subsetted properties
+ removeOwnedRule(_postCondition);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlProtocolTransition::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ _postCondition = postCondition;
+ if (postCondition->asQObject() && this->asQObject())
+ QObject::connect(postCondition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setPostCondition()));
+ postCondition->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlProtocolTransition::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust subsetted properties
+ if (postCondition) {
+ addOwnedRule(postCondition);
+ }
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlProtocolTransition::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlConstraint *
+QUmlProtocolTransition::preCondition() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlProtocolTransition::separator() const
-{
- return UmlNamedElement::separator();
+ return _preCondition;
}
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlProtocolTransition::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlProtocolTransition::setPreCondition(QUmlConstraint *preCondition)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
+ if (_preCondition != preCondition) {
+ // Adjust subsetted properties
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlProtocolTransition::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ _preCondition = preCondition;
+ if (preCondition->asQObject() && this->asQObject())
+ QObject::connect(preCondition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setPreCondition()));
+ preCondition->asQObject()->setParent(this->asQObject());
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlProtocolTransition::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ // Adjust subsetted properties
+ setGuard(preCondition);
+ }
}
/*!
- 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.
+ This association refers to the associated operation. It is derived from the operation of the call trigger when applicable.
*/
-QSet<QUmlPackageableElement *> QUmlProtocolTransition::importMembers(QSet<QUmlPackageableElement *> imps) const
+const QSet<QUmlOperation *>
+QUmlProtocolTransition::referred() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlProtocolTransition::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
+ qWarning("UmlProtocolTransition::referred(): to be implemented (this is a derived association end)");
-// OPERATIONS [Transition]
-
-/*!
- The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.
- */
-QUmlStateMachine *QUmlProtocolTransition::containingStateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(UmlTransition::containingStateMachine());
+ return QSet<QUmlOperation *>();
}
-/*!
- 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.
- */
-bool QUmlProtocolTransition::isConsistentWith(QUmlRedefinableElement *redefinee) const
+void QUmlProtocolTransition::addReferred(QUmlOperation *referred)
{
- return UmlTransition::isConsistentWith(redefinee);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-only derived association end
-void QUmlProtocolTransition::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
+ qWarning("UmlProtocolTransition::referred(): to be implemented (this is a derived association end)");
+ Q_UNUSED(referred);
-void QUmlProtocolTransition::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlProtocolTransition::addClientDependency(UmlDependency *clientDependency)
+void QUmlProtocolTransition::removeReferred(QUmlOperation *referred)
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-only derived association end
-void QUmlProtocolTransition::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ qWarning("UmlProtocolTransition::referred(): to be implemented (this is a derived association end)");
+ Q_UNUSED(referred);
-void QUmlProtocolTransition::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlProtocolTransition::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlProtocolTransition::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlProtocolTransition::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlProtocolTransition::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlProtocolTransition::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlProtocolTransition::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlProtocolTransition::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlProtocolTransition::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlProtocolTransition::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Transition]
-
-void QUmlProtocolTransition::setContainer(QUmlRegion *container)
-{
- UmlTransition::setContainer(container);
-}
-
-void QUmlProtocolTransition::setEffect(QUmlBehavior *effect)
-{
- UmlTransition::setEffect(effect);
-}
-
-void QUmlProtocolTransition::setGuard(QUmlConstraint *guard)
-{
- UmlTransition::setGuard(guard);
-}
-
-void QUmlProtocolTransition::setKind(QtUml::TransitionKind kind)
-{
- UmlTransition::setKind(kind);
-}
-
-void QUmlProtocolTransition::setRedefinedTransition(QUmlTransition *redefinedTransition)
-{
- UmlTransition::setRedefinedTransition(redefinedTransition);
-}
-
-void QUmlProtocolTransition::setSource(QUmlVertex *source)
-{
- UmlTransition::setSource(source);
-}
-
-void QUmlProtocolTransition::setTarget(QUmlVertex *target)
-{
- UmlTransition::setTarget(target);
-}
-
-void QUmlProtocolTransition::addTrigger(UmlTrigger *trigger)
-{
- UmlTransition::addTrigger(trigger);
-}
-
-void QUmlProtocolTransition::removeTrigger(UmlTrigger *trigger)
-{
- UmlTransition::removeTrigger(trigger);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ProtocolTransition]
-
-void QUmlProtocolTransition::setPostCondition(QUmlConstraint *postCondition)
-{
- UmlProtocolTransition::setPostCondition(postCondition);
-}
-
-void QUmlProtocolTransition::setPreCondition(QUmlConstraint *preCondition)
-{
- UmlProtocolTransition::setPreCondition(preCondition);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlprotocoltransition.h b/src/uml/qumlprotocoltransition.h
index a1f546f3..941db63a 100644
--- a/src/uml/qumlprotocoltransition.h
+++ b/src/uml/qumlprotocoltransition.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlprotocoltransition_p.h"
+#include <QtUml/QUmlTransition>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,184 +52,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
-class QUmlRegion;
-class QUmlStateMachine;
-class QUmlStringExpression;
-class QUmlTransition;
-class QUmlTrigger;
-class QUmlVertex;
-class Q_UML_EXPORT QUmlProtocolTransition : public QObject, public UmlProtocolTransition
+class Q_UML_EXPORT QUmlProtocolTransition : public QUmlTransition
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [Transition]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QUmlBehavior * effect READ effect)
- Q_PROPERTY(QUmlConstraint * guard READ guard)
- Q_PROPERTY(QtUml::TransitionKind kind READ kind)
- Q_PROPERTY(QUmlTransition * redefinedTransition READ redefinedTransition)
- Q_PROPERTY(QUmlClassifier * redefinitionContext READ redefinitionContext)
- Q_PROPERTY(QUmlVertex * source READ source)
- Q_PROPERTY(QUmlVertex * target READ target)
- Q_PROPERTY(QSet<QUmlTrigger *> trigger READ trigger)
-
- // Properties [ProtocolTransition]
- Q_PROPERTY(QUmlConstraint * postCondition READ postCondition)
- Q_PROPERTY(QUmlConstraint * preCondition READ preCondition)
- Q_PROPERTY(QSet<QUmlOperation *> referred READ referred)
-
public:
- Q_INVOKABLE explicit QUmlProtocolTransition(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [Transition]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE QUmlBehavior *effect() const;
- Q_INVOKABLE QUmlConstraint *guard() const;
- Q_INVOKABLE QtUml::TransitionKind kind() const;
- Q_INVOKABLE QUmlTransition *redefinedTransition() const;
- Q_INVOKABLE QUmlClassifier *redefinitionContext() const;
- Q_INVOKABLE QUmlVertex *source() const;
- Q_INVOKABLE QUmlVertex *target() const;
- Q_INVOKABLE const QSet<QUmlTrigger *> trigger() const;
-
- // Owned attributes [ProtocolTransition]
- Q_INVOKABLE QUmlConstraint *postCondition() const;
- Q_INVOKABLE QUmlConstraint *preCondition() const;
- Q_INVOKABLE const QSet<QUmlOperation *> referred() const;
+ explicit QUmlProtocolTransition(bool createQObject = true);
+ virtual ~QUmlProtocolTransition();
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [Transition]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [Transition]
- void setContainer(QUmlRegion *container);
- void setEffect(QUmlBehavior *effect);
- void setGuard(QUmlConstraint *guard);
- void setKind(QtUml::TransitionKind kind);
- void setRedefinedTransition(QUmlTransition *redefinedTransition);
- void setSource(QUmlVertex *source);
- void setTarget(QUmlVertex *target);
- void addTrigger(UmlTrigger *trigger);
- void removeTrigger(UmlTrigger *trigger);
-
- // Slots for owned attributes [ProtocolTransition]
+ // Owned attributes
+ QUmlConstraint *postCondition() const;
void setPostCondition(QUmlConstraint *postCondition);
+ QUmlConstraint *preCondition() const;
void setPreCondition(QUmlConstraint *preCondition);
+ const QSet<QUmlOperation *> referred() const;
+ Q_DECL_HIDDEN void addReferred(QUmlOperation *referred);
+ Q_DECL_HIDDEN void removeReferred(QUmlOperation *referred);
+
+protected:
+ QUmlConstraint *_postCondition;
+ QUmlConstraint *_preCondition;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlProtocolTransition *)
-Q_DECLARE_METATYPE(QList<QUmlProtocolTransition *> *)
-Q_DECLARE_METATYPE(QSet<QUmlProtocolTransition *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlProtocolTransition) *)
QT_END_HEADER
diff --git a/src/uml/qumlpseudostate.cpp b/src/uml/qumlpseudostate.cpp
index bd912acc..22c18619 100644
--- a/src/uml/qumlpseudostate.cpp
+++ b/src/uml/qumlpseudostate.cpp
@@ -40,300 +40,108 @@
****************************************************************************/
#include "qumlpseudostate.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRegion>
+#include "private/qumlpseudostateobject_p.h"
+
#include <QtUml/QUmlState>
#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTransition>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlPseudostate
+ \class QUmlPseudostate
\inmodule QtUml
\brief A pseudostate is an abstraction that encompasses different types of transient vertices in the state machine graph.
*/
-
-QUmlPseudostate::QUmlPseudostate(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlPseudostate::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlPseudostate::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlPseudostate::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlPseudostate::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlPseudostate::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlPseudostate::nameExpression() const
+QUmlPseudostate::QUmlPseudostate(bool createQObject) :
+ _kind(QtUml::PseudostateKindInitial),
+ _state(0),
+ _stateMachine(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlPseudostateObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlPseudostate::namespace_() const
+QUmlPseudostate::~QUmlPseudostate()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlPseudostate::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlPseudostate::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Vertex]
-
-/*!
- The region that contains this vertex.
- */
-QUmlRegion *QUmlPseudostate::container() const
-{
- return reinterpret_cast<QUmlRegion *>(_container);
-}
-
-/*!
- Specifies the transitions entering this vertex.
- */
-const QSet<QUmlTransition *> QUmlPseudostate::incoming() const
-{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::incoming())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
-
-/*!
- Specifies the transitions departing from this vertex.
- */
-const QSet<QUmlTransition *> QUmlPseudostate::outgoing() const
-{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::outgoing())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Pseudostate]
+// OWNED ATTRIBUTES
/*!
Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice.
*/
-QtUml::PseudostateKind QUmlPseudostate::kind() const
+QtUml::PseudostateKind
+QUmlPseudostate::kind() const
{
+ // This is a read-write property
+
return _kind;
}
-/*!
- The State that owns this pseudostate and in which it appears.
- */
-QUmlState *QUmlPseudostate::state() const
+void QUmlPseudostate::setKind(QtUml::PseudostateKind kind)
{
- return reinterpret_cast<QUmlState *>(_state);
-}
+ // This is a read-write property
-/*!
- The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.
- */
-QUmlStateMachine *QUmlPseudostate::stateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(_stateMachine);
+ if (_kind != kind) {
+ _kind = kind;
+ }
}
-// OPERATIONS [Element]
-
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ The State that owns this pseudostate and in which it appears.
*/
-QSet<QUmlElement *> QUmlPseudostate::allOwnedElements() const
+QUmlState *
+QUmlPseudostate::state() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlPseudostate::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _state;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlPseudostate::allNamespaces() const
+void QUmlPseudostate::setState(QUmlState *state)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlPseudostate::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (_state != state) {
+ // Adjust subsetted properties
-/*!
- 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.
- */
-bool QUmlPseudostate::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ _state = state;
+ if (state->asQObject() && this->asQObject())
+ QObject::connect(state->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setState()));
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlPseudostate::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust subsetted properties
+ setNamespace(state);
+ }
}
-// OPERATIONS [Vertex]
-
/*!
- The operation containingStateMachine() returns the state machine in which this Vertex is defined
+ The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.
*/
-QUmlStateMachine *QUmlPseudostate::containingStateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(UmlVertex::containingStateMachine());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlPseudostate::addOwnedComment(UmlComment *ownedComment)
+QUmlStateMachine *
+QUmlPseudostate::stateMachine() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlPseudostate::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlPseudostate::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlPseudostate::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlPseudostate::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlPseudostate::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
+ return _stateMachine;
}
-void QUmlPseudostate::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Vertex]
-
-void QUmlPseudostate::setContainer(QUmlRegion *container)
+void QUmlPseudostate::setStateMachine(QUmlStateMachine *stateMachine)
{
- UmlVertex::setContainer(container);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Pseudostate]
-
-void QUmlPseudostate::setKind(QtUml::PseudostateKind kind)
-{
- UmlPseudostate::setKind(kind);
-}
+ if (_stateMachine != stateMachine) {
+ // Adjust subsetted properties
-void QUmlPseudostate::setState(QUmlState *state)
-{
- UmlPseudostate::setState(state);
-}
+ _stateMachine = stateMachine;
+ if (stateMachine->asQObject() && this->asQObject())
+ QObject::connect(stateMachine->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setStateMachine()));
-void QUmlPseudostate::setStateMachine(QUmlStateMachine *stateMachine)
-{
- UmlPseudostate::setStateMachine(stateMachine);
+ // Adjust subsetted properties
+ setNamespace(stateMachine);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlpseudostate.h b/src/uml/qumlpseudostate.h
index 0c1f73ce..6f6be837 100644
--- a/src/uml/qumlpseudostate.h
+++ b/src/uml/qumlpseudostate.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlpseudostate_p.h"
+#include <QtUml/QUmlVertex>
+
#include <QtUml/QtUmlNamespace>
@@ -54,111 +54,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRegion;
class QUmlState;
class QUmlStateMachine;
-class QUmlStringExpression;
-class QUmlTransition;
-class Q_UML_EXPORT QUmlPseudostate : public QObject, public UmlPseudostate
+class Q_UML_EXPORT QUmlPseudostate : public QUmlVertex
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Vertex]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QSet<QUmlTransition *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlTransition *> outgoing READ outgoing)
-
- // Properties [Pseudostate]
- Q_PROPERTY(QtUml::PseudostateKind kind READ kind)
- Q_PROPERTY(QUmlState * state READ state)
- Q_PROPERTY(QUmlStateMachine * stateMachine READ stateMachine)
-
public:
- Q_INVOKABLE explicit QUmlPseudostate(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Vertex]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE const QSet<QUmlTransition *> incoming() const;
- Q_INVOKABLE const QSet<QUmlTransition *> outgoing() const;
-
- // Owned attributes [Pseudostate]
- Q_INVOKABLE QtUml::PseudostateKind kind() const;
- Q_INVOKABLE QUmlState *state() const;
- Q_INVOKABLE QUmlStateMachine *stateMachine() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Vertex]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Vertex]
- void setContainer(QUmlRegion *container);
-
- // Slots for owned attributes [Pseudostate]
+ explicit QUmlPseudostate(bool createQObject = true);
+ virtual ~QUmlPseudostate();
+
+ // Owned attributes
+ QtUml::PseudostateKind kind() const;
void setKind(QtUml::PseudostateKind kind);
+ QUmlState *state() const;
void setState(QUmlState *state);
+ QUmlStateMachine *stateMachine() const;
void setStateMachine(QUmlStateMachine *stateMachine);
+
+protected:
+ QtUml::PseudostateKind _kind;
+ QUmlState *_state;
+ QUmlStateMachine *_stateMachine;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlPseudostate *)
-Q_DECLARE_METATYPE(QList<QUmlPseudostate *> *)
-Q_DECLARE_METATYPE(QSet<QUmlPseudostate *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlPseudostate) *)
QT_END_HEADER
diff --git a/src/uml/qumlqualifiervalue.cpp b/src/uml/qumlqualifiervalue.cpp
index 8e4bf437..5331e121 100644
--- a/src/uml/qumlqualifiervalue.cpp
+++ b/src/uml/qumlqualifiervalue.cpp
@@ -40,114 +40,77 @@
****************************************************************************/
#include "qumlqualifiervalue.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumlqualifiervalueobject_p.h"
+
#include <QtUml/QUmlInputPin>
#include <QtUml/QUmlProperty>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlQualifierValue
+ \class QUmlQualifierValue
\inmodule QtUml
\brief A qualifier value is not an action. It is an element that identifies links. It gives a single qualifier within a link end data specification.
*/
-
-QUmlQualifierValue::QUmlQualifierValue(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlQualifierValue::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlQualifierValue::ownedElement() const
+QUmlQualifierValue::QUmlQualifierValue(bool createQObject) :
+ _qualifier(0),
+ _value(0)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlQualifierValueObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlQualifierValue::owner() const
+QUmlQualifierValue::~QUmlQualifierValue()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [QualifierValue]
+// OWNED ATTRIBUTES
/*!
Attribute representing the qualifier for which the value is to be specified.
*/
-QUmlProperty *QUmlQualifierValue::qualifier() const
+QUmlProperty *
+QUmlQualifierValue::qualifier() const
{
- return reinterpret_cast<QUmlProperty *>(_qualifier);
-}
+ // This is a read-write association end
-/*!
- Input pin from which the specified value for the qualifier is taken.
- */
-QUmlInputPin *QUmlQualifierValue::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
+ return _qualifier;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlQualifierValue::allOwnedElements() const
+void QUmlQualifierValue::setQualifier(QUmlProperty *qualifier)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write association end
+
+ if (_qualifier != qualifier) {
+ _qualifier = qualifier;
+ if (qualifier->asQObject() && this->asQObject())
+ QObject::connect(qualifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setQualifier()));
+ }
}
/*!
- 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.
+ Input pin from which the specified value for the qualifier is taken.
*/
-bool QUmlQualifierValue::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlQualifierValue::addOwnedComment(UmlComment *ownedComment)
+QUmlInputPin *
+QUmlQualifierValue::value() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlQualifierValue::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [QualifierValue]
-
-void QUmlQualifierValue::setQualifier(QUmlProperty *qualifier)
-{
- UmlQualifierValue::setQualifier(qualifier);
+ return _value;
}
void QUmlQualifierValue::setValue(QUmlInputPin *value)
{
- UmlQualifierValue::setValue(value);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_value != value) {
+ _value = value;
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setValue()));
+ }
+}
diff --git a/src/uml/qumlqualifiervalue.h b/src/uml/qumlqualifiervalue.h
index f4407d84..cfcce0d1 100644
--- a/src/uml/qumlqualifiervalue.h
+++ b/src/uml/qumlqualifiervalue.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlqualifiervalue_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,56 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlInputPin;
class QUmlProperty;
-class Q_UML_EXPORT QUmlQualifierValue : public QObject, public UmlQualifierValue
+class Q_UML_EXPORT QUmlQualifierValue : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [QualifierValue]
- Q_PROPERTY(QUmlProperty * qualifier READ qualifier)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
public:
- Q_INVOKABLE explicit QUmlQualifierValue(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ explicit QUmlQualifierValue(bool createQObject = true);
+ virtual ~QUmlQualifierValue();
- // Owned attributes [QualifierValue]
- Q_INVOKABLE QUmlProperty *qualifier() const;
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [QualifierValue]
+ // Owned attributes
+ QUmlProperty *qualifier() const;
void setQualifier(QUmlProperty *qualifier);
+ QUmlInputPin *value() const;
void setValue(QUmlInputPin *value);
+
+protected:
+ QUmlProperty *_qualifier;
+ QUmlInputPin *_value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlQualifierValue *)
-Q_DECLARE_METATYPE(QList<QUmlQualifierValue *> *)
-Q_DECLARE_METATYPE(QSet<QUmlQualifierValue *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlQualifierValue) *)
QT_END_HEADER
diff --git a/src/uml/qumlraiseexceptionaction.cpp b/src/uml/qumlraiseexceptionaction.cpp
index 6377ae5c..aecc455a 100644
--- a/src/uml/qumlraiseexceptionaction.cpp
+++ b/src/uml/qumlraiseexceptionaction.cpp
@@ -40,512 +40,62 @@
****************************************************************************/
#include "qumlraiseexceptionaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlraiseexceptionactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlRaiseExceptionAction
+ \class QUmlRaiseExceptionAction
\inmodule QtUml
\brief A raise exception action is an action that causes an exception to occur. The input value becomes the exception object.
*/
-
-QUmlRaiseExceptionAction::QUmlRaiseExceptionAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRaiseExceptionAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRaiseExceptionAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlRaiseExceptionAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRaiseExceptionAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlRaiseExceptionAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRaiseExceptionAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlRaiseExceptionAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlRaiseExceptionAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlRaiseExceptionAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlRaiseExceptionAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlRaiseExceptionAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlRaiseExceptionAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlRaiseExceptionAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlRaiseExceptionAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlRaiseExceptionAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlRaiseExceptionAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlRaiseExceptionAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlRaiseExceptionAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlRaiseExceptionAction::outgoing() const
+QUmlRaiseExceptionAction::QUmlRaiseExceptionAction(bool createQObject) :
+ _exception(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (createQObject)
+ _qObject = new QUmlRaiseExceptionActionObject(this);
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlRaiseExceptionAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlRaiseExceptionAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlRaiseExceptionAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlRaiseExceptionAction::input() const
+QUmlRaiseExceptionAction::~QUmlRaiseExceptionAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlRaiseExceptionAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlRaiseExceptionAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlRaiseExceptionAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlRaiseExceptionAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [RaiseExceptionAction]
+// OWNED ATTRIBUTES
/*!
An input pin whose value becomes an exception object.
*/
-QUmlInputPin *QUmlRaiseExceptionAction::exception() const
-{
- return reinterpret_cast<QUmlInputPin *>(_exception);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRaiseExceptionAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRaiseExceptionAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRaiseExceptionAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRaiseExceptionAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRaiseExceptionAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRaiseExceptionAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlRaiseExceptionAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlRaiseExceptionAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRaiseExceptionAction::addOwnedComment(UmlComment *ownedComment)
+QUmlInputPin *
+QUmlRaiseExceptionAction::exception() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlRaiseExceptionAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _exception;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRaiseExceptionAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRaiseExceptionAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlRaiseExceptionAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlRaiseExceptionAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlRaiseExceptionAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlRaiseExceptionAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlRaiseExceptionAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlRaiseExceptionAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlRaiseExceptionAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlRaiseExceptionAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlRaiseExceptionAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlRaiseExceptionAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlRaiseExceptionAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlRaiseExceptionAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlRaiseExceptionAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlRaiseExceptionAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlRaiseExceptionAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlRaiseExceptionAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlRaiseExceptionAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlRaiseExceptionAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlRaiseExceptionAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlRaiseExceptionAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlRaiseExceptionAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlRaiseExceptionAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlRaiseExceptionAction::setException(QUmlInputPin *exception)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlRaiseExceptionAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ if (_exception != exception) {
+ // Adjust subsetted properties
+ removeInput(_exception);
-// SLOTS FOR OWNED ATTRIBUTES [RaiseExceptionAction]
+ _exception = exception;
+ if (exception->asQObject() && this->asQObject())
+ QObject::connect(exception->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setException()));
+ exception->asQObject()->setParent(this->asQObject());
-void QUmlRaiseExceptionAction::setException(QUmlInputPin *exception)
-{
- UmlRaiseExceptionAction::setException(exception);
+ // Adjust subsetted properties
+ if (exception) {
+ addInput(exception);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlraiseexceptionaction.h b/src/uml/qumlraiseexceptionaction.h
index 972fa97c..c31c39ce 100644
--- a/src/uml/qumlraiseexceptionaction.h
+++ b/src/uml/qumlraiseexceptionaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlraiseexceptionaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,182 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlRaiseExceptionAction : public QObject, public UmlRaiseExceptionAction
+class Q_UML_EXPORT QUmlRaiseExceptionAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [RaiseExceptionAction]
- Q_PROPERTY(QUmlInputPin * exception READ exception)
-
public:
- Q_INVOKABLE explicit QUmlRaiseExceptionAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlRaiseExceptionAction(bool createQObject = true);
+ virtual ~QUmlRaiseExceptionAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [RaiseExceptionAction]
- Q_INVOKABLE QUmlInputPin *exception() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [RaiseExceptionAction]
+ // Owned attributes
+ QUmlInputPin *exception() const;
void setException(QUmlInputPin *exception);
+
+protected:
+ QUmlInputPin *_exception;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRaiseExceptionAction *)
-Q_DECLARE_METATYPE(QList<QUmlRaiseExceptionAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRaiseExceptionAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRaiseExceptionAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadextentaction.cpp b/src/uml/qumlreadextentaction.cpp
index 6fc26c7f..38f88084 100644
--- a/src/uml/qumlreadextentaction.cpp
+++ b/src/uml/qumlreadextentaction.cpp
@@ -40,525 +40,86 @@
****************************************************************************/
#include "qumlreadextentaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlreadextentactionobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlReadExtentAction
+ \class QUmlReadExtentAction
\inmodule QtUml
\brief A read extent action is an action that retrieves the current instances of a classifier.
*/
-
-QUmlReadExtentAction::QUmlReadExtentAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadExtentAction::ownedComment() const
+QUmlReadExtentAction::QUmlReadExtentAction(bool createQObject) :
+ _classifier(0),
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlReadExtentActionObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadExtentAction::ownedElement() const
+QUmlReadExtentAction::~QUmlReadExtentAction()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadExtentAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadExtentAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadExtentAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadExtentAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadExtentAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadExtentAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadExtentAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadExtentAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadExtentAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadExtentAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadExtentAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadExtentAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadExtentAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadExtentAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadExtentAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadExtentAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadExtentAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadExtentAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadExtentAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadExtentAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadExtentAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadExtentAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadExtentAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadExtentAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadExtentAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ReadExtentAction]
+// OWNED ATTRIBUTES
/*!
The classifier whose instances are to be retrieved.
*/
-QUmlClassifier *QUmlReadExtentAction::classifier() const
-{
- return reinterpret_cast<QUmlClassifier *>(_classifier);
-}
-
-/*!
- The runtime instances of the classifier.
- */
-QUmlOutputPin *QUmlReadExtentAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadExtentAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadExtentAction::mustBeOwned() const
+QUmlClassifier *
+QUmlReadExtentAction::classifier() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadExtentAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadExtentAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadExtentAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _classifier;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadExtentAction::separator() const
+void QUmlReadExtentAction::setClassifier(QUmlClassifier *classifier)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReadExtentAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_classifier != classifier) {
+ _classifier = classifier;
+ if (classifier->asQObject() && this->asQObject())
+ QObject::connect(classifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClassifier()));
+ }
}
/*!
- 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.
+ The runtime instances of the classifier.
*/
-bool QUmlReadExtentAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadExtentAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadExtentAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadExtentAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadExtentAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadExtentAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadExtentAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadExtentAction::setVisibility(QtUml::VisibilityKind visibility)
+QUmlOutputPin *
+QUmlReadExtentAction::result() const
{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadExtentAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadExtentAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadExtentAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadExtentAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadExtentAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadExtentAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadExtentAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadExtentAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReadExtentAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadExtentAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadExtentAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadExtentAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadExtentAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadExtentAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadExtentAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadExtentAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReadExtentAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlReadExtentAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadExtentAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
+ return _result;
}
-void QUmlReadExtentAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReadExtentAction::setResult(QUmlOutputPin *result)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ReadExtentAction]
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-void QUmlReadExtentAction::setClassifier(QUmlClassifier *classifier)
-{
- UmlReadExtentAction::setClassifier(classifier);
-}
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadExtentAction::setResult(QUmlOutputPin *result)
-{
- UmlReadExtentAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadextentaction.h b/src/uml/qumlreadextentaction.h
index 755c4b6a..84ab4e0b 100644
--- a/src/uml/qumlreadextentaction.h
+++ b/src/uml/qumlreadextentaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadextentaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,185 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadExtentAction : public QObject, public UmlReadExtentAction
+class Q_UML_EXPORT QUmlReadExtentAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReadExtentAction]
- Q_PROPERTY(QUmlClassifier * classifier READ classifier)
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadExtentAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReadExtentAction(bool createQObject = true);
+ virtual ~QUmlReadExtentAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReadExtentAction]
- Q_INVOKABLE QUmlClassifier *classifier() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReadExtentAction]
+ // Owned attributes
+ QUmlClassifier *classifier() const;
void setClassifier(QUmlClassifier *classifier);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlClassifier *_classifier;
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadExtentAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadExtentAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadExtentAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadExtentAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadisclassifiedobjectaction.cpp b/src/uml/qumlreadisclassifiedobjectaction.cpp
index d27c8671..47050cd9 100644
--- a/src/uml/qumlreadisclassifiedobjectaction.cpp
+++ b/src/uml/qumlreadisclassifiedobjectaction.cpp
@@ -40,551 +40,140 @@
****************************************************************************/
#include "qumlreadisclassifiedobjectaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlreadisclassifiedobjectactionobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlReadIsClassifiedObjectAction
+ \class QUmlReadIsClassifiedObjectAction
\inmodule QtUml
\brief A read is classified object action is an action that determines whether a runtime object is classified by a given classifier.
*/
-
-QUmlReadIsClassifiedObjectAction::QUmlReadIsClassifiedObjectAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadIsClassifiedObjectAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadIsClassifiedObjectAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadIsClassifiedObjectAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadIsClassifiedObjectAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadIsClassifiedObjectAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadIsClassifiedObjectAction::nameExpression() const
+QUmlReadIsClassifiedObjectAction::QUmlReadIsClassifiedObjectAction(bool createQObject) :
+ _classifier(0),
+ _isDirect(false),
+ _object(0),
+ _result(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlReadIsClassifiedObjectActionObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadIsClassifiedObjectAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadIsClassifiedObjectAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadIsClassifiedObjectAction::visibility() const
+QUmlReadIsClassifiedObjectAction::~QUmlReadIsClassifiedObjectAction()
{
- return _visibility;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [RedefinableElement]
+// OWNED ATTRIBUTES
/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadIsClassifiedObjectAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadIsClassifiedObjectAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadIsClassifiedObjectAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadIsClassifiedObjectAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadIsClassifiedObjectAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadIsClassifiedObjectAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadIsClassifiedObjectAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadIsClassifiedObjectAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadIsClassifiedObjectAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadIsClassifiedObjectAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadIsClassifiedObjectAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadIsClassifiedObjectAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadIsClassifiedObjectAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadIsClassifiedObjectAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadIsClassifiedObjectAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
+ The classifier against which the classification of the input object is tested.
*/
-const QSet<QUmlConstraint *> QUmlReadIsClassifiedObjectAction::localPostcondition() const
+QUmlClassifier *
+QUmlReadIsClassifiedObjectAction::classifier() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadIsClassifiedObjectAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
+ return _classifier;
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadIsClassifiedObjectAction::output() const
+void QUmlReadIsClassifiedObjectAction::setClassifier(QUmlClassifier *classifier)
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ReadIsClassifiedObjectAction]
+ // This is a read-write association end
-/*!
- The classifier against which the classification of the input object is tested.
- */
-QUmlClassifier *QUmlReadIsClassifiedObjectAction::classifier() const
-{
- return reinterpret_cast<QUmlClassifier *>(_classifier);
+ if (_classifier != classifier) {
+ _classifier = classifier;
+ if (classifier->asQObject() && this->asQObject())
+ QObject::connect(classifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClassifier()));
+ }
}
/*!
Indicates whether the classifier must directly classify the input object.
*/
-bool QUmlReadIsClassifiedObjectAction::isDirect() const
+bool
+QUmlReadIsClassifiedObjectAction::isDirect() const
{
+ // This is a read-write property
+
return _isDirect;
}
-/*!
- Holds the object whose classification is to be tested.
- */
-QUmlInputPin *QUmlReadIsClassifiedObjectAction::object() const
+void QUmlReadIsClassifiedObjectAction::setDirect(bool isDirect)
{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
+ // This is a read-write property
-/*!
- After termination of the action, will hold the result of the test.
- */
-QUmlOutputPin *QUmlReadIsClassifiedObjectAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
+ if (_isDirect != isDirect) {
+ _isDirect = isDirect;
+ }
}
-// OPERATIONS [Element]
-
/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
+ Holds the object whose classification is to be tested.
*/
-QSet<QUmlElement *> QUmlReadIsClassifiedObjectAction::allOwnedElements() const
+QUmlInputPin *
+QUmlReadIsClassifiedObjectAction::object() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReadIsClassifiedObjectAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _object;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadIsClassifiedObjectAction::allNamespaces() const
+void QUmlReadIsClassifiedObjectAction::setObject(QUmlInputPin *object)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadIsClassifiedObjectAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-/*!
- 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.
- */
-bool QUmlReadIsClassifiedObjectAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadIsClassifiedObjectAction::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
-// OPERATIONS [RedefinableElement]
-
/*!
- 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.
- */
-bool QUmlReadIsClassifiedObjectAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ After termination of the action, will hold the result of the test.
*/
-bool QUmlReadIsClassifiedObjectAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadIsClassifiedObjectAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadIsClassifiedObjectAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadIsClassifiedObjectAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadIsClassifiedObjectAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadIsClassifiedObjectAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadIsClassifiedObjectAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadIsClassifiedObjectAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadIsClassifiedObjectAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadIsClassifiedObjectAction::addInPartition(UmlActivityPartition *inPartition)
+QUmlOutputPin *
+QUmlReadIsClassifiedObjectAction::result() const
{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlReadIsClassifiedObjectAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadIsClassifiedObjectAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
+ return _result;
}
-void QUmlReadIsClassifiedObjectAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadIsClassifiedObjectAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadIsClassifiedObjectAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadIsClassifiedObjectAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadIsClassifiedObjectAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReadIsClassifiedObjectAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadIsClassifiedObjectAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlReadIsClassifiedObjectAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReadIsClassifiedObjectAction::setResult(QUmlOutputPin *result)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ReadIsClassifiedObjectAction]
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-void QUmlReadIsClassifiedObjectAction::setClassifier(QUmlClassifier *classifier)
-{
- UmlReadIsClassifiedObjectAction::setClassifier(classifier);
-}
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadIsClassifiedObjectAction::setDirect(bool isDirect)
-{
- UmlReadIsClassifiedObjectAction::setDirect(isDirect);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-void QUmlReadIsClassifiedObjectAction::setObject(QUmlInputPin *object)
-{
- UmlReadIsClassifiedObjectAction::setObject(object);
-}
-
-void QUmlReadIsClassifiedObjectAction::setResult(QUmlOutputPin *result)
-{
- UmlReadIsClassifiedObjectAction::setResult(result);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadisclassifiedobjectaction.h b/src/uml/qumlreadisclassifiedobjectaction.h
index 368ce3ac..6e35d4fe 100644
--- a/src/uml/qumlreadisclassifiedobjectaction.h
+++ b/src/uml/qumlreadisclassifiedobjectaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadisclassifiedobjectaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,191 +52,36 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadIsClassifiedObjectAction : public QObject, public UmlReadIsClassifiedObjectAction
+class Q_UML_EXPORT QUmlReadIsClassifiedObjectAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReadIsClassifiedObjectAction]
- Q_PROPERTY(QUmlClassifier * classifier READ classifier)
- Q_PROPERTY(bool isDirect READ isDirect)
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadIsClassifiedObjectAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReadIsClassifiedObjectAction(bool createQObject = true);
+ virtual ~QUmlReadIsClassifiedObjectAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReadIsClassifiedObjectAction]
- Q_INVOKABLE QUmlClassifier *classifier() const;
- Q_INVOKABLE bool isDirect() const;
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReadIsClassifiedObjectAction]
+ // Owned attributes
+ QUmlClassifier *classifier() const;
void setClassifier(QUmlClassifier *classifier);
+ bool isDirect() const;
void setDirect(bool isDirect);
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlClassifier *_classifier;
+ bool _isDirect;
+ QUmlInputPin *_object;
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadIsClassifiedObjectAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadIsClassifiedObjectAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadIsClassifiedObjectAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadIsClassifiedObjectAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadlinkaction.cpp b/src/uml/qumlreadlinkaction.cpp
index c29d3e59..72cda836 100644
--- a/src/uml/qumlreadlinkaction.cpp
+++ b/src/uml/qumlreadlinkaction.cpp
@@ -40,564 +40,62 @@
****************************************************************************/
#include "qumlreadlinkaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlLinkEndData>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlreadlinkactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlReadLinkAction
+ \class QUmlReadLinkAction
\inmodule QtUml
\brief A read link action is a link action that navigates across associations to retrieve objects on one end.
*/
-
-QUmlReadLinkAction::QUmlReadLinkAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadLinkAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadLinkAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadLinkAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadLinkAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadLinkAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadLinkAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadLinkAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadLinkAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadLinkAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadLinkAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadLinkAction::redefinedElement() const
+QUmlReadLinkAction::QUmlReadLinkAction(bool createQObject) :
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (createQObject)
+ _qObject = new QUmlReadLinkActionObject(this);
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadLinkAction::redefinitionContext() const
+QUmlReadLinkAction::~QUmlReadLinkAction()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadLinkAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadLinkAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadLinkAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadLinkAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadLinkAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadLinkAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadLinkAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadLinkAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadLinkAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadLinkAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadLinkAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadLinkAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadLinkAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadLinkAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadLinkAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [LinkAction]
-
-/*!
- Data identifying one end of a link by the objects on its ends and qualifiers.
- */
-const QSet<QUmlLinkEndData *> QUmlReadLinkAction::endData() const
-{
- return *(reinterpret_cast<const QSet<QUmlLinkEndData *> *>(&_endData));
-}
-
-/*!
- Pins taking end objects and qualifier values as input.
- */
-const QSet<QUmlInputPin *> QUmlReadLinkAction::inputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
-}
-
-// OWNED ATTRIBUTES [ReadLinkAction]
+// OWNED ATTRIBUTES
/*!
The pin on which are put the objects participating in the association at the end not specified by the inputs.
*/
-QUmlOutputPin *QUmlReadLinkAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadLinkAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadLinkAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadLinkAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadLinkAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadLinkAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadLinkAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlReadLinkAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlReadLinkAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [LinkAction]
-
-/*!
- The association operates on LinkAction. It returns the association of the action.
- */
-QUmlAssociation *QUmlReadLinkAction::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(UmlLinkAction::association());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadLinkAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadLinkAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadLinkAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadLinkAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadLinkAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadLinkAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadLinkAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadLinkAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadLinkAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadLinkAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadLinkAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadLinkAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadLinkAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadLinkAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadLinkAction::addIncoming(UmlActivityEdge *incoming)
+QUmlOutputPin *
+QUmlReadLinkAction::result() const
{
- UmlActivityNode::addIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlReadLinkAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadLinkAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadLinkAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadLinkAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadLinkAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
+ return _result;
}
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadLinkAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadLinkAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadLinkAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReadLinkAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadLinkAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadLinkAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlReadLinkAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
-
-void QUmlReadLinkAction::addEndData(UmlLinkEndData *endData)
-{
- UmlLinkAction::addEndData(endData);
-}
-
-void QUmlReadLinkAction::removeEndData(UmlLinkEndData *endData)
-{
- UmlLinkAction::removeEndData(endData);
-}
-
-void QUmlReadLinkAction::addInputValue(UmlInputPin *inputValue)
+void QUmlReadLinkAction::setResult(QUmlOutputPin *result)
{
- UmlLinkAction::addInputValue(inputValue);
-}
+ // This is a read-write association end
-void QUmlReadLinkAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::removeInputValue(inputValue);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ReadLinkAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadLinkAction::setResult(QUmlOutputPin *result)
-{
- UmlReadLinkAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadlinkaction.h b/src/uml/qumlreadlinkaction.h
index 855ee9b2..576a949c 100644
--- a/src/uml/qumlreadlinkaction.h
+++ b/src/uml/qumlreadlinkaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadlinkaction_p.h"
+#include <QtUml/QUmlLinkAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,201 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlLinkEndData;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadLinkAction : public QObject, public UmlReadLinkAction
+class Q_UML_EXPORT QUmlReadLinkAction : public QUmlLinkAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [LinkAction]
- Q_PROPERTY(QSet<QUmlLinkEndData *> endData READ endData)
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
-
- // Properties [ReadLinkAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadLinkAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlReadLinkAction(bool createQObject = true);
+ virtual ~QUmlReadLinkAction();
- // Owned attributes [LinkAction]
- Q_INVOKABLE const QSet<QUmlLinkEndData *> endData() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
-
- // Owned attributes [ReadLinkAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [LinkAction]
- Q_INVOKABLE QUmlAssociation *association() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [LinkAction]
- void addEndData(UmlLinkEndData *endData);
- void removeEndData(UmlLinkEndData *endData);
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
-
- // Slots for owned attributes [ReadLinkAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadLinkAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadLinkAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadLinkAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadLinkAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadlinkobjectendaction.cpp b/src/uml/qumlreadlinkobjectendaction.cpp
index b911a21e..9981b637 100644
--- a/src/uml/qumlreadlinkobjectendaction.cpp
+++ b/src/uml/qumlreadlinkobjectendaction.cpp
@@ -40,539 +40,119 @@
****************************************************************************/
#include "qumlreadlinkobjectendaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlreadlinkobjectendactionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlReadLinkObjectEndAction
+ \class QUmlReadLinkObjectEndAction
\inmodule QtUml
\brief A read link object end action is an action that retrieves an end object from a link object.
*/
-
-QUmlReadLinkObjectEndAction::QUmlReadLinkObjectEndAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadLinkObjectEndAction::ownedComment() const
+QUmlReadLinkObjectEndAction::QUmlReadLinkObjectEndAction(bool createQObject) :
+ _end(0),
+ _object(0),
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlReadLinkObjectEndActionObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadLinkObjectEndAction::ownedElement() const
+QUmlReadLinkObjectEndAction::~QUmlReadLinkObjectEndAction()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadLinkObjectEndAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadLinkObjectEndAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadLinkObjectEndAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadLinkObjectEndAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadLinkObjectEndAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadLinkObjectEndAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadLinkObjectEndAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadLinkObjectEndAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadLinkObjectEndAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadLinkObjectEndAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadLinkObjectEndAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadLinkObjectEndAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadLinkObjectEndAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadLinkObjectEndAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadLinkObjectEndAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadLinkObjectEndAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadLinkObjectEndAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadLinkObjectEndAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadLinkObjectEndAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadLinkObjectEndAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadLinkObjectEndAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadLinkObjectEndAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadLinkObjectEndAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadLinkObjectEndAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadLinkObjectEndAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ReadLinkObjectEndAction]
+// OWNED ATTRIBUTES
/*!
Link end to be read.
*/
-QUmlProperty *QUmlReadLinkObjectEndAction::end() const
+QUmlProperty *
+QUmlReadLinkObjectEndAction::end() const
{
- return reinterpret_cast<QUmlProperty *>(_end);
-}
+ // This is a read-write association end
-/*!
- Gives the input pin from which the link object is obtained.
- */
-QUmlInputPin *QUmlReadLinkObjectEndAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
+ return _end;
}
-/*!
- Pin where the result value is placed.
- */
-QUmlOutputPin *QUmlReadLinkObjectEndAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadLinkObjectEndAction::allOwnedElements() const
+void QUmlReadLinkObjectEndAction::setEnd(QUmlProperty *end)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReadLinkObjectEndAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ if (_end != end) {
+ _end = end;
+ if (end->asQObject() && this->asQObject())
+ QObject::connect(end->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEnd()));
+ }
}
-// OPERATIONS [NamedElement]
-
/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
+ Gives the input pin from which the link object is obtained.
*/
-QList<QUmlNamespace *> QUmlReadLinkObjectEndAction::allNamespaces() const
+QUmlInputPin *
+QUmlReadLinkObjectEndAction::object() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadLinkObjectEndAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _object;
}
-/*!
- 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.
- */
-bool QUmlReadLinkObjectEndAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlReadLinkObjectEndAction::setObject(QUmlInputPin *object)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadLinkObjectEndAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// OPERATIONS [RedefinableElement]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlReadLinkObjectEndAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
/*!
- 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.
+ Pin where the result value is placed.
*/
-bool QUmlReadLinkObjectEndAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadLinkObjectEndAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadLinkObjectEndAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadLinkObjectEndAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadLinkObjectEndAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadLinkObjectEndAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadLinkObjectEndAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadLinkObjectEndAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadLinkObjectEndAction::setLeaf(bool isLeaf)
+QUmlOutputPin *
+QUmlReadLinkObjectEndAction::result() const
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadLinkObjectEndAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadLinkObjectEndAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadLinkObjectEndAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadLinkObjectEndAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadLinkObjectEndAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadLinkObjectEndAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadLinkObjectEndAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReadLinkObjectEndAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadLinkObjectEndAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadLinkObjectEndAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadLinkObjectEndAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadLinkObjectEndAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadLinkObjectEndAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadLinkObjectEndAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadLinkObjectEndAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReadLinkObjectEndAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlReadLinkObjectEndAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
+ return _result;
}
-void QUmlReadLinkObjectEndAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReadLinkObjectEndAction::setResult(QUmlOutputPin *result)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlReadLinkObjectEndAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ReadLinkObjectEndAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadLinkObjectEndAction::setEnd(QUmlProperty *end)
-{
- UmlReadLinkObjectEndAction::setEnd(end);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-void QUmlReadLinkObjectEndAction::setObject(QUmlInputPin *object)
-{
- UmlReadLinkObjectEndAction::setObject(object);
-}
-
-void QUmlReadLinkObjectEndAction::setResult(QUmlOutputPin *result)
-{
- UmlReadLinkObjectEndAction::setResult(result);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadlinkobjectendaction.h b/src/uml/qumlreadlinkobjectendaction.h
index 3970c9c2..65f6c07b 100644
--- a/src/uml/qumlreadlinkobjectendaction.h
+++ b/src/uml/qumlreadlinkobjectendaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadlinkobjectendaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,189 +52,33 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadLinkObjectEndAction : public QObject, public UmlReadLinkObjectEndAction
+class Q_UML_EXPORT QUmlReadLinkObjectEndAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReadLinkObjectEndAction]
- Q_PROPERTY(QUmlProperty * end READ end)
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadLinkObjectEndAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReadLinkObjectEndAction(bool createQObject = true);
+ virtual ~QUmlReadLinkObjectEndAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReadLinkObjectEndAction]
- Q_INVOKABLE QUmlProperty *end() const;
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReadLinkObjectEndAction]
+ // Owned attributes
+ QUmlProperty *end() const;
void setEnd(QUmlProperty *end);
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlProperty *_end;
+ QUmlInputPin *_object;
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadLinkObjectEndAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadLinkObjectEndAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadLinkObjectEndAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadLinkObjectEndAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadlinkobjectendqualifieraction.cpp b/src/uml/qumlreadlinkobjectendqualifieraction.cpp
index 8ffbf187..8cb5a9ff 100644
--- a/src/uml/qumlreadlinkobjectendqualifieraction.cpp
+++ b/src/uml/qumlreadlinkobjectendqualifieraction.cpp
@@ -40,539 +40,119 @@
****************************************************************************/
#include "qumlreadlinkobjectendqualifieraction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlreadlinkobjectendqualifieractionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlReadLinkObjectEndQualifierAction
+ \class QUmlReadLinkObjectEndQualifierAction
\inmodule QtUml
\brief A read link object end qualifier action is an action that retrieves a qualifier end value from a link object.
*/
-
-QUmlReadLinkObjectEndQualifierAction::QUmlReadLinkObjectEndQualifierAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadLinkObjectEndQualifierAction::ownedComment() const
+QUmlReadLinkObjectEndQualifierAction::QUmlReadLinkObjectEndQualifierAction(bool createQObject) :
+ _object(0),
+ _qualifier(0),
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlReadLinkObjectEndQualifierActionObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadLinkObjectEndQualifierAction::ownedElement() const
+QUmlReadLinkObjectEndQualifierAction::~QUmlReadLinkObjectEndQualifierAction()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadLinkObjectEndQualifierAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadLinkObjectEndQualifierAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadLinkObjectEndQualifierAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadLinkObjectEndQualifierAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadLinkObjectEndQualifierAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadLinkObjectEndQualifierAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadLinkObjectEndQualifierAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadLinkObjectEndQualifierAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadLinkObjectEndQualifierAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadLinkObjectEndQualifierAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadLinkObjectEndQualifierAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadLinkObjectEndQualifierAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadLinkObjectEndQualifierAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadLinkObjectEndQualifierAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadLinkObjectEndQualifierAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadLinkObjectEndQualifierAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadLinkObjectEndQualifierAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadLinkObjectEndQualifierAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadLinkObjectEndQualifierAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadLinkObjectEndQualifierAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadLinkObjectEndQualifierAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadLinkObjectEndQualifierAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadLinkObjectEndQualifierAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadLinkObjectEndQualifierAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadLinkObjectEndQualifierAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ReadLinkObjectEndQualifierAction]
+// OWNED ATTRIBUTES
/*!
Gives the input pin from which the link object is obtained.
*/
-QUmlInputPin *QUmlReadLinkObjectEndQualifierAction::object() const
+QUmlInputPin *
+QUmlReadLinkObjectEndQualifierAction::object() const
{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
+ // This is a read-write association end
-/*!
- The attribute representing the qualifier to be read.
- */
-QUmlProperty *QUmlReadLinkObjectEndQualifierAction::qualifier() const
-{
- return reinterpret_cast<QUmlProperty *>(_qualifier);
+ return _object;
}
-/*!
- Pin where the result value is placed.
- */
-QUmlOutputPin *QUmlReadLinkObjectEndQualifierAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadLinkObjectEndQualifierAction::allOwnedElements() const
+void QUmlReadLinkObjectEndQualifierAction::setObject(QUmlInputPin *object)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReadLinkObjectEndQualifierAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// OPERATIONS [NamedElement]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadLinkObjectEndQualifierAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ The attribute representing the qualifier to be read.
*/
-QSet<QUmlPackage *> QUmlReadLinkObjectEndQualifierAction::allOwningPackages() const
+QUmlProperty *
+QUmlReadLinkObjectEndQualifierAction::qualifier() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReadLinkObjectEndQualifierAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _qualifier;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadLinkObjectEndQualifierAction::separator() const
+void QUmlReadLinkObjectEndQualifierAction::setQualifier(QUmlProperty *qualifier)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReadLinkObjectEndQualifierAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_qualifier != qualifier) {
+ _qualifier = qualifier;
+ if (qualifier->asQObject() && this->asQObject())
+ QObject::connect(qualifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setQualifier()));
+ }
}
/*!
- 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.
+ Pin where the result value is placed.
*/
-bool QUmlReadLinkObjectEndQualifierAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadLinkObjectEndQualifierAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadLinkObjectEndQualifierAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadLinkObjectEndQualifierAction::setLeaf(bool isLeaf)
+QUmlOutputPin *
+QUmlReadLinkObjectEndQualifierAction::result() const
{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadLinkObjectEndQualifierAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadLinkObjectEndQualifierAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadLinkObjectEndQualifierAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlReadLinkObjectEndQualifierAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
+ return _result;
}
-void QUmlReadLinkObjectEndQualifierAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReadLinkObjectEndQualifierAction::setResult(QUmlOutputPin *result)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlReadLinkObjectEndQualifierAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ReadLinkObjectEndQualifierAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadLinkObjectEndQualifierAction::setObject(QUmlInputPin *object)
-{
- UmlReadLinkObjectEndQualifierAction::setObject(object);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-void QUmlReadLinkObjectEndQualifierAction::setQualifier(QUmlProperty *qualifier)
-{
- UmlReadLinkObjectEndQualifierAction::setQualifier(qualifier);
-}
-
-void QUmlReadLinkObjectEndQualifierAction::setResult(QUmlOutputPin *result)
-{
- UmlReadLinkObjectEndQualifierAction::setResult(result);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadlinkobjectendqualifieraction.h b/src/uml/qumlreadlinkobjectendqualifieraction.h
index e1082789..5c45beab 100644
--- a/src/uml/qumlreadlinkobjectendqualifieraction.h
+++ b/src/uml/qumlreadlinkobjectendqualifieraction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadlinkobjectendqualifieraction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,189 +52,33 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadLinkObjectEndQualifierAction : public QObject, public UmlReadLinkObjectEndQualifierAction
+class Q_UML_EXPORT QUmlReadLinkObjectEndQualifierAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReadLinkObjectEndQualifierAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlProperty * qualifier READ qualifier)
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadLinkObjectEndQualifierAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReadLinkObjectEndQualifierAction(bool createQObject = true);
+ virtual ~QUmlReadLinkObjectEndQualifierAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReadLinkObjectEndQualifierAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlProperty *qualifier() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReadLinkObjectEndQualifierAction]
+ // Owned attributes
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+ QUmlProperty *qualifier() const;
void setQualifier(QUmlProperty *qualifier);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlInputPin *_object;
+ QUmlProperty *_qualifier;
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadLinkObjectEndQualifierAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadLinkObjectEndQualifierAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadLinkObjectEndQualifierAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadLinkObjectEndQualifierAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadselfaction.cpp b/src/uml/qumlreadselfaction.cpp
index beda5452..e3705660 100644
--- a/src/uml/qumlreadselfaction.cpp
+++ b/src/uml/qumlreadselfaction.cpp
@@ -40,512 +40,62 @@
****************************************************************************/
#include "qumlreadselfaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlreadselfactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlReadSelfAction
+ \class QUmlReadSelfAction
\inmodule QtUml
\brief A read self action is an action that retrieves the host object of an action.
*/
-
-QUmlReadSelfAction::QUmlReadSelfAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadSelfAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadSelfAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadSelfAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadSelfAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadSelfAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadSelfAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadSelfAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadSelfAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadSelfAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadSelfAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadSelfAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadSelfAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadSelfAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadSelfAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadSelfAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadSelfAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadSelfAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadSelfAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadSelfAction::outgoing() const
+QUmlReadSelfAction::QUmlReadSelfAction(bool createQObject) :
+ _result(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (createQObject)
+ _qObject = new QUmlReadSelfActionObject(this);
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadSelfAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadSelfAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadSelfAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadSelfAction::input() const
+QUmlReadSelfAction::~QUmlReadSelfAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadSelfAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadSelfAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadSelfAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadSelfAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ReadSelfAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the hosting object is placed.
*/
-QUmlOutputPin *QUmlReadSelfAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadSelfAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadSelfAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadSelfAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadSelfAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadSelfAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadSelfAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlReadSelfAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlReadSelfAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadSelfAction::addOwnedComment(UmlComment *ownedComment)
+QUmlOutputPin *
+QUmlReadSelfAction::result() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlReadSelfAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _result;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadSelfAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadSelfAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadSelfAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadSelfAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadSelfAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadSelfAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadSelfAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadSelfAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadSelfAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadSelfAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadSelfAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadSelfAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadSelfAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReadSelfAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadSelfAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadSelfAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadSelfAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadSelfAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadSelfAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadSelfAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadSelfAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReadSelfAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadSelfAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadSelfAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReadSelfAction::setResult(QUmlOutputPin *result)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlReadSelfAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ReadSelfAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadSelfAction::setResult(QUmlOutputPin *result)
-{
- UmlReadSelfAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadselfaction.h b/src/uml/qumlreadselfaction.h
index d2892729..c84875e1 100644
--- a/src/uml/qumlreadselfaction.h
+++ b/src/uml/qumlreadselfaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadselfaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,182 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadSelfAction : public QObject, public UmlReadSelfAction
+class Q_UML_EXPORT QUmlReadSelfAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReadSelfAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadSelfAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReadSelfAction(bool createQObject = true);
+ virtual ~QUmlReadSelfAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReadSelfAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReadSelfAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadSelfAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadSelfAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadSelfAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadSelfAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadstructuralfeatureaction.cpp b/src/uml/qumlreadstructuralfeatureaction.cpp
index 425eaa25..7e7913a4 100644
--- a/src/uml/qumlreadstructuralfeatureaction.cpp
+++ b/src/uml/qumlreadstructuralfeatureaction.cpp
@@ -40,543 +40,62 @@
****************************************************************************/
#include "qumlreadstructuralfeatureaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuralFeature>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlreadstructuralfeatureactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlReadStructuralFeatureAction
+ \class QUmlReadStructuralFeatureAction
\inmodule QtUml
\brief A read structural feature action is a structural feature action that retrieves the values of a structural feature.
*/
-
-QUmlReadStructuralFeatureAction::QUmlReadStructuralFeatureAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadStructuralFeatureAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadStructuralFeatureAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadStructuralFeatureAction::owner() const
+QUmlReadStructuralFeatureAction::QUmlReadStructuralFeatureAction(bool createQObject) :
+ _result(0)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlReadStructuralFeatureActionObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadStructuralFeatureAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadStructuralFeatureAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadStructuralFeatureAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadStructuralFeatureAction::namespace_() const
+QUmlReadStructuralFeatureAction::~QUmlReadStructuralFeatureAction()
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- 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.
- */
-QString QUmlReadStructuralFeatureAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadStructuralFeatureAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadStructuralFeatureAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadStructuralFeatureAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadStructuralFeatureAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadStructuralFeatureAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadStructuralFeatureAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadStructuralFeatureAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadStructuralFeatureAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadStructuralFeatureAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadStructuralFeatureAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadStructuralFeatureAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadStructuralFeatureAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadStructuralFeatureAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadStructuralFeatureAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadStructuralFeatureAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadStructuralFeatureAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadStructuralFeatureAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadStructuralFeatureAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadStructuralFeatureAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [StructuralFeatureAction]
-
-/*!
- Gives the input pin from which the object whose structural feature is to be read or written is obtained.
- */
-QUmlInputPin *QUmlReadStructuralFeatureAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-/*!
- Structural feature to be read.
- */
-QUmlStructuralFeature *QUmlReadStructuralFeatureAction::structuralFeature() const
-{
- return reinterpret_cast<QUmlStructuralFeature *>(_structuralFeature);
-}
-
-// OWNED ATTRIBUTES [ReadStructuralFeatureAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the result is put.
*/
-QUmlOutputPin *QUmlReadStructuralFeatureAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadStructuralFeatureAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadStructuralFeatureAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadStructuralFeatureAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadStructuralFeatureAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadStructuralFeatureAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadStructuralFeatureAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlReadStructuralFeatureAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlReadStructuralFeatureAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadStructuralFeatureAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadStructuralFeatureAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadStructuralFeatureAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadStructuralFeatureAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadStructuralFeatureAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadStructuralFeatureAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadStructuralFeatureAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadStructuralFeatureAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadStructuralFeatureAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadStructuralFeatureAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadStructuralFeatureAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadStructuralFeatureAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadStructuralFeatureAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadStructuralFeatureAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadStructuralFeatureAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReadStructuralFeatureAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadStructuralFeatureAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadStructuralFeatureAction::removeOutgoing(UmlActivityEdge *outgoing)
+QUmlOutputPin *
+QUmlReadStructuralFeatureAction::result() const
{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadStructuralFeatureAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadStructuralFeatureAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadStructuralFeatureAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReadStructuralFeatureAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadStructuralFeatureAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
+ // This is a read-write association end
-void QUmlReadStructuralFeatureAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadStructuralFeatureAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadStructuralFeatureAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlReadStructuralFeatureAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ return _result;
}
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
-
-void QUmlReadStructuralFeatureAction::setObject(QUmlInputPin *object)
+void QUmlReadStructuralFeatureAction::setResult(QUmlOutputPin *result)
{
- UmlStructuralFeatureAction::setObject(object);
-}
+ // This is a read-write association end
-void QUmlReadStructuralFeatureAction::setStructuralFeature(QUmlStructuralFeature *structuralFeature)
-{
- UmlStructuralFeatureAction::setStructuralFeature(structuralFeature);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ReadStructuralFeatureAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadStructuralFeatureAction::setResult(QUmlOutputPin *result)
-{
- UmlReadStructuralFeatureAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadstructuralfeatureaction.h b/src/uml/qumlreadstructuralfeatureaction.h
index 2e7a09cc..12d465e7 100644
--- a/src/uml/qumlreadstructuralfeatureaction.h
+++ b/src/uml/qumlreadstructuralfeatureaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadstructuralfeatureaction_p.h"
+#include <QtUml/QUmlStructuralFeatureAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,195 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuralFeature;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReadStructuralFeatureAction : public QObject, public UmlReadStructuralFeatureAction
+class Q_UML_EXPORT QUmlReadStructuralFeatureAction : public QUmlStructuralFeatureAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StructuralFeatureAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlStructuralFeature * structuralFeature READ structuralFeature)
-
- // Properties [ReadStructuralFeatureAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadStructuralFeatureAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlReadStructuralFeatureAction(bool createQObject = true);
+ virtual ~QUmlReadStructuralFeatureAction();
- // Owned attributes [StructuralFeatureAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlStructuralFeature *structuralFeature() const;
-
- // Owned attributes [ReadStructuralFeatureAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StructuralFeatureAction]
- void setObject(QUmlInputPin *object);
- void setStructuralFeature(QUmlStructuralFeature *structuralFeature);
-
- // Slots for owned attributes [ReadStructuralFeatureAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadStructuralFeatureAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadStructuralFeatureAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadStructuralFeatureAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadStructuralFeatureAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreadvariableaction.cpp b/src/uml/qumlreadvariableaction.cpp
index c2f908f6..2acd0c26 100644
--- a/src/uml/qumlreadvariableaction.cpp
+++ b/src/uml/qumlreadvariableaction.cpp
@@ -40,530 +40,62 @@
****************************************************************************/
#include "qumlreadvariableaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
+#include "private/qumlreadvariableactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlOutputPin>
/*!
- \class UmlReadVariableAction
+ \class QUmlReadVariableAction
\inmodule QtUml
\brief A read variable action is a variable action that retrieves the values of a variable.
*/
-
-QUmlReadVariableAction::QUmlReadVariableAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReadVariableAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReadVariableAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReadVariableAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReadVariableAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReadVariableAction::name() const
+QUmlReadVariableAction::QUmlReadVariableAction(bool createQObject) :
+ _result(0)
{
- return _name;
+ if (createQObject)
+ _qObject = new QUmlReadVariableActionObject(this);
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReadVariableAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReadVariableAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReadVariableAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReadVariableAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReadVariableAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReadVariableAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReadVariableAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReadVariableAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReadVariableAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReadVariableAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReadVariableAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReadVariableAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReadVariableAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReadVariableAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReadVariableAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReadVariableAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReadVariableAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReadVariableAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReadVariableAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReadVariableAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReadVariableAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReadVariableAction::output() const
+QUmlReadVariableAction::~QUmlReadVariableAction()
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [VariableAction]
-
-/*!
- Variable to be read.
- */
-QUmlVariable *QUmlReadVariableAction::variable() const
-{
- return reinterpret_cast<QUmlVariable *>(_variable);
-}
-
-// OWNED ATTRIBUTES [ReadVariableAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the result is put.
*/
-QUmlOutputPin *QUmlReadVariableAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReadVariableAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadVariableAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReadVariableAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReadVariableAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReadVariableAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReadVariableAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlReadVariableAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlReadVariableAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReadVariableAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReadVariableAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReadVariableAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReadVariableAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReadVariableAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReadVariableAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReadVariableAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReadVariableAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReadVariableAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReadVariableAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadVariableAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReadVariableAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReadVariableAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReadVariableAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReadVariableAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReadVariableAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReadVariableAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReadVariableAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReadVariableAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReadVariableAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReadVariableAction::addHandler(UmlExceptionHandler *handler)
+QUmlOutputPin *
+QUmlReadVariableAction::result() const
{
- UmlExecutableNode::addHandler(handler);
-}
+ // This is a read-write association end
-void QUmlReadVariableAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReadVariableAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
+ return _result;
}
-void QUmlReadVariableAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadVariableAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReadVariableAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlReadVariableAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReadVariableAction::setResult(QUmlOutputPin *result)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
-
-void QUmlReadVariableAction::setVariable(QUmlVariable *variable)
-{
- UmlVariableAction::setVariable(variable);
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// SLOTS FOR OWNED ATTRIBUTES [ReadVariableAction]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReadVariableAction::setResult(QUmlOutputPin *result)
-{
- UmlReadVariableAction::setResult(result);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreadvariableaction.h b/src/uml/qumlreadvariableaction.h
index 6e8af9c0..eb6f0983 100644
--- a/src/uml/qumlreadvariableaction.h
+++ b/src/uml/qumlreadvariableaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreadvariableaction_p.h"
+#include <QtUml/QUmlVariableAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,192 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlReadVariableAction : public QObject, public UmlReadVariableAction
+class Q_UML_EXPORT QUmlReadVariableAction : public QUmlVariableAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [VariableAction]
- Q_PROPERTY(QUmlVariable * variable READ variable)
-
- // Properties [ReadVariableAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReadVariableAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlReadVariableAction(bool createQObject = true);
+ virtual ~QUmlReadVariableAction();
- // Owned attributes [VariableAction]
- Q_INVOKABLE QUmlVariable *variable() const;
-
- // Owned attributes [ReadVariableAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [VariableAction]
- void setVariable(QUmlVariable *variable);
-
- // Slots for owned attributes [ReadVariableAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReadVariableAction *)
-Q_DECLARE_METATYPE(QList<QUmlReadVariableAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReadVariableAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReadVariableAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlrealization.cpp b/src/uml/qumlrealization.cpp
index 72432cd3..a0d23b3c 100644
--- a/src/uml/qumlrealization.cpp
+++ b/src/uml/qumlrealization.cpp
@@ -40,346 +40,27 @@
****************************************************************************/
#include "qumlrealization.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOpaqueExpression>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlrealizationobject_p.h"
/*!
- \class UmlRealization
+ \class QUmlRealization
\inmodule QtUml
\brief 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.
*/
-
-QUmlRealization::QUmlRealization(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRealization::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRealization::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlRealization::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlRealization::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlRealization::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRealization::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlRealization::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRealization::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlRealization::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlRealization::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlRealization::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlRealization::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlRealization::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlRealization::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlRealization::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlRealization::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Abstraction]
-
-/*!
- 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.
- */
-QUmlOpaqueExpression *QUmlRealization::mapping() const
-{
- return reinterpret_cast<QUmlOpaqueExpression *>(_mapping);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRealization::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRealization::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlRealization::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlRealization::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRealization::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRealization::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRealization::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRealization::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRealization::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlRealization::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlRealization::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlRealization::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRealization::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRealization::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlRealization::setName(QString name)
+QUmlRealization::QUmlRealization(bool createQObject) :
+ QUmlAbstraction(false)
{
- UmlNamedElement::setName(name);
+ if (createQObject)
+ _qObject = new QUmlRealizationObject(this);
}
-void QUmlRealization::setNameExpression(QUmlStringExpression *nameExpression)
+QUmlRealization::~QUmlRealization()
{
- UmlNamedElement::setNameExpression(nameExpression);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlRealization::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlRealization::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlRealization::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
-
-void QUmlRealization::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
-}
-
-void QUmlRealization::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
-
-void QUmlRealization::setMapping(QUmlOpaqueExpression *mapping)
-{
- UmlAbstraction::setMapping(mapping);
-}
-
-QT_END_NAMESPACE
diff --git a/src/uml/qumlrealization.h b/src/uml/qumlrealization.h
index b5baa092..6d5b3e14 100644
--- a/src/uml/qumlrealization.h
+++ b/src/uml/qumlrealization.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlrealization_p.h"
+#include <QtUml/QUmlAbstraction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,142 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOpaqueExpression;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlRealization : public QObject, public UmlRealization
+class Q_UML_EXPORT QUmlRealization : public QUmlAbstraction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Abstraction]
- Q_PROPERTY(QUmlOpaqueExpression * mapping READ mapping)
-
public:
- Q_INVOKABLE explicit QUmlRealization(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Abstraction]
- Q_INVOKABLE QUmlOpaqueExpression *mapping() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
+ explicit QUmlRealization(bool createQObject = true);
+ virtual ~QUmlRealization();
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
- // Slots for owned attributes [Abstraction]
- void setMapping(QUmlOpaqueExpression *mapping);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRealization *)
-Q_DECLARE_METATYPE(QList<QUmlRealization *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRealization *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRealization) *)
QT_END_HEADER
diff --git a/src/uml/qumlreception.cpp b/src/uml/qumlreception.cpp
index 5fc3c65a..c5fd77ae 100644
--- a/src/uml/qumlreception.cpp
+++ b/src/uml/qumlreception.cpp
@@ -40,537 +40,53 @@
****************************************************************************/
#include "qumlreception.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlSignal>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlType>
+#include "private/qumlreceptionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlSignal>
/*!
- \class UmlReception
+ \class QUmlReception
\inmodule QtUml
\brief 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.
*/
-
-QUmlReception::QUmlReception(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReception::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReception::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReception::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReception::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReception::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReception::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReception::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReception::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReception::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlReception::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlReception::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlReception::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlReception::ownedMember() const
+QUmlReception::QUmlReception(bool createQObject) :
+ _signal(0)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ if (createQObject)
+ _qObject = new QUmlReceptionObject(this);
}
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlReception::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlReception::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReception::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReception::redefinedElement() const
+QUmlReception::~QUmlReception()
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReception::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [Feature]
-
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlReception::featuringClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
-
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlReception::isStatic() const
-{
- return _isStatic;
-}
-
-// OWNED ATTRIBUTES [BehavioralFeature]
-
-/*!
- 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.
- */
-QtUml::CallConcurrencyKind QUmlReception::concurrency() const
-{
- return _concurrency;
-}
-
-/*!
- 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.
- */
-bool QUmlReception::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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).
- */
-const QSet<QUmlBehavior *> QUmlReception::method() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_method));
-}
-
-/*!
- Specifies the ordered set of formal parameters of this BehavioralFeature.
- */
-const QList<QUmlParameter *> QUmlReception::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
-
-/*!
- The ParameterSets owned by this BehavioralFeature.
- */
-const QSet<QUmlParameterSet *> QUmlReception::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
-
-/*!
- References the Types representing exceptions that may be raised during an invocation of this feature.
- */
-const QSet<QUmlType *> QUmlReception::raisedException() const
-{
- return *(reinterpret_cast<const QSet<QUmlType *> *>(&_raisedException));
-}
-
-// OWNED ATTRIBUTES [Reception]
+// OWNED ATTRIBUTES
/*!
The signal that this reception handles.
*/
-QUmlSignal *QUmlReception::signal() const
-{
- return reinterpret_cast<QUmlSignal *>(_signal);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReception::allOwnedElements() const
+QUmlSignal *
+QUmlReception::signal() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReception::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReception::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReception::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReception::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlReception::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlReception::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlReception::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlReception::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlReception::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlReception::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [BehavioralFeature]
-
-/*!
- The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.
- */
-bool QUmlReception::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlBehavioralFeature::isDistinguishableFrom(n, ns);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReception::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReception::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReception::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlReception::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReception::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReception::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReception::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlReception::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlReception::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlReception::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlReception::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlReception::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlReception::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
+ return _signal;
}
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReception::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlReception::setStatic(bool isStatic)
-{
- UmlFeature::setStatic(isStatic);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioralFeature]
-
-void QUmlReception::setConcurrency(QtUml::CallConcurrencyKind concurrency)
-{
- UmlBehavioralFeature::setConcurrency(concurrency);
-}
-
-void QUmlReception::setAbstract(bool isAbstract)
-{
- UmlBehavioralFeature::setAbstract(isAbstract);
-}
-
-void QUmlReception::addMethod(UmlBehavior *method)
-{
- UmlBehavioralFeature::addMethod(method);
-}
-
-void QUmlReception::removeMethod(UmlBehavior *method)
-{
- UmlBehavioralFeature::removeMethod(method);
-}
-
-void QUmlReception::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavioralFeature::addOwnedParameter(ownedParameter);
-}
-
-void QUmlReception::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavioralFeature::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlReception::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavioralFeature::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlReception::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavioralFeature::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlReception::addRaisedException(UmlType *raisedException)
-{
- UmlBehavioralFeature::addRaisedException(raisedException);
-}
-
-void QUmlReception::removeRaisedException(UmlType *raisedException)
-{
- UmlBehavioralFeature::removeRaisedException(raisedException);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Reception]
-
void QUmlReception::setSignal(QUmlSignal *signal)
{
- UmlReception::setSignal(signal);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_signal != signal) {
+ _signal = signal;
+ if (signal->asQObject() && this->asQObject())
+ QObject::connect(signal->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignal()));
+ }
+}
diff --git a/src/uml/qumlreception.h b/src/uml/qumlreception.h
index 2d51b8ba..57f0a2f6 100644
--- a/src/uml/qumlreception.h
+++ b/src/uml/qumlreception.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreception_p.h"
+#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,184 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterSet;
-class QUmlRedefinableElement;
class QUmlSignal;
-class QUmlStringExpression;
-class QUmlType;
-class Q_UML_EXPORT QUmlReception : public QObject, public UmlReception
+class Q_UML_EXPORT QUmlReception : public QUmlBehavioralFeature
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [BehavioralFeature]
- Q_PROPERTY(QtUml::CallConcurrencyKind concurrency READ concurrency)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(QSet<QUmlBehavior *> method READ method)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlType *> raisedException READ raisedException)
-
- // Properties [Reception]
- Q_PROPERTY(QUmlSignal * signal READ signal)
-
public:
- Q_INVOKABLE explicit QUmlReception(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [BehavioralFeature]
- Q_INVOKABLE QtUml::CallConcurrencyKind concurrency() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> method() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlType *> raisedException() const;
+ explicit QUmlReception(bool createQObject = true);
+ virtual ~QUmlReception();
- // Owned attributes [Reception]
- Q_INVOKABLE QUmlSignal *signal() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [BehavioralFeature]
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
-
- // Slots for owned attributes [BehavioralFeature]
- void setConcurrency(QtUml::CallConcurrencyKind concurrency);
- void setAbstract(bool isAbstract);
- void addMethod(UmlBehavior *method);
- void removeMethod(UmlBehavior *method);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addRaisedException(UmlType *raisedException);
- void removeRaisedException(UmlType *raisedException);
-
- // Slots for owned attributes [Reception]
+ // Owned attributes
+ QUmlSignal *signal() const;
void setSignal(QUmlSignal *signal);
+
+protected:
+ QUmlSignal *_signal;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReception *)
-Q_DECLARE_METATYPE(QList<QUmlReception *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReception *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReception) *)
QT_END_HEADER
diff --git a/src/uml/qumlreclassifyobjectaction.cpp b/src/uml/qumlreclassifyobjectaction.cpp
index 6d98dfd4..a1902486 100644
--- a/src/uml/qumlreclassifyobjectaction.cpp
+++ b/src/uml/qumlreclassifyobjectaction.cpp
@@ -40,561 +40,146 @@
****************************************************************************/
#include "qumlreclassifyobjectaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlreclassifyobjectactionobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlReclassifyObjectAction
+ \class QUmlReclassifyObjectAction
\inmodule QtUml
\brief A reclassify object action is an action that changes which classifiers classify an object.
*/
-
-QUmlReclassifyObjectAction::QUmlReclassifyObjectAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReclassifyObjectAction::ownedComment() const
+QUmlReclassifyObjectAction::QUmlReclassifyObjectAction(bool createQObject) :
+ _isReplaceAll(false),
+ _object(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlReclassifyObjectActionObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReclassifyObjectAction::ownedElement() const
+QUmlReclassifyObjectAction::~QUmlReclassifyObjectAction()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReclassifyObjectAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+// OWNED ATTRIBUTES
/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReclassifyObjectAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReclassifyObjectAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReclassifyObjectAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReclassifyObjectAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReclassifyObjectAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReclassifyObjectAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReclassifyObjectAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReclassifyObjectAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReclassifyObjectAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReclassifyObjectAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReclassifyObjectAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReclassifyObjectAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReclassifyObjectAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReclassifyObjectAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReclassifyObjectAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReclassifyObjectAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
+ Specifies whether existing classifiers should be removed before adding the new classifiers.
*/
-const QSet<QUmlActivityNode *> QUmlReclassifyObjectAction::redefinedNode() const
+bool
+QUmlReclassifyObjectAction::isReplaceAll() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
+ // This is a read-write property
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReclassifyObjectAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
+ return _isReplaceAll;
}
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReclassifyObjectAction::context() const
+void QUmlReclassifyObjectAction::setReplaceAll(bool isReplaceAll)
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
+ // This is a read-write property
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReclassifyObjectAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (_isReplaceAll != isReplaceAll) {
+ _isReplaceAll = isReplaceAll;
+ }
}
/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
+ A set of classifiers to be added to the classifiers of the object.
*/
-bool QUmlReclassifyObjectAction::isLocallyReentrant() const
+const QSet<QUmlClassifier *>
+QUmlReclassifyObjectAction::newClassifier() const
{
- return _isLocallyReentrant;
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReclassifyObjectAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
+ return _newClassifier;
}
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReclassifyObjectAction::localPrecondition() const
+void QUmlReclassifyObjectAction::addNewClassifier(QUmlClassifier *newClassifier)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
+ // This is a read-write association end
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReclassifyObjectAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
+ if (!_newClassifier.contains(newClassifier)) {
+ _newClassifier.insert(newClassifier);
+ if (newClassifier->asQObject() && this->asQObject())
+ QObject::connect(newClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNewClassifier(QObject *)));
+ }
}
-// OWNED ATTRIBUTES [ReclassifyObjectAction]
-
-/*!
- Specifies whether existing classifiers should be removed before adding the new classifiers.
- */
-bool QUmlReclassifyObjectAction::isReplaceAll() const
+void QUmlReclassifyObjectAction::removeNewClassifier(QUmlClassifier *newClassifier)
{
- return _isReplaceAll;
-}
+ // This is a read-write association end
-/*!
- A set of classifiers to be added to the classifiers of the object.
- */
-const QSet<QUmlClassifier *> QUmlReclassifyObjectAction::newClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_newClassifier));
+ if (_newClassifier.contains(newClassifier)) {
+ _newClassifier.remove(newClassifier);
+ }
}
/*!
Holds the object to be reclassified.
*/
-QUmlInputPin *QUmlReclassifyObjectAction::object() const
+QUmlInputPin *
+QUmlReclassifyObjectAction::object() const
{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
+ // This is a read-write association end
-/*!
- A set of classifiers to be removed from the classifiers of the object.
- */
-const QSet<QUmlClassifier *> QUmlReclassifyObjectAction::oldClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_oldClassifier));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReclassifyObjectAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReclassifyObjectAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReclassifyObjectAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _object;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReclassifyObjectAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlReclassifyObjectAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlReclassifyObjectAction::setObject(QUmlInputPin *object)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReclassifyObjectAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// OPERATIONS [RedefinableElement]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlReclassifyObjectAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
/*!
- 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.
+ A set of classifiers to be removed from the classifiers of the object.
*/
-bool QUmlReclassifyObjectAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReclassifyObjectAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReclassifyObjectAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReclassifyObjectAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReclassifyObjectAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReclassifyObjectAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReclassifyObjectAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReclassifyObjectAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReclassifyObjectAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReclassifyObjectAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReclassifyObjectAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReclassifyObjectAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReclassifyObjectAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReclassifyObjectAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReclassifyObjectAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReclassifyObjectAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReclassifyObjectAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReclassifyObjectAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReclassifyObjectAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReclassifyObjectAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReclassifyObjectAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReclassifyObjectAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReclassifyObjectAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReclassifyObjectAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReclassifyObjectAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReclassifyObjectAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReclassifyObjectAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+const QSet<QUmlClassifier *>
+QUmlReclassifyObjectAction::oldClassifier() const
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlReclassifyObjectAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ return _oldClassifier;
}
-// SLOTS FOR OWNED ATTRIBUTES [ReclassifyObjectAction]
-
-void QUmlReclassifyObjectAction::setReplaceAll(bool isReplaceAll)
+void QUmlReclassifyObjectAction::addOldClassifier(QUmlClassifier *oldClassifier)
{
- UmlReclassifyObjectAction::setReplaceAll(isReplaceAll);
-}
+ // This is a read-write association end
-void QUmlReclassifyObjectAction::addNewClassifier(UmlClassifier *newClassifier)
-{
- UmlReclassifyObjectAction::addNewClassifier(newClassifier);
+ if (!_oldClassifier.contains(oldClassifier)) {
+ _oldClassifier.insert(oldClassifier);
+ if (oldClassifier->asQObject() && this->asQObject())
+ QObject::connect(oldClassifier->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOldClassifier(QObject *)));
+ }
}
-void QUmlReclassifyObjectAction::removeNewClassifier(UmlClassifier *newClassifier)
+void QUmlReclassifyObjectAction::removeOldClassifier(QUmlClassifier *oldClassifier)
{
- UmlReclassifyObjectAction::removeNewClassifier(newClassifier);
-}
+ // This is a read-write association end
-void QUmlReclassifyObjectAction::setObject(QUmlInputPin *object)
-{
- UmlReclassifyObjectAction::setObject(object);
-}
-
-void QUmlReclassifyObjectAction::addOldClassifier(UmlClassifier *oldClassifier)
-{
- UmlReclassifyObjectAction::addOldClassifier(oldClassifier);
+ if (_oldClassifier.contains(oldClassifier)) {
+ _oldClassifier.remove(oldClassifier);
+ }
}
-void QUmlReclassifyObjectAction::removeOldClassifier(UmlClassifier *oldClassifier)
-{
- UmlReclassifyObjectAction::removeOldClassifier(oldClassifier);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreclassifyobjectaction.h b/src/uml/qumlreclassifyobjectaction.h
index 4d40b9b4..67c46516 100644
--- a/src/uml/qumlreclassifyobjectaction.h
+++ b/src/uml/qumlreclassifyobjectaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreclassifyobjectaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,193 +52,37 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReclassifyObjectAction : public QObject, public UmlReclassifyObjectAction
+class Q_UML_EXPORT QUmlReclassifyObjectAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReclassifyObjectAction]
- Q_PROPERTY(bool isReplaceAll READ isReplaceAll)
- Q_PROPERTY(QSet<QUmlClassifier *> newClassifier READ newClassifier)
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QSet<QUmlClassifier *> oldClassifier READ oldClassifier)
-
public:
- Q_INVOKABLE explicit QUmlReclassifyObjectAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReclassifyObjectAction]
- Q_INVOKABLE bool isReplaceAll() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> newClassifier() const;
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> oldClassifier() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+ explicit QUmlReclassifyObjectAction(bool createQObject = true);
+ virtual ~QUmlReclassifyObjectAction();
- // Slots for owned attributes [ReclassifyObjectAction]
+ // Owned attributes
+ bool isReplaceAll() const;
void setReplaceAll(bool isReplaceAll);
- void addNewClassifier(UmlClassifier *newClassifier);
- void removeNewClassifier(UmlClassifier *newClassifier);
+ const QSet<QUmlClassifier *> newClassifier() const;
+ void addNewClassifier(QUmlClassifier *newClassifier);
+ void removeNewClassifier(QUmlClassifier *newClassifier);
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
- void addOldClassifier(UmlClassifier *oldClassifier);
- void removeOldClassifier(UmlClassifier *oldClassifier);
+ const QSet<QUmlClassifier *> oldClassifier() const;
+ void addOldClassifier(QUmlClassifier *oldClassifier);
+ void removeOldClassifier(QUmlClassifier *oldClassifier);
+
+protected:
+ bool _isReplaceAll;
+ QSet<QUmlClassifier *> _newClassifier;
+ QUmlInputPin *_object;
+ QSet<QUmlClassifier *> _oldClassifier;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReclassifyObjectAction *)
-Q_DECLARE_METATYPE(QList<QUmlReclassifyObjectAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReclassifyObjectAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReclassifyObjectAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlredefinableelement.cpp b/src/uml/qumlredefinableelement.cpp
index afd0d161..d1b11c34 100644
--- a/src/uml/qumlredefinableelement.cpp
+++ b/src/uml/qumlredefinableelement.cpp
@@ -41,200 +41,118 @@
#include "qumlredefinableelement.h"
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlRedefinableElement
+ \class QUmlRedefinableElement
\inmodule QtUml
\brief 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.
*/
-
-QUmlRedefinableElement::QUmlRedefinableElement(QObject *parent) :
- QObject(parent)
+QUmlRedefinableElement::QUmlRedefinableElement() :
+ _isLeaf(false)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRedefinableElement::ownedComment() const
+QUmlRedefinableElement::~QUmlRedefinableElement()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRedefinableElement::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
*/
-QUmlElement *QUmlRedefinableElement::owner() const
+bool
+QUmlRedefinableElement::isLeaf() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write property
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRedefinableElement::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _isLeaf;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlRedefinableElement::name() const
+void QUmlRedefinableElement::setLeaf(bool isLeaf)
{
- return _name;
-}
+ // This is a read-write property
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRedefinableElement::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (_isLeaf != isLeaf) {
+ _isLeaf = isLeaf;
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ The redefinable element that is being redefined by this element.
*/
-QUmlNamespace *QUmlRedefinableElement::namespace_() const
+const QSet<QUmlRedefinableElement *>
+QUmlRedefinableElement::redefinedElement() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-only derived union association end
-/*!
- 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.
- */
-QString QUmlRedefinableElement::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _redefinedElement;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlRedefinableElement::visibility() const
+void QUmlRedefinableElement::addRedefinedElement(QUmlRedefinableElement *redefinedElement)
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
+ // This is a read-only derived union association end
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlRedefinableElement::isLeaf() const
-{
- return _isLeaf;
+ if (!_redefinedElement.contains(redefinedElement)) {
+ _redefinedElement.insert(redefinedElement);
+ if (redefinedElement->asQObject() && this->asQObject())
+ QObject::connect(redefinedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinedElement(QObject *)));
+ }
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlRedefinableElement::redefinedElement() const
+void QUmlRedefinableElement::removeRedefinedElement(QUmlRedefinableElement *redefinedElement)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ // This is a read-only derived union association end
+
+ if (_redefinedElement.contains(redefinedElement)) {
+ _redefinedElement.remove(redefinedElement);
+ }
}
/*!
References the contexts that this element may be redefined from.
*/
-const QSet<QUmlClassifier *> QUmlRedefinableElement::redefinitionContext() const
+const QSet<QUmlClassifier *>
+QUmlRedefinableElement::redefinitionContext() const
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ // This is a read-only derived union association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRedefinableElement::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _redefinitionContext;
}
-/*!
- 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.
- */
-bool QUmlRedefinableElement::mustBeOwned() const
+void QUmlRedefinableElement::addRedefinitionContext(QUmlClassifier *redefinitionContext)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-only derived union association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRedefinableElement::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (!_redefinitionContext.contains(redefinitionContext)) {
+ _redefinitionContext.insert(redefinitionContext);
+ if (redefinitionContext->asQObject() && this->asQObject())
+ QObject::connect(redefinitionContext->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRedefinitionContext(QObject *)));
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRedefinableElement::allOwningPackages() const
+void QUmlRedefinableElement::removeRedefinitionContext(QUmlClassifier *redefinitionContext)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-only derived union association end
-/*!
- 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.
- */
-bool QUmlRedefinableElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_redefinitionContext.contains(redefinitionContext)) {
+ _redefinitionContext.remove(redefinitionContext);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRedefinableElement::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+// OPERATIONS
/*!
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.
*/
bool QUmlRedefinableElement::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ qWarning("UmlRedefinableElement::isConsistentWith(): to be implemented (operation)");
+
+ Q_UNUSED(redefinee);
+ return bool ();
}
/*!
@@ -242,54 +160,9 @@ bool QUmlRedefinableElement::isConsistentWith(QUmlRedefinableElement *redefinee)
*/
bool QUmlRedefinableElement::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRedefinableElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlRedefinableElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRedefinableElement::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRedefinableElement::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ qWarning("UmlRedefinableElement::isRedefinitionContextValid(): to be implemented (operation)");
-void QUmlRedefinableElement::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ Q_UNUSED(redefined);
+ return bool ();
}
-void QUmlRedefinableElement::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlRedefinableElement::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlRedefinableElement::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlredefinableelement.h b/src/uml/qumlredefinableelement.h
index 4c057de6..c4594141 100644
--- a/src/uml/qumlredefinableelement.h
+++ b/src/uml/qumlredefinableelement.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlredefinableelement_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,93 +53,37 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-
-class Q_UML_EXPORT QUmlRedefinableElement : public QObject, public UmlRedefinableElement
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
+class Q_UML_EXPORT QUmlRedefinableElement : public virtual QUmlNamedElement
+{
public:
- Q_DECL_HIDDEN explicit QUmlRedefinableElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
+ virtual ~QUmlRedefinableElement();
+
+ // Owned attributes
+ bool isLeaf() const;
void setLeaf(bool isLeaf);
+ const QSet<QUmlRedefinableElement *> redefinedElement() const;
+ Q_DECL_HIDDEN void addRedefinedElement(QUmlRedefinableElement *redefinedElement);
+ Q_DECL_HIDDEN void removeRedefinedElement(QUmlRedefinableElement *redefinedElement);
+ const QSet<QUmlClassifier *> redefinitionContext() const;
+ Q_DECL_HIDDEN void addRedefinitionContext(QUmlClassifier *redefinitionContext);
+ Q_DECL_HIDDEN void removeRedefinitionContext(QUmlClassifier *redefinitionContext);
+
+ // Operations
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+ bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
+
+protected:
+ explicit QUmlRedefinableElement();
+
+ bool _isLeaf;
+ QSet<QUmlRedefinableElement *> _redefinedElement;
+ QSet<QUmlClassifier *> _redefinitionContext;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRedefinableElement *)
-Q_DECLARE_METATYPE(QList<QUmlRedefinableElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRedefinableElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRedefinableElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlredefinabletemplatesignature.cpp b/src/uml/qumlredefinabletemplatesignature.cpp
index 9986642f..cad7c0f4 100644
--- a/src/uml/qumlredefinabletemplatesignature.cpp
+++ b/src/uml/qumlredefinabletemplatesignature.cpp
@@ -40,360 +40,156 @@
****************************************************************************/
#include "qumlredefinabletemplatesignature.h"
+#include "private/qumlredefinabletemplatesignatureobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateableElement>
#include <QtUml/QUmlTemplateParameter>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlRedefinableTemplateSignature
+ \class QUmlRedefinableTemplateSignature
\inmodule QtUml
\brief A redefinable template signature supports the addition of formal template parameters in a specialization of a template classifier.
*/
-
-QUmlRedefinableTemplateSignature::QUmlRedefinableTemplateSignature(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRedefinableTemplateSignature::ownedComment() const
+QUmlRedefinableTemplateSignature::QUmlRedefinableTemplateSignature(bool createQObject) :
+ QUmlTemplateSignature(false),
+ _classifier(0)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlRedefinableTemplateSignatureObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRedefinableTemplateSignature::ownedElement() const
+QUmlRedefinableTemplateSignature::~QUmlRedefinableTemplateSignature()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlRedefinableTemplateSignature::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [TemplateSignature]
+// OWNED ATTRIBUTES
/*!
- The formal template parameters that are owned by this template signature.
+ The classifier that owns this template signature.
*/
-const QList<QUmlTemplateParameter *> QUmlRedefinableTemplateSignature::ownedParameter() const
+QUmlClassifier *
+QUmlRedefinableTemplateSignature::classifier() const
{
- return *(reinterpret_cast<const QList<QUmlTemplateParameter *> *>(&_ownedParameter));
-}
+ // This is a read-write association end
-/*!
- The ordered set of all formal template parameters for this template signature.
- */
-const QList<QUmlTemplateParameter *> QUmlRedefinableTemplateSignature::parameter() const
-{
- return *(reinterpret_cast<const QList<QUmlTemplateParameter *> *>(&_parameter));
+ return _classifier;
}
-/*!
- The element that owns this template signature.
- */
-QUmlTemplateableElement *QUmlRedefinableTemplateSignature::template_() const
+void QUmlRedefinableTemplateSignature::setClassifier(QUmlClassifier *classifier)
{
- return reinterpret_cast<QUmlTemplateableElement *>(_template_);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRedefinableTemplateSignature::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ if (_classifier != classifier) {
+ // Adjust subsetted properties
+ removeRedefinitionContext(_classifier);
-/*!
- The name of the NamedElement.
- */
-QString QUmlRedefinableTemplateSignature::name() const
-{
- return _name;
-}
+ _classifier = classifier;
+ if (classifier->asQObject() && this->asQObject())
+ QObject::connect(classifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setClassifier()));
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRedefinableTemplateSignature::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ // Adjust subsetted properties
+ if (classifier) {
+ addRedefinitionContext(classifier);
+ }
+ }
}
/*!
- Specifies the namespace that owns the NamedElement.
+ The template signature that is extended by this template signature.
*/
-QUmlNamespace *QUmlRedefinableTemplateSignature::namespace_() const
+const QSet<QUmlRedefinableTemplateSignature *>
+QUmlRedefinableTemplateSignature::extendedSignature() const
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QString QUmlRedefinableTemplateSignature::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ return _extendedSignature;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlRedefinableTemplateSignature::visibility() const
+void QUmlRedefinableTemplateSignature::addExtendedSignature(QUmlRedefinableTemplateSignature *extendedSignature)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [RedefinableElement]
+ if (!_extendedSignature.contains(extendedSignature)) {
+ _extendedSignature.insert(extendedSignature);
+ if (extendedSignature->asQObject() && this->asQObject())
+ QObject::connect(extendedSignature->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExtendedSignature(QObject *)));
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlRedefinableTemplateSignature::isLeaf() const
-{
- return _isLeaf;
+ // Adjust subsetted properties
+ addRedefinedElement(extendedSignature);
+ }
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlRedefinableTemplateSignature::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlRedefinableTemplateSignature::redefinitionContext() const
+void QUmlRedefinableTemplateSignature::removeExtendedSignature(QUmlRedefinableTemplateSignature *extendedSignature)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [RedefinableTemplateSignature]
+ if (_extendedSignature.contains(extendedSignature)) {
+ _extendedSignature.remove(extendedSignature);
-/*!
- The classifier that owns this template signature.
- */
-QUmlClassifier *QUmlRedefinableTemplateSignature::classifier() const
-{
- return reinterpret_cast<QUmlClassifier *>(_classifier);
-}
-
-/*!
- The template signature that is extended by this template signature.
- */
-const QSet<QUmlRedefinableTemplateSignature *> QUmlRedefinableTemplateSignature::extendedSignature() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableTemplateSignature *> *>(&_extendedSignature));
+ // Adjust subsetted properties
+ removeRedefinedElement(extendedSignature);
+ }
}
/*!
The formal template parameters of the extendedSignature.
*/
-const QSet<QUmlTemplateParameter *> QUmlRedefinableTemplateSignature::inheritedParameter() const
+const QSet<QUmlTemplateParameter *>
+QUmlRedefinableTemplateSignature::inheritedParameter() const
{
- QSet<QUmlTemplateParameter *> r;
- foreach (UmlTemplateParameter *element, UmlRedefinableTemplateSignature::inheritedParameter())
- r.insert(reinterpret_cast<QUmlTemplateParameter *>(element));
- return r;
-}
+ // This is a read-only derived association end
-// OPERATIONS [Element]
+ qWarning("UmlRedefinableTemplateSignature::inheritedParameter(): to be implemented (this is a derived association end)");
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRedefinableTemplateSignature::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return QSet<QUmlTemplateParameter *>();
}
-/*!
- 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.
- */
-bool QUmlRedefinableTemplateSignature::mustBeOwned() const
+void QUmlRedefinableTemplateSignature::addInheritedParameter(QUmlTemplateParameter *inheritedParameter)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived association end
-// OPERATIONS [NamedElement]
+ qWarning("UmlRedefinableTemplateSignature::inheritedParameter(): to be implemented (this is a derived association end)");
+ Q_UNUSED(inheritedParameter);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRedefinableTemplateSignature::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRedefinableTemplateSignature::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust subsetted properties
+ addParameter(inheritedParameter);
+ }
}
-/*!
- 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.
- */
-bool QUmlRedefinableTemplateSignature::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlRedefinableTemplateSignature::removeInheritedParameter(QUmlTemplateParameter *inheritedParameter)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-only derived association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRedefinableTemplateSignature::separator() const
-{
- return UmlNamedElement::separator();
-}
+ qWarning("UmlRedefinableTemplateSignature::inheritedParameter(): to be implemented (this is a derived association end)");
+ Q_UNUSED(inheritedParameter);
-// OPERATIONS [RedefinableElement]
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- 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.
- */
-bool QUmlRedefinableTemplateSignature::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // Adjust subsetted properties
+ removeParameter(inheritedParameter);
+ }
}
-// OPERATIONS [RedefinableTemplateSignature]
+// OPERATIONS
/*!
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.
*/
bool QUmlRedefinableTemplateSignature::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- return UmlRedefinableTemplateSignature::isConsistentWith(redefinee);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRedefinableTemplateSignature::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlRedefinableTemplateSignature::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateSignature]
-
-void QUmlRedefinableTemplateSignature::addOwnedParameter(UmlTemplateParameter *ownedParameter)
-{
- UmlTemplateSignature::addOwnedParameter(ownedParameter);
-}
-
-void QUmlRedefinableTemplateSignature::removeOwnedParameter(UmlTemplateParameter *ownedParameter)
-{
- UmlTemplateSignature::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlRedefinableTemplateSignature::addParameter(UmlTemplateParameter *parameter)
-{
- UmlTemplateSignature::addParameter(parameter);
-}
-
-void QUmlRedefinableTemplateSignature::removeParameter(UmlTemplateParameter *parameter)
-{
- UmlTemplateSignature::removeParameter(parameter);
-}
-
-void QUmlRedefinableTemplateSignature::setTemplate(QUmlTemplateableElement *template_)
-{
- UmlTemplateSignature::setTemplate(template_);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRedefinableTemplateSignature::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRedefinableTemplateSignature::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlRedefinableTemplateSignature::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlRedefinableTemplateSignature::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlRedefinableTemplateSignature::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlRedefinableTemplateSignature::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableTemplateSignature]
+ qWarning("UmlRedefinableTemplateSignature::isConsistentWith(): to be implemented (operation)");
-void QUmlRedefinableTemplateSignature::setClassifier(QUmlClassifier *classifier)
-{
- UmlRedefinableTemplateSignature::setClassifier(classifier);
-}
-
-void QUmlRedefinableTemplateSignature::addExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature)
-{
- UmlRedefinableTemplateSignature::addExtendedSignature(extendedSignature);
+ Q_UNUSED(redefinee);
+ return bool ();
}
-void QUmlRedefinableTemplateSignature::removeExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature)
-{
- UmlRedefinableTemplateSignature::removeExtendedSignature(extendedSignature);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlredefinabletemplatesignature.h b/src/uml/qumlredefinabletemplatesignature.h
index b25b2456..e5b9dfa7 100644
--- a/src/uml/qumlredefinabletemplatesignature.h
+++ b/src/uml/qumlredefinabletemplatesignature.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlredefinabletemplatesignature_p.h"
+#include <QtUml/QUmlTemplateSignature>
+#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,130 +54,35 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlTemplateableElement;
class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlRedefinableTemplateSignature : public QObject, public UmlRedefinableTemplateSignature
+class Q_UML_EXPORT QUmlRedefinableTemplateSignature : public QUmlTemplateSignature, public QUmlRedefinableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateSignature]
- Q_PROPERTY(QList<QUmlTemplateParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QList<QUmlTemplateParameter *> parameter READ parameter)
- Q_PROPERTY(QUmlTemplateableElement * template_ READ template_)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [RedefinableTemplateSignature]
- Q_PROPERTY(QUmlClassifier * classifier READ classifier)
- Q_PROPERTY(QSet<QUmlRedefinableTemplateSignature *> extendedSignature READ extendedSignature)
- Q_PROPERTY(QSet<QUmlTemplateParameter *> inheritedParameter READ inheritedParameter)
-
public:
- Q_INVOKABLE explicit QUmlRedefinableTemplateSignature(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [TemplateSignature]
- Q_INVOKABLE const QList<QUmlTemplateParameter *> ownedParameter() const;
- Q_INVOKABLE const QList<QUmlTemplateParameter *> parameter() const;
- Q_INVOKABLE QUmlTemplateableElement *template_() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [RedefinableTemplateSignature]
- Q_INVOKABLE QUmlClassifier *classifier() const;
- Q_INVOKABLE const QSet<QUmlRedefinableTemplateSignature *> extendedSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateParameter *> inheritedParameter() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [RedefinableTemplateSignature]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateSignature]
- void addOwnedParameter(UmlTemplateParameter *ownedParameter);
- void removeOwnedParameter(UmlTemplateParameter *ownedParameter);
- void addParameter(UmlTemplateParameter *parameter);
- void removeParameter(UmlTemplateParameter *parameter);
- void setTemplate(QUmlTemplateableElement *template_);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [RedefinableTemplateSignature]
+ explicit QUmlRedefinableTemplateSignature(bool createQObject = true);
+ virtual ~QUmlRedefinableTemplateSignature();
+
+ // Owned attributes
+ QUmlClassifier *classifier() const;
void setClassifier(QUmlClassifier *classifier);
- void addExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature);
- void removeExtendedSignature(UmlRedefinableTemplateSignature *extendedSignature);
+ const QSet<QUmlRedefinableTemplateSignature *> extendedSignature() const;
+ void addExtendedSignature(QUmlRedefinableTemplateSignature *extendedSignature);
+ void removeExtendedSignature(QUmlRedefinableTemplateSignature *extendedSignature);
+ const QSet<QUmlTemplateParameter *> inheritedParameter() const;
+ Q_DECL_HIDDEN void addInheritedParameter(QUmlTemplateParameter *inheritedParameter);
+ Q_DECL_HIDDEN void removeInheritedParameter(QUmlTemplateParameter *inheritedParameter);
+
+ // Operations
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+
+protected:
+ QUmlClassifier *_classifier;
+ QSet<QUmlRedefinableTemplateSignature *> _extendedSignature;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRedefinableTemplateSignature *)
-Q_DECLARE_METATYPE(QList<QUmlRedefinableTemplateSignature *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRedefinableTemplateSignature *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRedefinableTemplateSignature) *)
QT_END_HEADER
diff --git a/src/uml/qumlreduceaction.cpp b/src/uml/qumlreduceaction.cpp
index 615afae2..dd628f0d 100644
--- a/src/uml/qumlreduceaction.cpp
+++ b/src/uml/qumlreduceaction.cpp
@@ -40,552 +40,140 @@
****************************************************************************/
#include "qumlreduceaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlreduceactionobject_p.h"
+
#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlReduceAction
+ \class QUmlReduceAction
\inmodule QtUml
\brief A reduce action is an action that reduces a collection to a single value by combining the elements of the collection.
*/
-
-QUmlReduceAction::QUmlReduceAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReduceAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReduceAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReduceAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReduceAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReduceAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReduceAction::nameExpression() const
+QUmlReduceAction::QUmlReduceAction(bool createQObject) :
+ _collection(0),
+ _isOrdered(false),
+ _reducer(0),
+ _result(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlReduceActionObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReduceAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReduceAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReduceAction::visibility() const
+QUmlReduceAction::~QUmlReduceAction()
{
- return _visibility;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [RedefinableElement]
+// OWNED ATTRIBUTES
/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReduceAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReduceAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReduceAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReduceAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReduceAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReduceAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReduceAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReduceAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReduceAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReduceAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReduceAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReduceAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReduceAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReduceAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
+ The collection to be reduced.
*/
-bool QUmlReduceAction::isLocallyReentrant() const
+QUmlInputPin *
+QUmlReduceAction::collection() const
{
- return _isLocallyReentrant;
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlReduceAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
+ return _collection;
}
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReduceAction::localPrecondition() const
+void QUmlReduceAction::setCollection(QUmlInputPin *collection)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
+ // This is a read-write association end
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReduceAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
+ if (_collection != collection) {
+ // Adjust subsetted properties
+ removeInput(_collection);
-// OWNED ATTRIBUTES [ReduceAction]
+ _collection = collection;
+ if (collection->asQObject() && this->asQObject())
+ QObject::connect(collection->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setCollection()));
+ collection->asQObject()->setParent(this->asQObject());
-/*!
- The collection to be reduced.
- */
-QUmlInputPin *QUmlReduceAction::collection() const
-{
- return reinterpret_cast<QUmlInputPin *>(_collection);
+ // Adjust subsetted properties
+ if (collection) {
+ addInput(collection);
+ }
+ }
}
/*!
Tells whether the order of the input collection should determine the order in which the behavior is applied to its elements.
*/
-bool QUmlReduceAction::isOrdered() const
+bool
+QUmlReduceAction::isOrdered() const
{
- return _isOrdered;
-}
+ // This is a read-write property
-/*!
- Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection.
- */
-QUmlBehavior *QUmlReduceAction::reducer() const
-{
- return reinterpret_cast<QUmlBehavior *>(_reducer);
+ return _isOrdered;
}
-/*!
- Gives the output pin on which the result is put.
- */
-QUmlOutputPin *QUmlReduceAction::result() const
+void QUmlReduceAction::setOrdered(bool isOrdered)
{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write property
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReduceAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_isOrdered != isOrdered) {
+ _isOrdered = isOrdered;
+ }
}
/*!
- 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.
- */
-bool QUmlReduceAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
+ Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection.
*/
-QList<QUmlNamespace *> QUmlReduceAction::allNamespaces() const
+QUmlBehavior *
+QUmlReduceAction::reducer() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReduceAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _reducer;
}
-/*!
- 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.
- */
-bool QUmlReduceAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlReduceAction::setReducer(QUmlBehavior *reducer)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReduceAction::separator() const
-{
- return UmlNamedElement::separator();
+ if (_reducer != reducer) {
+ _reducer = reducer;
+ if (reducer->asQObject() && this->asQObject())
+ QObject::connect(reducer->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReducer()));
+ }
}
-// OPERATIONS [RedefinableElement]
-
/*!
- 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.
- */
-bool QUmlReduceAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
+ Gives the output pin on which the result is put.
*/
-bool QUmlReduceAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReduceAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReduceAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReduceAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReduceAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReduceAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlReduceAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReduceAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReduceAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReduceAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlReduceAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReduceAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReduceAction::addInPartition(UmlActivityPartition *inPartition)
+QUmlOutputPin *
+QUmlReduceAction::result() const
{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReduceAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
+ // This is a read-write association end
-void QUmlReduceAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReduceAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
+ return _result;
}
-void QUmlReduceAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReduceAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReduceAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReduceAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReduceAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReduceAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReduceAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReduceAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReduceAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReduceAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReduceAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlReduceAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlReduceAction::setResult(QUmlOutputPin *result)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ReduceAction]
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-void QUmlReduceAction::setCollection(QUmlInputPin *collection)
-{
- UmlReduceAction::setCollection(collection);
-}
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-void QUmlReduceAction::setOrdered(bool isOrdered)
-{
- UmlReduceAction::setOrdered(isOrdered);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
-void QUmlReduceAction::setReducer(QUmlBehavior *reducer)
-{
- UmlReduceAction::setReducer(reducer);
-}
-
-void QUmlReduceAction::setResult(QUmlOutputPin *result)
-{
- UmlReduceAction::setResult(result);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreduceaction.h b/src/uml/qumlreduceaction.h
index 4eeacc83..d5eb9eed 100644
--- a/src/uml/qumlreduceaction.h
+++ b/src/uml/qumlreduceaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreduceaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,192 +52,36 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlReduceAction : public QObject, public UmlReduceAction
+class Q_UML_EXPORT QUmlReduceAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReduceAction]
- Q_PROPERTY(QUmlInputPin * collection READ collection)
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(QUmlBehavior * reducer READ reducer)
- Q_PROPERTY(QUmlOutputPin * result READ result)
-
public:
- Q_INVOKABLE explicit QUmlReduceAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReduceAction(bool createQObject = true);
+ virtual ~QUmlReduceAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReduceAction]
- Q_INVOKABLE QUmlInputPin *collection() const;
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE QUmlBehavior *reducer() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReduceAction]
+ // Owned attributes
+ QUmlInputPin *collection() const;
void setCollection(QUmlInputPin *collection);
+ bool isOrdered() const;
void setOrdered(bool isOrdered);
+ QUmlBehavior *reducer() const;
void setReducer(QUmlBehavior *reducer);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+
+protected:
+ QUmlInputPin *_collection;
+ bool _isOrdered;
+ QUmlBehavior *_reducer;
+ QUmlOutputPin *_result;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReduceAction *)
-Q_DECLARE_METATYPE(QList<QUmlReduceAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReduceAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReduceAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlregion.cpp b/src/uml/qumlregion.cpp
index 549cefe5..94abc179 100644
--- a/src/uml/qumlregion.cpp
+++ b/src/uml/qumlregion.cpp
@@ -40,345 +40,259 @@
****************************************************************************/
#include "qumlregion.h"
+#include "private/qumlregionobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
#include <QtUml/QUmlState>
#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlTransition>
#include <QtUml/QUmlVertex>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlRegion
+ \class QUmlRegion
\inmodule QtUml
\brief A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions.
*/
-
-QUmlRegion::QUmlRegion(QObject *parent) :
- QObject(parent)
+QUmlRegion::QUmlRegion(bool createQObject) :
+ _extendedRegion(0),
+ _state(0),
+ _stateMachine(0)
{
+ if (createQObject)
+ _qObject = new QUmlRegionObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRegion::ownedComment() const
+QUmlRegion::~QUmlRegion()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRegion::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The region of which this region is an extension.
*/
-QUmlElement *QUmlRegion::owner() const
+QUmlRegion *
+QUmlRegion::extendedRegion() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRegion::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _extendedRegion;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlRegion::name() const
+void QUmlRegion::setExtendedRegion(QUmlRegion *extendedRegion)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRegion::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (_extendedRegion != extendedRegion) {
+ // Adjust subsetted properties
+ removeRedefinedElement(_extendedRegion);
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlRegion::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ _extendedRegion = extendedRegion;
+ if (extendedRegion->asQObject() && this->asQObject())
+ QObject::connect(extendedRegion->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExtendedRegion()));
-/*!
- 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.
- */
-QString QUmlRegion::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust subsetted properties
+ if (extendedRegion) {
+ addRedefinedElement(extendedRegion);
+ }
+ }
}
/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
+ References the classifier in which context this element may be redefined.
*/
-QtUml::VisibilityKind QUmlRegion::visibility() const
+QUmlClassifier *
+QUmlRegion::redefinitionContext() const
{
- return _visibility;
-}
+ // This is a read-only derived association end
-// OWNED ATTRIBUTES [RedefinableElement]
+ qWarning("UmlRegion::redefinitionContext(): to be implemented (this is a derived association end)");
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlRegion::isLeaf() const
-{
- return _isLeaf;
+ return 0;
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlRegion::redefinedElement() const
+void QUmlRegion::setRedefinitionContext(QUmlClassifier *redefinitionContext)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-// OWNED ATTRIBUTES [Namespace]
+ // This is a read-only derived association end
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlRegion::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
+ qWarning("UmlRegion::redefinitionContext(): to be implemented (this is a derived association end)");
+ Q_UNUSED(redefinitionContext);
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlRegion::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
+ The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine.
*/
-const QSet<QUmlNamedElement *> QUmlRegion::member() const
+QUmlState *
+QUmlRegion::state() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
+ // This is a read-write association end
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlRegion::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ return _state;
}
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlRegion::ownedRule() const
+void QUmlRegion::setState(QUmlState *state)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
+ // This is a read-write association end
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlRegion::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ if (_state != state) {
+ // Adjust subsetted properties
-// OWNED ATTRIBUTES [Region]
+ _state = state;
+ if (state->asQObject() && this->asQObject())
+ QObject::connect(state->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setState()));
-/*!
- The region of which this region is an extension.
- */
-QUmlRegion *QUmlRegion::extendedRegion() const
-{
- return reinterpret_cast<QUmlRegion *>(_extendedRegion);
+ // Adjust subsetted properties
+ setNamespace(state);
+ }
}
/*!
- References the classifier in which context this element may be redefined.
+ The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State.
*/
-QUmlClassifier *QUmlRegion::redefinitionContext() const
+QUmlStateMachine *
+QUmlRegion::stateMachine() const
{
- return reinterpret_cast<QUmlClassifier *>(UmlRegion::redefinitionContext());
-}
+ // This is a read-write association end
-/*!
- The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine.
- */
-QUmlState *QUmlRegion::state() const
-{
- return reinterpret_cast<QUmlState *>(_state);
+ return _stateMachine;
}
-/*!
- The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State.
- */
-QUmlStateMachine *QUmlRegion::stateMachine() const
+void QUmlRegion::setStateMachine(QUmlStateMachine *stateMachine)
{
- return reinterpret_cast<QUmlStateMachine *>(_stateMachine);
+ // This is a read-write association end
+
+ if (_stateMachine != stateMachine) {
+ // Adjust subsetted properties
+
+ _stateMachine = stateMachine;
+ if (stateMachine->asQObject() && this->asQObject())
+ QObject::connect(stateMachine->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setStateMachine()));
+
+ // Adjust subsetted properties
+ setNamespace(stateMachine);
+ }
}
/*!
The set of vertices that are owned by this region.
*/
-const QSet<QUmlVertex *> QUmlRegion::subvertex() const
+const QSet<QUmlVertex *>
+QUmlRegion::subvertex() const
{
- return *(reinterpret_cast<const QSet<QUmlVertex *> *>(&_subvertex));
+ // This is a read-write association end
+
+ return _subvertex;
}
-/*!
- The set of transitions owned by the region.
- */
-const QSet<QUmlTransition *> QUmlRegion::transition() const
+void QUmlRegion::addSubvertex(QUmlVertex *subvertex)
{
- return *(reinterpret_cast<const QSet<QUmlTransition *> *>(&_transition));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_subvertex.contains(subvertex)) {
+ _subvertex.insert(subvertex);
+ if (subvertex->asQObject() && this->asQObject())
+ QObject::connect(subvertex->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubvertex(QObject *)));
+ subvertex->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRegion::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addOwnedMember(subvertex);
+
+ // Adjust opposite properties
+ if (subvertex) {
+ subvertex->setContainer(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlRegion::mustBeOwned() const
+void QUmlRegion::removeSubvertex(QUmlVertex *subvertex)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_subvertex.contains(subvertex)) {
+ _subvertex.remove(subvertex);
+ if (subvertex->asQObject())
+ subvertex->asQObject()->setParent(0);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRegion::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedMember(subvertex);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRegion::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust opposite properties
+ if (subvertex) {
+ subvertex->setContainer(0);
+ }
+ }
}
/*!
- 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.
+ The set of transitions owned by the region.
*/
-bool QUmlRegion::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+const QSet<QUmlTransition *>
+QUmlRegion::transition() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // This is a read-write association end
+
+ return _transition;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRegion::separator() const
+void QUmlRegion::addTransition(QUmlTransition *transition)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-// OPERATIONS [Namespace]
+ if (!_transition.contains(transition)) {
+ _transition.insert(transition);
+ if (transition->asQObject() && this->asQObject())
+ QObject::connect(transition->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTransition(QObject *)));
+ transition->asQObject()->setParent(this->asQObject());
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlRegion::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addOwnedMember(transition);
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlRegion::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ // Adjust opposite properties
+ if (transition) {
+ transition->setContainer(this);
+ }
+ }
}
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlRegion::importMembers(QSet<QUmlPackageableElement *> imps) const
+void QUmlRegion::removeTransition(QUmlTransition *transition)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlRegion::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
+ if (_transition.contains(transition)) {
+ _transition.remove(transition);
+ if (transition->asQObject())
+ transition->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedMember(transition);
+
+ // Adjust opposite properties
+ if (transition) {
+ transition->setContainer(0);
+ }
+ }
}
-// OPERATIONS [Region]
+// OPERATIONS
/*!
The operation belongsToPSM () checks if the region belongs to a protocol state machine
*/
bool QUmlRegion::belongsToPSM() const
{
- return UmlRegion::belongsToPSM();
+ qWarning("UmlRegion::belongsToPSM(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -386,7 +300,9 @@ bool QUmlRegion::belongsToPSM() const
*/
QUmlStateMachine *QUmlRegion::containingStateMachine() const
{
- return reinterpret_cast<QUmlStateMachine *>(UmlRegion::containingStateMachine());
+ qWarning("UmlRegion::containingStateMachine(): to be implemented (operation)");
+
+ return 0;
}
/*!
@@ -394,7 +310,10 @@ QUmlStateMachine *QUmlRegion::containingStateMachine() const
*/
bool QUmlRegion::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- return UmlRegion::isConsistentWith(redefinee);
+ qWarning("UmlRegion::isConsistentWith(): to be implemented (operation)");
+
+ Q_UNUSED(redefinee);
+ return bool ();
}
/*!
@@ -402,122 +321,9 @@ bool QUmlRegion::isConsistentWith(QUmlRedefinableElement *redefinee) const
*/
bool QUmlRegion::isRedefinitionContextValid(QUmlRegion *redefined) const
{
- return UmlRegion::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRegion::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlRegion::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRegion::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRegion::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlRegion::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlRegion::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlRegion::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlRegion::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlRegion::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlRegion::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlRegion::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlRegion::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlRegion::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
+ qWarning("UmlRegion::isRedefinitionContextValid(): to be implemented (operation)");
-void QUmlRegion::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
+ Q_UNUSED(redefined);
+ return bool ();
}
-// SLOTS FOR OWNED ATTRIBUTES [Region]
-
-void QUmlRegion::setExtendedRegion(QUmlRegion *extendedRegion)
-{
- UmlRegion::setExtendedRegion(extendedRegion);
-}
-
-void QUmlRegion::setState(QUmlState *state)
-{
- UmlRegion::setState(state);
-}
-
-void QUmlRegion::setStateMachine(QUmlStateMachine *stateMachine)
-{
- UmlRegion::setStateMachine(stateMachine);
-}
-
-void QUmlRegion::addSubvertex(UmlVertex *subvertex)
-{
- UmlRegion::addSubvertex(subvertex);
-}
-
-void QUmlRegion::removeSubvertex(UmlVertex *subvertex)
-{
- UmlRegion::removeSubvertex(subvertex);
-}
-
-void QUmlRegion::addTransition(UmlTransition *transition)
-{
- UmlRegion::addTransition(transition);
-}
-
-void QUmlRegion::removeTransition(UmlTransition *transition)
-{
- UmlRegion::removeTransition(transition);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlregion.h b/src/uml/qumlregion.h
index 6165ce3f..324990dc 100644
--- a/src/uml/qumlregion.h
+++ b/src/uml/qumlregion.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlregion_p.h"
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlNamespace>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,159 +54,50 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
class QUmlState;
class QUmlStateMachine;
-class QUmlStringExpression;
class QUmlTransition;
class QUmlVertex;
-class Q_UML_EXPORT QUmlRegion : public QObject, public UmlRegion
+class Q_UML_EXPORT QUmlRegion : public QUmlRedefinableElement, public QUmlNamespace
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [Region]
- Q_PROPERTY(QUmlRegion * extendedRegion READ extendedRegion)
- Q_PROPERTY(QUmlClassifier * redefinitionContext READ redefinitionContext)
- Q_PROPERTY(QUmlState * state READ state)
- Q_PROPERTY(QUmlStateMachine * stateMachine READ stateMachine)
- Q_PROPERTY(QSet<QUmlVertex *> subvertex READ subvertex)
- Q_PROPERTY(QSet<QUmlTransition *> transition READ transition)
-
public:
- Q_INVOKABLE explicit QUmlRegion(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [Region]
- Q_INVOKABLE QUmlRegion *extendedRegion() const;
- Q_INVOKABLE QUmlClassifier *redefinitionContext() const;
- Q_INVOKABLE QUmlState *state() const;
- Q_INVOKABLE QUmlStateMachine *stateMachine() const;
- Q_INVOKABLE const QSet<QUmlVertex *> subvertex() const;
- Q_INVOKABLE const QSet<QUmlTransition *> transition() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [Region]
- Q_INVOKABLE bool belongsToPSM() const;
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRegion *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [Region]
+ explicit QUmlRegion(bool createQObject = true);
+ virtual ~QUmlRegion();
+
+ // Owned attributes
+ QUmlRegion *extendedRegion() const;
void setExtendedRegion(QUmlRegion *extendedRegion);
+ QUmlClassifier *redefinitionContext() const;
+ Q_DECL_HIDDEN void setRedefinitionContext(QUmlClassifier *redefinitionContext);
+ QUmlState *state() const;
void setState(QUmlState *state);
+ QUmlStateMachine *stateMachine() const;
void setStateMachine(QUmlStateMachine *stateMachine);
- void addSubvertex(UmlVertex *subvertex);
- void removeSubvertex(UmlVertex *subvertex);
- void addTransition(UmlTransition *transition);
- void removeTransition(UmlTransition *transition);
+ const QSet<QUmlVertex *> subvertex() const;
+ void addSubvertex(QUmlVertex *subvertex);
+ void removeSubvertex(QUmlVertex *subvertex);
+ const QSet<QUmlTransition *> transition() const;
+ void addTransition(QUmlTransition *transition);
+ void removeTransition(QUmlTransition *transition);
+
+ // Operations
+ bool belongsToPSM() const;
+ QUmlStateMachine *containingStateMachine() const;
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+ bool isRedefinitionContextValid(QUmlRegion *redefined) const;
+
+protected:
+ QUmlRegion *_extendedRegion;
+ QUmlState *_state;
+ QUmlStateMachine *_stateMachine;
+ QSet<QUmlVertex *> _subvertex;
+ QSet<QUmlTransition *> _transition;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRegion *)
-Q_DECLARE_METATYPE(QList<QUmlRegion *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRegion *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRegion) *)
QT_END_HEADER
diff --git a/src/uml/qumlrelationship.cpp b/src/uml/qumlrelationship.cpp
index 0d45d471..55c19119 100644
--- a/src/uml/qumlrelationship.cpp
+++ b/src/uml/qumlrelationship.cpp
@@ -40,94 +40,51 @@
****************************************************************************/
#include "qumlrelationship.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlRelationship
+ \class QUmlRelationship
\inmodule QtUml
\brief Relationship is an abstract concept that specifies some kind of relationship between elements.
*/
-
-QUmlRelationship::QUmlRelationship(QObject *parent) :
- QObject(parent)
+QUmlRelationship::QUmlRelationship()
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRelationship::ownedComment() const
+QUmlRelationship::~QUmlRelationship()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRelationship::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlRelationship::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [Relationship]
+// OWNED ATTRIBUTES
/*!
Specifies the elements related by the Relationship.
*/
-const QSet<QUmlElement *> QUmlRelationship::relatedElement() const
+const QSet<QUmlElement *>
+QUmlRelationship::relatedElement() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
+ // This is a read-only derived union association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRelationship::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _relatedElement;
}
-/*!
- 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.
- */
-bool QUmlRelationship::mustBeOwned() const
+void QUmlRelationship::addRelatedElement(QUmlElement *relatedElement)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived union association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRelationship::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ if (!_relatedElement.contains(relatedElement)) {
+ _relatedElement.insert(relatedElement);
+ if (relatedElement->asQObject() && this->asQObject())
+ QObject::connect(relatedElement->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRelatedElement(QObject *)));
+ }
}
-void QUmlRelationship::removeOwnedComment(UmlComment *ownedComment)
+void QUmlRelationship::removeRelatedElement(QUmlElement *relatedElement)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+ // This is a read-only derived union association end
-QT_END_NAMESPACE
+ if (_relatedElement.contains(relatedElement)) {
+ _relatedElement.remove(relatedElement);
+ }
+}
diff --git a/src/uml/qumlrelationship.h b/src/uml/qumlrelationship.h
index afe887e6..ec2f62f4 100644
--- a/src/uml/qumlrelationship.h
+++ b/src/uml/qumlrelationship.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlrelationship_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,50 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
-
-class Q_UML_EXPORT QUmlRelationship : public QObject, public UmlRelationship
+class Q_UML_EXPORT QUmlRelationship : public virtual QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
public:
- Q_DECL_HIDDEN explicit QUmlRelationship(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
+ virtual ~QUmlRelationship();
-public Q_SLOTS:
+ // Owned attributes
+ const QSet<QUmlElement *> relatedElement() const;
+ Q_DECL_HIDDEN void addRelatedElement(QUmlElement *relatedElement);
+ Q_DECL_HIDDEN void removeRelatedElement(QUmlElement *relatedElement);
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+protected:
+ explicit QUmlRelationship();
- // Slots for owned attributes [Relationship]
+ QSet<QUmlElement *> _relatedElement;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRelationship *)
-Q_DECLARE_METATYPE(QList<QUmlRelationship *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRelationship *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRelationship) *)
QT_END_HEADER
diff --git a/src/uml/qumlremovestructuralfeaturevalueaction.cpp b/src/uml/qumlremovestructuralfeaturevalueaction.cpp
index 8f58c12e..8ac0b949 100644
--- a/src/uml/qumlremovestructuralfeaturevalueaction.cpp
+++ b/src/uml/qumlremovestructuralfeaturevalueaction.cpp
@@ -40,586 +40,83 @@
****************************************************************************/
#include "qumlremovestructuralfeaturevalueaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuralFeature>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlremovestructuralfeaturevalueactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlRemoveStructuralFeatureValueAction
+ \class QUmlRemoveStructuralFeatureValueAction
\inmodule QtUml
\brief A remove structural feature value action is a write structural feature action that removes values from structural features.
*/
-
-QUmlRemoveStructuralFeatureValueAction::QUmlRemoveStructuralFeatureValueAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRemoveStructuralFeatureValueAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRemoveStructuralFeatureValueAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlRemoveStructuralFeatureValueAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRemoveStructuralFeatureValueAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlRemoveStructuralFeatureValueAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRemoveStructuralFeatureValueAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlRemoveStructuralFeatureValueAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlRemoveStructuralFeatureValueAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlRemoveStructuralFeatureValueAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlRemoveStructuralFeatureValueAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlRemoveStructuralFeatureValueAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlRemoveStructuralFeatureValueAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlRemoveStructuralFeatureValueAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlRemoveStructuralFeatureValueAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlRemoveStructuralFeatureValueAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlRemoveStructuralFeatureValueAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlRemoveStructuralFeatureValueAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlRemoveStructuralFeatureValueAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlRemoveStructuralFeatureValueAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlRemoveStructuralFeatureValueAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlRemoveStructuralFeatureValueAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlRemoveStructuralFeatureValueAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlRemoveStructuralFeatureValueAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlRemoveStructuralFeatureValueAction::isLocallyReentrant() const
+QUmlRemoveStructuralFeatureValueAction::QUmlRemoveStructuralFeatureValueAction(bool createQObject) :
+ _isRemoveDuplicates(false),
+ _removeAt(0)
{
- return _isLocallyReentrant;
+ if (createQObject)
+ _qObject = new QUmlRemoveStructuralFeatureValueActionObject(this);
}
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlRemoveStructuralFeatureValueAction::localPostcondition() const
+QUmlRemoveStructuralFeatureValueAction::~QUmlRemoveStructuralFeatureValueAction()
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlRemoveStructuralFeatureValueAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlRemoveStructuralFeatureValueAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [StructuralFeatureAction]
-
-/*!
- Gives the input pin from which the object whose structural feature is to be read or written is obtained.
- */
-QUmlInputPin *QUmlRemoveStructuralFeatureValueAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-/*!
- Structural feature to be read.
- */
-QUmlStructuralFeature *QUmlRemoveStructuralFeatureValueAction::structuralFeature() const
-{
- return reinterpret_cast<QUmlStructuralFeature *>(_structuralFeature);
-}
-
-// OWNED ATTRIBUTES [WriteStructuralFeatureAction]
-
-/*!
- Gives the output pin on which the result is put.
- */
-QUmlOutputPin *QUmlRemoveStructuralFeatureValueAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-/*!
- Value to be added or removed from the structural feature.
- */
-QUmlInputPin *QUmlRemoveStructuralFeatureValueAction::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OWNED ATTRIBUTES [RemoveStructuralFeatureValueAction]
+// OWNED ATTRIBUTES
/*!
Specifies whether to remove duplicates of the value in nonunique structural features.
*/
-bool QUmlRemoveStructuralFeatureValueAction::isRemoveDuplicates() const
-{
- return _isRemoveDuplicates;
-}
-
-/*!
- 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.
- */
-QUmlInputPin *QUmlRemoveStructuralFeatureValueAction::removeAt() const
+bool
+QUmlRemoveStructuralFeatureValueAction::isRemoveDuplicates() const
{
- return reinterpret_cast<QUmlInputPin *>(_removeAt);
-}
+ // This is a read-write property
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRemoveStructuralFeatureValueAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRemoveStructuralFeatureValueAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRemoveStructuralFeatureValueAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRemoveStructuralFeatureValueAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRemoveStructuralFeatureValueAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isRemoveDuplicates;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRemoveStructuralFeatureValueAction::separator() const
+void QUmlRemoveStructuralFeatureValueAction::setRemoveDuplicates(bool isRemoveDuplicates)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlRemoveStructuralFeatureValueAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_isRemoveDuplicates != isRemoveDuplicates) {
+ _isRemoveDuplicates = isRemoveDuplicates;
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlRemoveStructuralFeatureValueAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRemoveStructuralFeatureValueAction::addOwnedComment(UmlComment *ownedComment)
+QUmlInputPin *
+QUmlRemoveStructuralFeatureValueAction::removeAt() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlRemoveStructuralFeatureValueAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _removeAt;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRemoveStructuralFeatureValueAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlRemoveStructuralFeatureValueAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlRemoveStructuralFeatureValueAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlRemoveStructuralFeatureValueAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlRemoveStructuralFeatureValueAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
-
-void QUmlRemoveStructuralFeatureValueAction::setObject(QUmlInputPin *object)
-{
- UmlStructuralFeatureAction::setObject(object);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::setStructuralFeature(QUmlStructuralFeature *structuralFeature)
-{
- UmlStructuralFeatureAction::setStructuralFeature(structuralFeature);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [WriteStructuralFeatureAction]
-
-void QUmlRemoveStructuralFeatureValueAction::setResult(QUmlOutputPin *result)
-{
- UmlWriteStructuralFeatureAction::setResult(result);
-}
-
-void QUmlRemoveStructuralFeatureValueAction::setValue(QUmlInputPin *value)
+void QUmlRemoveStructuralFeatureValueAction::setRemoveAt(QUmlInputPin *removeAt)
{
- UmlWriteStructuralFeatureAction::setValue(value);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RemoveStructuralFeatureValueAction]
+ if (_removeAt != removeAt) {
+ // Adjust subsetted properties
+ removeInput(_removeAt);
-void QUmlRemoveStructuralFeatureValueAction::setRemoveDuplicates(bool isRemoveDuplicates)
-{
- UmlRemoveStructuralFeatureValueAction::setRemoveDuplicates(isRemoveDuplicates);
-}
+ _removeAt = removeAt;
+ if (removeAt->asQObject() && this->asQObject())
+ QObject::connect(removeAt->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRemoveAt()));
+ removeAt->asQObject()->setParent(this->asQObject());
-void QUmlRemoveStructuralFeatureValueAction::setRemoveAt(QUmlInputPin *removeAt)
-{
- UmlRemoveStructuralFeatureValueAction::setRemoveAt(removeAt);
+ // Adjust subsetted properties
+ if (removeAt) {
+ addInput(removeAt);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlremovestructuralfeaturevalueaction.h b/src/uml/qumlremovestructuralfeaturevalueaction.h
index 30434b6b..02cc8995 100644
--- a/src/uml/qumlremovestructuralfeaturevalueaction.h
+++ b/src/uml/qumlremovestructuralfeaturevalueaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlremovestructuralfeaturevalueaction_p.h"
+#include <QtUml/QUmlWriteStructuralFeatureAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,210 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuralFeature;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlRemoveStructuralFeatureValueAction : public QObject, public UmlRemoveStructuralFeatureValueAction
+class Q_UML_EXPORT QUmlRemoveStructuralFeatureValueAction : public QUmlWriteStructuralFeatureAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StructuralFeatureAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlStructuralFeature * structuralFeature READ structuralFeature)
-
- // Properties [WriteStructuralFeatureAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
- // Properties [RemoveStructuralFeatureValueAction]
- Q_PROPERTY(bool isRemoveDuplicates READ isRemoveDuplicates)
- Q_PROPERTY(QUmlInputPin * removeAt READ removeAt)
-
public:
- Q_INVOKABLE explicit QUmlRemoveStructuralFeatureValueAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlRemoveStructuralFeatureValueAction(bool createQObject = true);
+ virtual ~QUmlRemoveStructuralFeatureValueAction();
- // Owned attributes [StructuralFeatureAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlStructuralFeature *structuralFeature() const;
-
- // Owned attributes [WriteStructuralFeatureAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Owned attributes [RemoveStructuralFeatureValueAction]
- Q_INVOKABLE bool isRemoveDuplicates() const;
- Q_INVOKABLE QUmlInputPin *removeAt() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StructuralFeatureAction]
- void setObject(QUmlInputPin *object);
- void setStructuralFeature(QUmlStructuralFeature *structuralFeature);
-
- // Slots for owned attributes [WriteStructuralFeatureAction]
- void setResult(QUmlOutputPin *result);
- void setValue(QUmlInputPin *value);
-
- // Slots for owned attributes [RemoveStructuralFeatureValueAction]
+ // Owned attributes
+ bool isRemoveDuplicates() const;
void setRemoveDuplicates(bool isRemoveDuplicates);
+ QUmlInputPin *removeAt() const;
void setRemoveAt(QUmlInputPin *removeAt);
+
+protected:
+ bool _isRemoveDuplicates;
+ QUmlInputPin *_removeAt;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRemoveStructuralFeatureValueAction *)
-Q_DECLARE_METATYPE(QList<QUmlRemoveStructuralFeatureValueAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRemoveStructuralFeatureValueAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRemoveStructuralFeatureValueAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlremovevariablevalueaction.cpp b/src/uml/qumlremovevariablevalueaction.cpp
index 44747bdb..9d50ddb3 100644
--- a/src/uml/qumlremovevariablevalueaction.cpp
+++ b/src/uml/qumlremovevariablevalueaction.cpp
@@ -40,560 +40,83 @@
****************************************************************************/
#include "qumlremovevariablevalueaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
+#include "private/qumlremovevariablevalueactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlRemoveVariableValueAction
+ \class QUmlRemoveVariableValueAction
\inmodule QtUml
\brief A remove variable value action is a write variable action that removes values from variables.
*/
-
-QUmlRemoveVariableValueAction::QUmlRemoveVariableValueAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlRemoveVariableValueAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlRemoveVariableValueAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlRemoveVariableValueAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlRemoveVariableValueAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlRemoveVariableValueAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlRemoveVariableValueAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlRemoveVariableValueAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlRemoveVariableValueAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlRemoveVariableValueAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlRemoveVariableValueAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlRemoveVariableValueAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlRemoveVariableValueAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlRemoveVariableValueAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlRemoveVariableValueAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlRemoveVariableValueAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlRemoveVariableValueAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlRemoveVariableValueAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlRemoveVariableValueAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlRemoveVariableValueAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlRemoveVariableValueAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlRemoveVariableValueAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlRemoveVariableValueAction::context() const
+QUmlRemoveVariableValueAction::QUmlRemoveVariableValueAction(bool createQObject) :
+ _isRemoveDuplicates(false),
+ _removeAt(0)
{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
+ if (createQObject)
+ _qObject = new QUmlRemoveVariableValueActionObject(this);
}
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlRemoveVariableValueAction::input() const
+QUmlRemoveVariableValueAction::~QUmlRemoveVariableValueAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlRemoveVariableValueAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlRemoveVariableValueAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlRemoveVariableValueAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlRemoveVariableValueAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [VariableAction]
-
-/*!
- Variable to be read.
- */
-QUmlVariable *QUmlRemoveVariableValueAction::variable() const
-{
- return reinterpret_cast<QUmlVariable *>(_variable);
-}
-
-// OWNED ATTRIBUTES [WriteVariableAction]
-
-/*!
- Value to be added or removed from the variable.
- */
-QUmlInputPin *QUmlRemoveVariableValueAction::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OWNED ATTRIBUTES [RemoveVariableValueAction]
+// OWNED ATTRIBUTES
/*!
Specifies whether to remove duplicates of the value in nonunique variables.
*/
-bool QUmlRemoveVariableValueAction::isRemoveDuplicates() const
+bool
+QUmlRemoveVariableValueAction::isRemoveDuplicates() const
{
- return _isRemoveDuplicates;
-}
-
-/*!
- 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.
- */
-QUmlInputPin *QUmlRemoveVariableValueAction::removeAt() const
-{
- return reinterpret_cast<QUmlInputPin *>(_removeAt);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlRemoveVariableValueAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlRemoveVariableValueAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlRemoveVariableValueAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlRemoveVariableValueAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlRemoveVariableValueAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _isRemoveDuplicates;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlRemoveVariableValueAction::separator() const
+void QUmlRemoveVariableValueAction::setRemoveDuplicates(bool isRemoveDuplicates)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlRemoveVariableValueAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_isRemoveDuplicates != isRemoveDuplicates) {
+ _isRemoveDuplicates = isRemoveDuplicates;
+ }
}
/*!
- 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.
+ 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.
*/
-bool QUmlRemoveVariableValueAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlRemoveVariableValueAction::addOwnedComment(UmlComment *ownedComment)
+QUmlInputPin *
+QUmlRemoveVariableValueAction::removeAt() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlRemoveVariableValueAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlRemoveVariableValueAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlRemoveVariableValueAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlRemoveVariableValueAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlRemoveVariableValueAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlRemoveVariableValueAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlRemoveVariableValueAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return _removeAt;
}
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlRemoveVariableValueAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlRemoveVariableValueAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlRemoveVariableValueAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlRemoveVariableValueAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlRemoveVariableValueAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlRemoveVariableValueAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlRemoveVariableValueAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlRemoveVariableValueAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlRemoveVariableValueAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlRemoveVariableValueAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlRemoveVariableValueAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlRemoveVariableValueAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlRemoveVariableValueAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlRemoveVariableValueAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlRemoveVariableValueAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlRemoveVariableValueAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlRemoveVariableValueAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlRemoveVariableValueAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlRemoveVariableValueAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
-
-void QUmlRemoveVariableValueAction::setVariable(QUmlVariable *variable)
-{
- UmlVariableAction::setVariable(variable);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [WriteVariableAction]
-
-void QUmlRemoveVariableValueAction::setValue(QUmlInputPin *value)
+void QUmlRemoveVariableValueAction::setRemoveAt(QUmlInputPin *removeAt)
{
- UmlWriteVariableAction::setValue(value);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RemoveVariableValueAction]
+ if (_removeAt != removeAt) {
+ // Adjust subsetted properties
+ removeInput(_removeAt);
-void QUmlRemoveVariableValueAction::setRemoveDuplicates(bool isRemoveDuplicates)
-{
- UmlRemoveVariableValueAction::setRemoveDuplicates(isRemoveDuplicates);
-}
+ _removeAt = removeAt;
+ if (removeAt->asQObject() && this->asQObject())
+ QObject::connect(removeAt->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRemoveAt()));
+ removeAt->asQObject()->setParent(this->asQObject());
-void QUmlRemoveVariableValueAction::setRemoveAt(QUmlInputPin *removeAt)
-{
- UmlRemoveVariableValueAction::setRemoveAt(removeAt);
+ // Adjust subsetted properties
+ if (removeAt) {
+ addInput(removeAt);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlremovevariablevalueaction.h b/src/uml/qumlremovevariablevalueaction.h
index 1cd34fe9..47cfe439 100644
--- a/src/uml/qumlremovevariablevalueaction.h
+++ b/src/uml/qumlremovevariablevalueaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlremovevariablevalueaction_p.h"
+#include <QtUml/QUmlWriteVariableAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,204 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlRemoveVariableValueAction : public QObject, public UmlRemoveVariableValueAction
+class Q_UML_EXPORT QUmlRemoveVariableValueAction : public QUmlWriteVariableAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [VariableAction]
- Q_PROPERTY(QUmlVariable * variable READ variable)
-
- // Properties [WriteVariableAction]
- Q_PROPERTY(QUmlInputPin * value READ value)
-
- // Properties [RemoveVariableValueAction]
- Q_PROPERTY(bool isRemoveDuplicates READ isRemoveDuplicates)
- Q_PROPERTY(QUmlInputPin * removeAt READ removeAt)
-
public:
- Q_INVOKABLE explicit QUmlRemoveVariableValueAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlRemoveVariableValueAction(bool createQObject = true);
+ virtual ~QUmlRemoveVariableValueAction();
- // Owned attributes [VariableAction]
- Q_INVOKABLE QUmlVariable *variable() const;
-
- // Owned attributes [WriteVariableAction]
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Owned attributes [RemoveVariableValueAction]
- Q_INVOKABLE bool isRemoveDuplicates() const;
- Q_INVOKABLE QUmlInputPin *removeAt() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [VariableAction]
- void setVariable(QUmlVariable *variable);
-
- // Slots for owned attributes [WriteVariableAction]
- void setValue(QUmlInputPin *value);
-
- // Slots for owned attributes [RemoveVariableValueAction]
+ // Owned attributes
+ bool isRemoveDuplicates() const;
void setRemoveDuplicates(bool isRemoveDuplicates);
+ QUmlInputPin *removeAt() const;
void setRemoveAt(QUmlInputPin *removeAt);
+
+protected:
+ bool _isRemoveDuplicates;
+ QUmlInputPin *_removeAt;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlRemoveVariableValueAction *)
-Q_DECLARE_METATYPE(QList<QUmlRemoveVariableValueAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlRemoveVariableValueAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlRemoveVariableValueAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlreplyaction.cpp b/src/uml/qumlreplyaction.cpp
index 15466690..baf78658 100644
--- a/src/uml/qumlreplyaction.cpp
+++ b/src/uml/qumlreplyaction.cpp
@@ -40,544 +40,126 @@
****************************************************************************/
#include "qumlreplyaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlreplyactionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
#include <QtUml/QUmlTrigger>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlReplyAction
+ \class QUmlReplyAction
\inmodule QtUml
\brief A reply action 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.
*/
-
-QUmlReplyAction::QUmlReplyAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlReplyAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlReplyAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlReplyAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlReplyAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlReplyAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlReplyAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlReplyAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlReplyAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlReplyAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlReplyAction::isLeaf() const
+QUmlReplyAction::QUmlReplyAction(bool createQObject) :
+ _replyToCall(0),
+ _returnInformation(0)
{
- return _isLeaf;
+ if (createQObject)
+ _qObject = new QUmlReplyActionObject(this);
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlReplyAction::redefinedElement() const
+QUmlReplyAction::~QUmlReplyAction()
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlReplyAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlReplyAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
+// OWNED ATTRIBUTES
/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlReplyAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlReplyAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlReplyAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlReplyAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlReplyAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlReplyAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlReplyAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlReplyAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlReplyAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlReplyAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlReplyAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
+ The trigger specifying the operation whose call is being replied to.
*/
-const QSet<QUmlConstraint *> QUmlReplyAction::localPostcondition() const
+QUmlTrigger *
+QUmlReplyAction::replyToCall() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlReplyAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
+ return _replyToCall;
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlReplyAction::output() const
+void QUmlReplyAction::setReplyToCall(QUmlTrigger *replyToCall)
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ReplyAction]
+ // This is a read-write association end
-/*!
- The trigger specifying the operation whose call is being replied to.
- */
-QUmlTrigger *QUmlReplyAction::replyToCall() const
-{
- return reinterpret_cast<QUmlTrigger *>(_replyToCall);
+ if (_replyToCall != replyToCall) {
+ _replyToCall = replyToCall;
+ if (replyToCall->asQObject() && this->asQObject())
+ QObject::connect(replyToCall->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReplyToCall()));
+ }
}
/*!
A list of pins containing the reply values of the operation. These values are returned to the caller.
*/
-const QSet<QUmlInputPin *> QUmlReplyAction::replyValue() const
+const QSet<QUmlInputPin *>
+QUmlReplyAction::replyValue() const
{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_replyValue));
-}
-
-/*!
- A pin containing the return information value produced by an earlier AcceptCallAction.
- */
-QUmlInputPin *QUmlReplyAction::returnInformation() const
-{
- return reinterpret_cast<QUmlInputPin *>(_returnInformation);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlReplyAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlReplyAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _replyValue;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlReplyAction::allNamespaces() const
+void QUmlReplyAction::addReplyValue(QUmlInputPin *replyValue)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlReplyAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (!_replyValue.contains(replyValue)) {
+ _replyValue.insert(replyValue);
+ if (replyValue->asQObject() && this->asQObject())
+ QObject::connect(replyValue->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeReplyValue(QObject *)));
+ replyValue->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlReplyAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ addInput(replyValue);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlReplyAction::separator() const
+void QUmlReplyAction::removeReplyValue(QUmlInputPin *replyValue)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
+ if (_replyValue.contains(replyValue)) {
+ _replyValue.remove(replyValue);
+ if (replyValue->asQObject())
+ replyValue->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlReplyAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeInput(replyValue);
+ }
}
/*!
- 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.
+ A pin containing the return information value produced by an earlier AcceptCallAction.
*/
-bool QUmlReplyAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlReplyAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlReplyAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlReplyAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlReplyAction::removeClientDependency(UmlDependency *clientDependency)
+QUmlInputPin *
+QUmlReplyAction::returnInformation() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlReplyAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlReplyAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlReplyAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlReplyAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlReplyAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
+ return _returnInformation;
}
-void QUmlReplyAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReplyAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlReplyAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlReplyAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlReplyAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlReplyAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlReplyAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlReplyAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlReplyAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlReplyAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlReplyAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlReplyAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlReplyAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlReplyAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlReplyAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlReplyAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlReplyAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlReplyAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ReplyAction]
-
-void QUmlReplyAction::setReplyToCall(QUmlTrigger *replyToCall)
+void QUmlReplyAction::setReturnInformation(QUmlInputPin *returnInformation)
{
- UmlReplyAction::setReplyToCall(replyToCall);
-}
+ // This is a read-write association end
-void QUmlReplyAction::addReplyValue(UmlInputPin *replyValue)
-{
- UmlReplyAction::addReplyValue(replyValue);
-}
+ if (_returnInformation != returnInformation) {
+ // Adjust subsetted properties
+ removeInput(_returnInformation);
-void QUmlReplyAction::removeReplyValue(UmlInputPin *replyValue)
-{
- UmlReplyAction::removeReplyValue(replyValue);
-}
+ _returnInformation = returnInformation;
+ if (returnInformation->asQObject() && this->asQObject())
+ QObject::connect(returnInformation->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setReturnInformation()));
+ returnInformation->asQObject()->setParent(this->asQObject());
-void QUmlReplyAction::setReturnInformation(QUmlInputPin *returnInformation)
-{
- UmlReplyAction::setReturnInformation(returnInformation);
+ // Adjust subsetted properties
+ if (returnInformation) {
+ addInput(returnInformation);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlreplyaction.h b/src/uml/qumlreplyaction.h
index d05fb053..5f730eef 100644
--- a/src/uml/qumlreplyaction.h
+++ b/src/uml/qumlreplyaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlreplyaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,190 +52,33 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
class QUmlTrigger;
-class Q_UML_EXPORT QUmlReplyAction : public QObject, public UmlReplyAction
+class Q_UML_EXPORT QUmlReplyAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ReplyAction]
- Q_PROPERTY(QUmlTrigger * replyToCall READ replyToCall)
- Q_PROPERTY(QSet<QUmlInputPin *> replyValue READ replyValue)
- Q_PROPERTY(QUmlInputPin * returnInformation READ returnInformation)
-
public:
- Q_INVOKABLE explicit QUmlReplyAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlReplyAction(bool createQObject = true);
+ virtual ~QUmlReplyAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ReplyAction]
- Q_INVOKABLE QUmlTrigger *replyToCall() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> replyValue() const;
- Q_INVOKABLE QUmlInputPin *returnInformation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ReplyAction]
+ // Owned attributes
+ QUmlTrigger *replyToCall() const;
void setReplyToCall(QUmlTrigger *replyToCall);
- void addReplyValue(UmlInputPin *replyValue);
- void removeReplyValue(UmlInputPin *replyValue);
+ const QSet<QUmlInputPin *> replyValue() const;
+ void addReplyValue(QUmlInputPin *replyValue);
+ void removeReplyValue(QUmlInputPin *replyValue);
+ QUmlInputPin *returnInformation() const;
void setReturnInformation(QUmlInputPin *returnInformation);
+
+protected:
+ QUmlTrigger *_replyToCall;
+ QSet<QUmlInputPin *> _replyValue;
+ QUmlInputPin *_returnInformation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlReplyAction *)
-Q_DECLARE_METATYPE(QList<QUmlReplyAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlReplyAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlReplyAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlsendobjectaction.cpp b/src/uml/qumlsendobjectaction.cpp
index c8b51a8e..dd1857f8 100644
--- a/src/uml/qumlsendobjectaction.cpp
+++ b/src/uml/qumlsendobjectaction.cpp
@@ -40,543 +40,86 @@
****************************************************************************/
#include "qumlsendobjectaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlsendobjectactionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlSendObjectAction
+ \class QUmlSendObjectAction
\inmodule QtUml
\brief A send object action 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.
*/
-
-QUmlSendObjectAction::QUmlSendObjectAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSendObjectAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSendObjectAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlSendObjectAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlSendObjectAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlSendObjectAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlSendObjectAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlSendObjectAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlSendObjectAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlSendObjectAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlSendObjectAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlSendObjectAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlSendObjectAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlSendObjectAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlSendObjectAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlSendObjectAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlSendObjectAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlSendObjectAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlSendObjectAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlSendObjectAction::outgoing() const
+QUmlSendObjectAction::QUmlSendObjectAction(bool createQObject) :
+ _request(0),
+ _target(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (createQObject)
+ _qObject = new QUmlSendObjectActionObject(this);
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlSendObjectAction::redefinedNode() const
+QUmlSendObjectAction::~QUmlSendObjectAction()
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlSendObjectAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlSendObjectAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlSendObjectAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlSendObjectAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlSendObjectAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlSendObjectAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlSendObjectAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlSendObjectAction::onPort() const
-{
- return reinterpret_cast<QUmlPort *>(_onPort);
-}
-
-// OWNED ATTRIBUTES [SendObjectAction]
+// OWNED ATTRIBUTES
/*!
The request object, which is transmitted to the target object. The object may be copied in transmission, so identity might not be preserved.
*/
-QUmlInputPin *QUmlSendObjectAction::request() const
-{
- return reinterpret_cast<QUmlInputPin *>(_request);
-}
-
-/*!
- The target object to which the object is sent.
- */
-QUmlInputPin *QUmlSendObjectAction::target() const
-{
- return reinterpret_cast<QUmlInputPin *>(_target);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSendObjectAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSendObjectAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlSendObjectAction::allNamespaces() const
+QUmlInputPin *
+QUmlSendObjectAction::request() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlSendObjectAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _request;
}
-/*!
- 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.
- */
-bool QUmlSendObjectAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlSendObjectAction::separator() const
+void QUmlSendObjectAction::setRequest(QUmlInputPin *request)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlSendObjectAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_request != request) {
+ _request = request;
+ if (request->asQObject() && this->asQObject())
+ QObject::connect(request->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRequest()));
+ request->asQObject()->setParent(this->asQObject());
+ }
}
/*!
- 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.
+ The target object to which the object is sent.
*/
-bool QUmlSendObjectAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlInputPin *
+QUmlSendObjectAction::target() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlSendObjectAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _target;
}
-void QUmlSendObjectAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlSendObjectAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlSendObjectAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlSendObjectAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlSendObjectAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlSendObjectAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlSendObjectAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlSendObjectAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlSendObjectAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlSendObjectAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlSendObjectAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlSendObjectAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlSendObjectAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlSendObjectAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlSendObjectAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlSendObjectAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlSendObjectAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlSendObjectAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlSendObjectAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlSendObjectAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlSendObjectAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlSendObjectAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlSendObjectAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlSendObjectAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlSendObjectAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlSendObjectAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlSendObjectAction::setOnPort(QUmlPort *onPort)
+void QUmlSendObjectAction::setTarget(QUmlInputPin *target)
{
- UmlInvocationAction::setOnPort(onPort);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [SendObjectAction]
+ if (_target != target) {
+ // Adjust subsetted properties
+ removeInput(_target);
-void QUmlSendObjectAction::setRequest(QUmlInputPin *request)
-{
- UmlSendObjectAction::setRequest(request);
-}
+ _target = target;
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTarget()));
+ target->asQObject()->setParent(this->asQObject());
-void QUmlSendObjectAction::setTarget(QUmlInputPin *target)
-{
- UmlSendObjectAction::setTarget(target);
+ // Adjust subsetted properties
+ if (target) {
+ addInput(target);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlsendobjectaction.h b/src/uml/qumlsendobjectaction.h
index b6bbe8a4..f958bfea 100644
--- a/src/uml/qumlsendobjectaction.h
+++ b/src/uml/qumlsendobjectaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlsendobjectaction_p.h"
+#include <QtUml/QUmlInvocationAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,195 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlSendObjectAction : public QObject, public UmlSendObjectAction
+class Q_UML_EXPORT QUmlSendObjectAction : public QUmlInvocationAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [SendObjectAction]
- Q_PROPERTY(QUmlInputPin * request READ request)
- Q_PROPERTY(QUmlInputPin * target READ target)
-
public:
- Q_INVOKABLE explicit QUmlSendObjectAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlSendObjectAction(bool createQObject = true);
+ virtual ~QUmlSendObjectAction();
- // Owned attributes [InvocationAction]
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [SendObjectAction]
- Q_INVOKABLE QUmlInputPin *request() const;
- Q_INVOKABLE QUmlInputPin *target() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [SendObjectAction]
+ // Owned attributes
+ QUmlInputPin *request() const;
void setRequest(QUmlInputPin *request);
+ QUmlInputPin *target() const;
void setTarget(QUmlInputPin *target);
+
+protected:
+ QUmlInputPin *_request;
+ QUmlInputPin *_target;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSendObjectAction *)
-Q_DECLARE_METATYPE(QList<QUmlSendObjectAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSendObjectAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSendObjectAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlsendsignalaction.cpp b/src/uml/qumlsendsignalaction.cpp
index 9895879f..62717345 100644
--- a/src/uml/qumlsendsignalaction.cpp
+++ b/src/uml/qumlsendsignalaction.cpp
@@ -40,562 +40,86 @@
****************************************************************************/
#include "qumlsendsignalaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumlsendsignalactionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
#include <QtUml/QUmlSignal>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlSendSignalAction
+ \class QUmlSendSignalAction
\inmodule QtUml
\brief A send signal action 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 a send object action.
*/
-
-QUmlSendSignalAction::QUmlSendSignalAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSendSignalAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSendSignalAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlSendSignalAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlSendSignalAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlSendSignalAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlSendSignalAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlSendSignalAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlSendSignalAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlSendSignalAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlSendSignalAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlSendSignalAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlSendSignalAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlSendSignalAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlSendSignalAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlSendSignalAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlSendSignalAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlSendSignalAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlSendSignalAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlSendSignalAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlSendSignalAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlSendSignalAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlSendSignalAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlSendSignalAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlSendSignalAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlSendSignalAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlSendSignalAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlSendSignalAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- Specification of the ordered set of argument values that appears during execution.
- */
-const QList<QUmlInputPin *> QUmlSendSignalAction::argument() const
+QUmlSendSignalAction::QUmlSendSignalAction(bool createQObject) :
+ _signal(0),
+ _target(0)
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
+ if (createQObject)
+ _qObject = new QUmlSendSignalActionObject(this);
}
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlSendSignalAction::onPort() const
+QUmlSendSignalAction::~QUmlSendSignalAction()
{
- return reinterpret_cast<QUmlPort *>(_onPort);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [SendSignalAction]
+// OWNED ATTRIBUTES
/*!
The type of signal transmitted to the target object.
*/
-QUmlSignal *QUmlSendSignalAction::signal() const
+QUmlSignal *
+QUmlSendSignalAction::signal() const
{
- return reinterpret_cast<QUmlSignal *>(_signal);
-}
+ // This is a read-write association end
-/*!
- The target object to which the signal is sent.
- */
-QUmlInputPin *QUmlSendSignalAction::target() const
-{
- return reinterpret_cast<QUmlInputPin *>(_target);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSendSignalAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSendSignalAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlSendSignalAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlSendSignalAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSendSignalAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _signal;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlSendSignalAction::separator() const
+void QUmlSendSignalAction::setSignal(QUmlSignal *signal)
{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlSendSignalAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ if (_signal != signal) {
+ _signal = signal;
+ if (signal->asQObject() && this->asQObject())
+ QObject::connect(signal->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignal()));
+ }
}
/*!
- 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.
+ The target object to which the signal is sent.
*/
-bool QUmlSendSignalAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+QUmlInputPin *
+QUmlSendSignalAction::target() const
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlSendSignalAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlSendSignalAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlSendSignalAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ return _target;
}
-void QUmlSendSignalAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlSendSignalAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlSendSignalAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlSendSignalAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlSendSignalAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlSendSignalAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlSendSignalAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlSendSignalAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlSendSignalAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlSendSignalAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlSendSignalAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlSendSignalAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlSendSignalAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlSendSignalAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlSendSignalAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlSendSignalAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlSendSignalAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlSendSignalAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlSendSignalAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlSendSignalAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlSendSignalAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlSendSignalAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlSendSignalAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlSendSignalAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlSendSignalAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlSendSignalAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
-}
-
-void QUmlSendSignalAction::setOnPort(QUmlPort *onPort)
+void QUmlSendSignalAction::setTarget(QUmlInputPin *target)
{
- UmlInvocationAction::setOnPort(onPort);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [SendSignalAction]
+ if (_target != target) {
+ // Adjust subsetted properties
+ removeInput(_target);
-void QUmlSendSignalAction::setSignal(QUmlSignal *signal)
-{
- UmlSendSignalAction::setSignal(signal);
-}
+ _target = target;
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTarget()));
+ target->asQObject()->setParent(this->asQObject());
-void QUmlSendSignalAction::setTarget(QUmlInputPin *target)
-{
- UmlSendSignalAction::setTarget(target);
+ // Adjust subsetted properties
+ if (target) {
+ addInput(target);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlsendsignalaction.h b/src/uml/qumlsendsignalaction.h
index 5afeebd8..de0cb594 100644
--- a/src/uml/qumlsendsignalaction.h
+++ b/src/uml/qumlsendsignalaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlsendsignalaction_p.h"
+#include <QtUml/QUmlInvocationAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,200 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
class QUmlSignal;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlSendSignalAction : public QObject, public UmlSendSignalAction
+class Q_UML_EXPORT QUmlSendSignalAction : public QUmlInvocationAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [SendSignalAction]
- Q_PROPERTY(QUmlSignal * signal READ signal)
- Q_PROPERTY(QUmlInputPin * target READ target)
-
public:
- Q_INVOKABLE explicit QUmlSendSignalAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlSendSignalAction(bool createQObject = true);
+ virtual ~QUmlSendSignalAction();
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [SendSignalAction]
- Q_INVOKABLE QUmlSignal *signal() const;
- Q_INVOKABLE QUmlInputPin *target() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [SendSignalAction]
+ // Owned attributes
+ QUmlSignal *signal() const;
void setSignal(QUmlSignal *signal);
+ QUmlInputPin *target() const;
void setTarget(QUmlInputPin *target);
+
+protected:
+ QUmlSignal *_signal;
+ QUmlInputPin *_target;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSendSignalAction *)
-Q_DECLARE_METATYPE(QList<QUmlSendSignalAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSendSignalAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSendSignalAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlsequencenode.cpp b/src/uml/qumlsequencenode.cpp
index f45f42aa..6db083b1 100644
--- a/src/uml/qumlsequencenode.cpp
+++ b/src/uml/qumlsequencenode.cpp
@@ -40,766 +40,65 @@
****************************************************************************/
#include "qumlsequencenode.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlExecutableNode>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
+#include "private/qumlsequencenodeobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlExecutableNode>
/*!
- \class UmlSequenceNode
+ \class QUmlSequenceNode
\inmodule QtUml
\brief A sequence node is a structured activity node that executes its actions in order.
*/
-
-QUmlSequenceNode::QUmlSequenceNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSequenceNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSequenceNode::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlSequenceNode::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlSequenceNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlSequenceNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlSequenceNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlSequenceNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlSequenceNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlSequenceNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlSequenceNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlSequenceNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlSequenceNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlSequenceNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlSequenceNode::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlSequenceNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlSequenceNode::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlSequenceNode::incoming() const
+QUmlSequenceNode::QUmlSequenceNode(bool createQObject) :
+ QUmlStructuredActivityNode(false)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
+ if (createQObject)
+ _qObject = new QUmlSequenceNodeObject(this);
}
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlSequenceNode::outgoing() const
+QUmlSequenceNode::~QUmlSequenceNode()
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlSequenceNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlSequenceNode::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlSequenceNode::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlSequenceNode::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlSequenceNode::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlSequenceNode::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlSequenceNode::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlSequenceNode::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlSequenceNode::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlSequenceNode::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlSequenceNode::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlSequenceNode::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlSequenceNode::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlSequenceNode::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ActivityGroup]
-
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlSequenceNode::containedEdge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
-}
-
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlSequenceNode::containedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
-
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlSequenceNode::subgroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
-}
-
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlSequenceNode::superGroup() const
-{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
-}
-
-// OWNED ATTRIBUTES [StructuredActivityNode]
-
-/*!
- Activity immediately containing the node.
- */
-QUmlActivity *QUmlSequenceNode::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Edges immediately contained in the structured node.
- */
-const QSet<QUmlActivityEdge *> QUmlSequenceNode::edge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
-
-/*!
- If true, then the actions in the node execute in isolation from actions outside the node.
- */
-bool QUmlSequenceNode::mustIsolate() const
-{
- return _mustIsolate;
-}
-
-const QSet<QUmlInputPin *> QUmlSequenceNode::structuredNodeInput() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_structuredNodeInput));
-}
-
-const QSet<QUmlOutputPin *> QUmlSequenceNode::structuredNodeOutput() const
-{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_structuredNodeOutput));
-}
-
-/*!
- A variable defined in the scope of the structured activity node. It has no value and may not be accessed
- */
-const QSet<QUmlVariable *> QUmlSequenceNode::variable() const
-{
- return *(reinterpret_cast<const QSet<QUmlVariable *> *>(&_variable));
-}
-
-// OWNED ATTRIBUTES [SequenceNode]
+// OWNED ATTRIBUTES
/*!
An ordered set of executable nodes.
*/
-const QList<QUmlExecutableNode *> QUmlSequenceNode::executableNode() const
-{
- return *(reinterpret_cast<const QList<QUmlExecutableNode *> *>(&_executableNode));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSequenceNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSequenceNode::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlSequenceNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlSequenceNode::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSequenceNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlSequenceNode::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlSequenceNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlSequenceNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlSequenceNode::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlSequenceNode::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlSequenceNode::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlSequenceNode::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlSequenceNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlSequenceNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlSequenceNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlSequenceNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlSequenceNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlSequenceNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlSequenceNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlSequenceNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlSequenceNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
+const QList<QUmlExecutableNode *>
+QUmlSequenceNode::executableNode() const
{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlSequenceNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlSequenceNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlSequenceNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlSequenceNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlSequenceNode::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlSequenceNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlSequenceNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlSequenceNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlSequenceNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlSequenceNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlSequenceNode::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlSequenceNode::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
+ // This is a read-write association end
-void QUmlSequenceNode::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
+ return _executableNode;
}
-void QUmlSequenceNode::addLocalPostcondition(UmlConstraint *localPostcondition)
+void QUmlSequenceNode::addExecutableNode(QUmlExecutableNode *executableNode)
{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlSequenceNode::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
+ if (!_executableNode.contains(executableNode)) {
+ _executableNode.append(executableNode);
+ if (executableNode->asQObject() && this->asQObject())
+ QObject::connect(executableNode->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExecutableNode(QObject *)));
+ executableNode->asQObject()->setParent(this->asQObject());
+ }
}
-void QUmlSequenceNode::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlSequenceNode::removeExecutableNode(QUmlExecutableNode *executableNode)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlSequenceNode::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ if (_executableNode.contains(executableNode)) {
+ _executableNode.removeAll(executableNode);
+ if (executableNode->asQObject())
+ executableNode->asQObject()->setParent(0);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlSequenceNode::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlSequenceNode::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlSequenceNode::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlSequenceNode::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlSequenceNode::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlSequenceNode::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
-
-void QUmlSequenceNode::setActivity(QUmlActivity *activity)
-{
- UmlStructuredActivityNode::setActivity(activity);
-}
-
-void QUmlSequenceNode::addEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::addEdge(edge);
-}
-
-void QUmlSequenceNode::removeEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::removeEdge(edge);
-}
-
-void QUmlSequenceNode::setMustIsolate(bool mustIsolate)
-{
- UmlStructuredActivityNode::setMustIsolate(mustIsolate);
-}
-
-void QUmlSequenceNode::addStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::addStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlSequenceNode::removeStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::removeStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlSequenceNode::addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- UmlStructuredActivityNode::addStructuredNodeOutput(structuredNodeOutput);
-}
-
-void QUmlSequenceNode::removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- UmlStructuredActivityNode::removeStructuredNodeOutput(structuredNodeOutput);
-}
-
-void QUmlSequenceNode::addVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::addVariable(variable);
-}
-
-void QUmlSequenceNode::removeVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::removeVariable(variable);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [SequenceNode]
-
-void QUmlSequenceNode::addExecutableNode(UmlExecutableNode *executableNode)
-{
- UmlSequenceNode::addExecutableNode(executableNode);
-}
-
-void QUmlSequenceNode::removeExecutableNode(UmlExecutableNode *executableNode)
-{
- UmlSequenceNode::removeExecutableNode(executableNode);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlsequencenode.h b/src/uml/qumlsequencenode.h
index 04ad6087..0381e539 100644
--- a/src/uml/qumlsequencenode.h
+++ b/src/uml/qumlsequencenode.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlsequencenode_p.h"
+#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,257 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExceptionHandler;
class QUmlExecutableNode;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-class Q_UML_EXPORT QUmlSequenceNode : public QObject, public UmlSequenceNode
+class Q_UML_EXPORT QUmlSequenceNode : public QUmlStructuredActivityNode
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [StructuredActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(bool mustIsolate READ mustIsolate)
- Q_PROPERTY(QSet<QUmlInputPin *> structuredNodeInput READ structuredNodeInput)
- Q_PROPERTY(QSet<QUmlOutputPin *> structuredNodeOutput READ structuredNodeOutput)
- Q_PROPERTY(QSet<QUmlVariable *> variable READ variable)
-
- // Properties [SequenceNode]
- Q_PROPERTY(QList<QUmlExecutableNode *> executableNode READ executableNode)
-
public:
- Q_INVOKABLE explicit QUmlSequenceNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [StructuredActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE bool mustIsolate() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> structuredNodeInput() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> structuredNodeOutput() const;
- Q_INVOKABLE const QSet<QUmlVariable *> variable() const;
-
- // Owned attributes [SequenceNode]
- Q_INVOKABLE const QList<QUmlExecutableNode *> executableNode() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ActivityGroup]
+ explicit QUmlSequenceNode(bool createQObject = true);
+ virtual ~QUmlSequenceNode();
- // Slots for owned attributes [StructuredActivityNode]
- void setActivity(QUmlActivity *activity);
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
- void setMustIsolate(bool mustIsolate);
- void addStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void removeStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
+ // Owned attributes
+ const QList<QUmlExecutableNode *> executableNode() const;
+ void addExecutableNode(QUmlExecutableNode *executableNode);
+ void removeExecutableNode(QUmlExecutableNode *executableNode);
- // Slots for owned attributes [SequenceNode]
- void addExecutableNode(UmlExecutableNode *executableNode);
- void removeExecutableNode(UmlExecutableNode *executableNode);
+protected:
+ QList<QUmlExecutableNode *> _executableNode;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSequenceNode *)
-Q_DECLARE_METATYPE(QList<QUmlSequenceNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSequenceNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSequenceNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlsignal.cpp b/src/uml/qumlsignal.cpp
index ad930506..359bd462 100644
--- a/src/uml/qumlsignal.cpp
+++ b/src/uml/qumlsignal.cpp
@@ -40,842 +40,72 @@
****************************************************************************/
#include "qumlsignal.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
+#include "private/qumlsignalobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlProperty>
/*!
- \class UmlSignal
+ \class QUmlSignal
\inmodule QtUml
\brief 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.
*/
-
-QUmlSignal::QUmlSignal(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSignal::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSignal::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlSignal::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlSignal::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlSignal::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlSignal::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlSignal::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlSignal::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlSignal::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlSignal::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlSignal::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlSignal::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlSignal::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlSignal::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlSignal::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlSignal::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlSignal::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlSignal::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlSignal::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlSignal::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlSignal::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlSignal::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlSignal::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlSignal::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlSignal::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlSignal::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlSignal::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSignal::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlSignal::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlSignal::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlSignal::ownedUseCase() const
+QUmlSignal::QUmlSignal(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
+ if (createQObject)
+ _qObject = new QUmlSignalObject(this);
}
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlSignal::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlSignal::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlSignal::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlSignal::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlSignal::templateParameter() const
+QUmlSignal::~QUmlSignal()
{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlSignal::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [Signal]
+// OWNED ATTRIBUTES
/*!
The attributes owned by the signal.
*/
-const QList<QUmlProperty *> QUmlSignal::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSignal::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSignal::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlSignal::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlSignal::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSignal::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlSignal::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlSignal::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlSignal::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlSignal::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlSignal::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlSignal::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlSignal::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlSignal::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlSignal::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlSignal::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlSignal::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlSignal::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSignal::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlSignal::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
-
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlSignal::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlSignal::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlSignal::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
-
-/*!
- 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.
- */
-bool QUmlSignal::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
-
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlSignal::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlSignal::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlSignal::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlSignal::addClientDependency(UmlDependency *clientDependency)
+const QList<QUmlProperty *>
+QUmlSignal::ownedAttribute() const
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlSignal::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlSignal::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlSignal::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlSignal::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlSignal::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlSignal::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlSignal::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlSignal::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlSignal::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlSignal::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlSignal::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlSignal::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlSignal::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlSignal::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlSignal::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlSignal::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlSignal::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlSignal::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlSignal::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlSignal::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlSignal::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
+ // This is a read-write association end
-void QUmlSignal::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
+ return _ownedAttribute;
}
-void QUmlSignal::setFinalSpecialization(bool isFinalSpecialization)
+void QUmlSignal::addOwnedAttribute(QUmlProperty *ownedAttribute)
{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
+ // This is a read-write association end
-void QUmlSignal::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlSignal::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
+ if (!_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.append(ownedAttribute);
+ if (ownedAttribute->asQObject() && this->asQObject())
+ QObject::connect(ownedAttribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedAttribute(QObject *)));
+ ownedAttribute->asQObject()->setParent(this->asQObject());
-void QUmlSignal::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
+ // Adjust subsetted properties
+ addOwnedMember(ownedAttribute);
+ addAttribute(ownedAttribute);
+ }
}
-void QUmlSignal::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
+void QUmlSignal::removeOwnedAttribute(QUmlProperty *ownedAttribute)
{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
+ // This is a read-write association end
-void QUmlSignal::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
+ if (_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.removeAll(ownedAttribute);
+ if (ownedAttribute->asQObject())
+ ownedAttribute->asQObject()->setParent(0);
-void QUmlSignal::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
+ // Adjust subsetted properties
+ removeOwnedMember(ownedAttribute);
+ removeAttribute(ownedAttribute);
+ }
}
-void QUmlSignal::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlSignal::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlSignal::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlSignal::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlSignal::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlSignal::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlSignal::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Signal]
-
-void QUmlSignal::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlSignal::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlSignal::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlSignal::removeOwnedAttribute(ownedAttribute);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlsignal.h b/src/uml/qumlsignal.h
index 2edc6990..48ee5e4f 100644
--- a/src/uml/qumlsignal.h
+++ b/src/uml/qumlsignal.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlsignal_p.h"
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,266 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlSignal : public QObject, public UmlSignal
+class Q_UML_EXPORT QUmlSignal : public QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [Signal]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
-
public:
- Q_INVOKABLE explicit QUmlSignal(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [Signal]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ explicit QUmlSignal(bool createQObject = true);
+ virtual ~QUmlSignal();
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
+ // Owned attributes
+ const QList<QUmlProperty *> ownedAttribute() const;
+ void addOwnedAttribute(QUmlProperty *ownedAttribute);
+ void removeOwnedAttribute(QUmlProperty *ownedAttribute);
- // Slots for owned attributes [Signal]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
+protected:
+ QList<QUmlProperty *> _ownedAttribute;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSignal *)
-Q_DECLARE_METATYPE(QList<QUmlSignal *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSignal *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSignal) *)
QT_END_HEADER
diff --git a/src/uml/qumlsignalevent.cpp b/src/uml/qumlsignalevent.cpp
index a298fb08..99e8063b 100644
--- a/src/uml/qumlsignalevent.cpp
+++ b/src/uml/qumlsignalevent.cpp
@@ -40,274 +40,53 @@
****************************************************************************/
#include "qumlsignalevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlSignal>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumlsignaleventobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlSignal>
/*!
- \class UmlSignalEvent
+ \class QUmlSignalEvent
\inmodule QtUml
\brief A signal event represents the receipt of an asynchronous signal instance. A signal event may, for example, cause a state machine to trigger a transition.
*/
-
-QUmlSignalEvent::QUmlSignalEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSignalEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSignalEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlSignalEvent::owner() const
+QUmlSignalEvent::QUmlSignalEvent(bool createQObject) :
+ _signal(0)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlSignalEventObject(this);
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlSignalEvent::owningTemplateParameter() const
+QUmlSignalEvent::~QUmlSignalEvent()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlSignalEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlSignalEvent::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlSignalEvent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlSignalEvent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlSignalEvent::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlSignalEvent::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlSignalEvent::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [SignalEvent]
+// OWNED ATTRIBUTES
/*!
The specific signal that is associated with this event.
*/
-QUmlSignal *QUmlSignalEvent::signal() const
+QUmlSignal *
+QUmlSignalEvent::signal() const
{
- return reinterpret_cast<QUmlSignal *>(_signal);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSignalEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _signal;
}
-/*!
- 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.
- */
-bool QUmlSignalEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlSignalEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlSignalEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlSignalEvent::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlSignalEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlSignalEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlSignalEvent::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlSignalEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlSignalEvent::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlSignalEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlSignalEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlSignalEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlSignalEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlSignalEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlSignalEvent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlSignalEvent::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [SignalEvent]
-
void QUmlSignalEvent::setSignal(QUmlSignal *signal)
{
- UmlSignalEvent::setSignal(signal);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_signal != signal) {
+ _signal = signal;
+ if (signal->asQObject() && this->asQObject())
+ QObject::connect(signal->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignal()));
+ }
+}
diff --git a/src/uml/qumlsignalevent.h b/src/uml/qumlsignalevent.h
index c701e28f..8de77b3c 100644
--- a/src/uml/qumlsignalevent.h
+++ b/src/uml/qumlsignalevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlsignalevent_p.h"
+#include <QtUml/QUmlMessageEvent>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,110 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
class QUmlSignal;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlSignalEvent : public QObject, public UmlSignalEvent
+class Q_UML_EXPORT QUmlSignalEvent : public QUmlMessageEvent
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [SignalEvent]
- Q_PROPERTY(QUmlSignal * signal READ signal)
-
public:
- Q_INVOKABLE explicit QUmlSignalEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlSignalEvent(bool createQObject = true);
+ virtual ~QUmlSignalEvent();
- // Owned attributes [SignalEvent]
- Q_INVOKABLE QUmlSignal *signal() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [SignalEvent]
+ // Owned attributes
+ QUmlSignal *signal() const;
void setSignal(QUmlSignal *signal);
+
+protected:
+ QUmlSignal *_signal;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSignalEvent *)
-Q_DECLARE_METATYPE(QList<QUmlSignalEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSignalEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSignalEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumlslot.cpp b/src/uml/qumlslot.cpp
index 6cb2164d..16fd9111 100644
--- a/src/uml/qumlslot.cpp
+++ b/src/uml/qumlslot.cpp
@@ -40,133 +40,123 @@
****************************************************************************/
#include "qumlslot.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumlslotobject_p.h"
+
#include <QtUml/QUmlInstanceSpecification>
#include <QtUml/QUmlStructuralFeature>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlSlot
+ \class QUmlSlot
\inmodule QtUml
\brief A slot specifies that an entity modeled by an instance specification has a value or values for a specific structural feature.
*/
-
-QUmlSlot::QUmlSlot(QObject *parent) :
- QObject(parent)
+QUmlSlot::QUmlSlot(bool createQObject) :
+ _definingFeature(0),
+ _owningInstance(0)
{
+ if (createQObject)
+ _qObject = new QUmlSlotObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSlot::ownedComment() const
+QUmlSlot::~QUmlSlot()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSlot::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The structural feature that specifies the values that may be held by the slot.
*/
-QUmlElement *QUmlSlot::owner() const
+QUmlStructuralFeature *
+QUmlSlot::definingFeature() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Slot]
+ return _definingFeature;
+}
-/*!
- The structural feature that specifies the values that may be held by the slot.
- */
-QUmlStructuralFeature *QUmlSlot::definingFeature() const
+void QUmlSlot::setDefiningFeature(QUmlStructuralFeature *definingFeature)
{
- return reinterpret_cast<QUmlStructuralFeature *>(_definingFeature);
+ // This is a read-write association end
+
+ if (_definingFeature != definingFeature) {
+ _definingFeature = definingFeature;
+ if (definingFeature->asQObject() && this->asQObject())
+ QObject::connect(definingFeature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDefiningFeature()));
+ }
}
/*!
The instance specification that owns this slot.
*/
-QUmlInstanceSpecification *QUmlSlot::owningInstance() const
+QUmlInstanceSpecification *
+QUmlSlot::owningInstance() const
{
- return reinterpret_cast<QUmlInstanceSpecification *>(_owningInstance);
+ // This is a read-write association end
+
+ return _owningInstance;
}
-/*!
- The value or values corresponding to the defining feature for the owning instance specification.
- */
-const QList<QUmlValueSpecification *> QUmlSlot::value() const
+void QUmlSlot::setOwningInstance(QUmlInstanceSpecification *owningInstance)
{
- return *(reinterpret_cast<const QList<QUmlValueSpecification *> *>(&_value));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_owningInstance != owningInstance) {
+ // Adjust subsetted properties
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSlot::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ _owningInstance = owningInstance;
+ if (owningInstance->asQObject() && this->asQObject())
+ QObject::connect(owningInstance->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwningInstance()));
+
+ // Adjust subsetted properties
+ setOwner(owningInstance);
+ }
}
/*!
- 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.
+ The value or values corresponding to the defining feature for the owning instance specification.
*/
-bool QUmlSlot::mustBeOwned() const
+const QList<QUmlValueSpecification *>
+QUmlSlot::value() const
{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlSlot::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _value;
}
-void QUmlSlot::removeOwnedComment(UmlComment *ownedComment)
+void QUmlSlot::addValue(QUmlValueSpecification *value)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Slot]
+ if (!_value.contains(value)) {
+ _value.append(value);
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeValue(QObject *)));
+ value->asQObject()->setParent(this->asQObject());
-void QUmlSlot::setDefiningFeature(QUmlStructuralFeature *definingFeature)
-{
- UmlSlot::setDefiningFeature(definingFeature);
+ // Adjust subsetted properties
+ addOwnedElement(value);
+ }
}
-void QUmlSlot::setOwningInstance(QUmlInstanceSpecification *owningInstance)
+void QUmlSlot::removeValue(QUmlValueSpecification *value)
{
- UmlSlot::setOwningInstance(owningInstance);
-}
+ // This is a read-write association end
-void QUmlSlot::addValue(UmlValueSpecification *value)
-{
- UmlSlot::addValue(value);
-}
+ if (_value.contains(value)) {
+ _value.removeAll(value);
+ if (value->asQObject())
+ value->asQObject()->setParent(0);
-void QUmlSlot::removeValue(UmlValueSpecification *value)
-{
- UmlSlot::removeValue(value);
+ // Adjust subsetted properties
+ removeOwnedElement(value);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlslot.h b/src/uml/qumlslot.h
index 1dc07fb6..450510f0 100644
--- a/src/uml/qumlslot.h
+++ b/src/uml/qumlslot.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlslot_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,61 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlInstanceSpecification;
class QUmlStructuralFeature;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlSlot : public QObject, public UmlSlot
+class Q_UML_EXPORT QUmlSlot : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Slot]
- Q_PROPERTY(QUmlStructuralFeature * definingFeature READ definingFeature)
- Q_PROPERTY(QUmlInstanceSpecification * owningInstance READ owningInstance)
- Q_PROPERTY(QList<QUmlValueSpecification *> value READ value)
-
public:
- Q_INVOKABLE explicit QUmlSlot(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Slot]
- Q_INVOKABLE QUmlStructuralFeature *definingFeature() const;
- Q_INVOKABLE QUmlInstanceSpecification *owningInstance() const;
- Q_INVOKABLE const QList<QUmlValueSpecification *> value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+ explicit QUmlSlot(bool createQObject = true);
+ virtual ~QUmlSlot();
- // Slots for owned attributes [Slot]
+ // Owned attributes
+ QUmlStructuralFeature *definingFeature() const;
void setDefiningFeature(QUmlStructuralFeature *definingFeature);
+ QUmlInstanceSpecification *owningInstance() const;
void setOwningInstance(QUmlInstanceSpecification *owningInstance);
- void addValue(UmlValueSpecification *value);
- void removeValue(UmlValueSpecification *value);
+ const QList<QUmlValueSpecification *> value() const;
+ void addValue(QUmlValueSpecification *value);
+ void removeValue(QUmlValueSpecification *value);
+
+protected:
+ QUmlStructuralFeature *_definingFeature;
+ QUmlInstanceSpecification *_owningInstance;
+ QList<QUmlValueSpecification *> _value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSlot *)
-Q_DECLARE_METATYPE(QList<QUmlSlot *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSlot *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSlot) *)
QT_END_HEADER
diff --git a/src/uml/qumlstartclassifierbehavioraction.cpp b/src/uml/qumlstartclassifierbehavioraction.cpp
index a1368262..233c3522 100644
--- a/src/uml/qumlstartclassifierbehavioraction.cpp
+++ b/src/uml/qumlstartclassifierbehavioraction.cpp
@@ -40,512 +40,62 @@
****************************************************************************/
#include "qumlstartclassifierbehavioraction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlstartclassifierbehavioractionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlStartClassifierBehaviorAction
+ \class QUmlStartClassifierBehaviorAction
\inmodule QtUml
\brief A start classifier behavior action is an action that starts the classifier behavior of the input.
*/
-
-QUmlStartClassifierBehaviorAction::QUmlStartClassifierBehaviorAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStartClassifierBehaviorAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStartClassifierBehaviorAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStartClassifierBehaviorAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStartClassifierBehaviorAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStartClassifierBehaviorAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStartClassifierBehaviorAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStartClassifierBehaviorAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStartClassifierBehaviorAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlStartClassifierBehaviorAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStartClassifierBehaviorAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStartClassifierBehaviorAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStartClassifierBehaviorAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlStartClassifierBehaviorAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlStartClassifierBehaviorAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlStartClassifierBehaviorAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlStartClassifierBehaviorAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlStartClassifierBehaviorAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlStartClassifierBehaviorAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlStartClassifierBehaviorAction::outgoing() const
+QUmlStartClassifierBehaviorAction::QUmlStartClassifierBehaviorAction(bool createQObject) :
+ _object(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (createQObject)
+ _qObject = new QUmlStartClassifierBehaviorActionObject(this);
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlStartClassifierBehaviorAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlStartClassifierBehaviorAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlStartClassifierBehaviorAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlStartClassifierBehaviorAction::input() const
+QUmlStartClassifierBehaviorAction::~QUmlStartClassifierBehaviorAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlStartClassifierBehaviorAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlStartClassifierBehaviorAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlStartClassifierBehaviorAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlStartClassifierBehaviorAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [StartClassifierBehaviorAction]
+// OWNED ATTRIBUTES
/*!
Holds the object on which to start the owned behavior.
*/
-QUmlInputPin *QUmlStartClassifierBehaviorAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStartClassifierBehaviorAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStartClassifierBehaviorAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStartClassifierBehaviorAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStartClassifierBehaviorAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStartClassifierBehaviorAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStartClassifierBehaviorAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlStartClassifierBehaviorAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlStartClassifierBehaviorAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStartClassifierBehaviorAction::addOwnedComment(UmlComment *ownedComment)
+QUmlInputPin *
+QUmlStartClassifierBehaviorAction::object() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlStartClassifierBehaviorAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ return _object;
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStartClassifierBehaviorAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStartClassifierBehaviorAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStartClassifierBehaviorAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStartClassifierBehaviorAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlStartClassifierBehaviorAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStartClassifierBehaviorAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlStartClassifierBehaviorAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlStartClassifierBehaviorAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStartClassifierBehaviorAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStartClassifierBehaviorAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlStartClassifierBehaviorAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlStartClassifierBehaviorAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlStartClassifierBehaviorAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlStartClassifierBehaviorAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlStartClassifierBehaviorAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlStartClassifierBehaviorAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlStartClassifierBehaviorAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlStartClassifierBehaviorAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlStartClassifierBehaviorAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlStartClassifierBehaviorAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlStartClassifierBehaviorAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlStartClassifierBehaviorAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlStartClassifierBehaviorAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlStartClassifierBehaviorAction::addLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlStartClassifierBehaviorAction::setObject(QUmlInputPin *object)
{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlStartClassifierBehaviorAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// SLOTS FOR OWNED ATTRIBUTES [StartClassifierBehaviorAction]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-void QUmlStartClassifierBehaviorAction::setObject(QUmlInputPin *object)
-{
- UmlStartClassifierBehaviorAction::setObject(object);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstartclassifierbehavioraction.h b/src/uml/qumlstartclassifierbehavioraction.h
index 65f500bd..57590e32 100644
--- a/src/uml/qumlstartclassifierbehavioraction.h
+++ b/src/uml/qumlstartclassifierbehavioraction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstartclassifierbehavioraction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,182 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlStartClassifierBehaviorAction : public QObject, public UmlStartClassifierBehaviorAction
+class Q_UML_EXPORT QUmlStartClassifierBehaviorAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StartClassifierBehaviorAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
-
public:
- Q_INVOKABLE explicit QUmlStartClassifierBehaviorAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlStartClassifierBehaviorAction(bool createQObject = true);
+ virtual ~QUmlStartClassifierBehaviorAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [StartClassifierBehaviorAction]
- Q_INVOKABLE QUmlInputPin *object() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StartClassifierBehaviorAction]
+ // Owned attributes
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+
+protected:
+ QUmlInputPin *_object;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStartClassifierBehaviorAction *)
-Q_DECLARE_METATYPE(QList<QUmlStartClassifierBehaviorAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStartClassifierBehaviorAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStartClassifierBehaviorAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlstartobjectbehavioraction.cpp b/src/uml/qumlstartobjectbehavioraction.cpp
index c0849484..8d5fac3b 100644
--- a/src/uml/qumlstartobjectbehavioraction.cpp
+++ b/src/uml/qumlstartobjectbehavioraction.cpp
@@ -40,583 +40,62 @@
****************************************************************************/
#include "qumlstartobjectbehavioraction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
+#include "private/qumlstartobjectbehavioractionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlInputPin>
/*!
- \class UmlStartObjectBehaviorAction
+ \class QUmlStartObjectBehaviorAction
\inmodule QtUml
\brief StartObjectBehaviorAction is an action that starts the execution either of a directly instantiated behavior or of the classifier behavior of an object. Argument values may be supplied for the input parameters of the behavior. If the behavior is invoked synchronously, then output values may be obtained for output parameters.
*/
-
-QUmlStartObjectBehaviorAction::QUmlStartObjectBehaviorAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStartObjectBehaviorAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStartObjectBehaviorAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStartObjectBehaviorAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStartObjectBehaviorAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStartObjectBehaviorAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStartObjectBehaviorAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStartObjectBehaviorAction::namespace_() const
+QUmlStartObjectBehaviorAction::QUmlStartObjectBehaviorAction(bool createQObject) :
+ _object(0)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (createQObject)
+ _qObject = new QUmlStartObjectBehaviorActionObject(this);
}
-/*!
- 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.
- */
-QString QUmlStartObjectBehaviorAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlStartObjectBehaviorAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStartObjectBehaviorAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStartObjectBehaviorAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStartObjectBehaviorAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlStartObjectBehaviorAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlStartObjectBehaviorAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlStartObjectBehaviorAction::inInterruptibleRegion() const
+QUmlStartObjectBehaviorAction::~QUmlStartObjectBehaviorAction()
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlStartObjectBehaviorAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlStartObjectBehaviorAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlStartObjectBehaviorAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlStartObjectBehaviorAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlStartObjectBehaviorAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlStartObjectBehaviorAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlStartObjectBehaviorAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlStartObjectBehaviorAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlStartObjectBehaviorAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlStartObjectBehaviorAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlStartObjectBehaviorAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlStartObjectBehaviorAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [InvocationAction]
-
-/*!
- Specification of the ordered set of argument values that appears during execution.
- */
-const QList<QUmlInputPin *> QUmlStartObjectBehaviorAction::argument() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_argument));
-}
-
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-QUmlPort *QUmlStartObjectBehaviorAction::onPort() const
-{
- return reinterpret_cast<QUmlPort *>(_onPort);
-}
-
-// OWNED ATTRIBUTES [CallAction]
-
-/*!
- If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.
- */
-bool QUmlStartObjectBehaviorAction::isSynchronous() const
-{
- return _isSynchronous;
-}
-
-/*!
- A list of output pins where the results of performing the invocation are placed.
- */
-const QList<QUmlOutputPin *> QUmlStartObjectBehaviorAction::result() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_result));
-}
-
-// OWNED ATTRIBUTES [StartObjectBehaviorAction]
+// OWNED ATTRIBUTES
/*!
Holds the object which is either a behavior to be started or has a classifier behavior to be started.
*/
-QUmlInputPin *QUmlStartObjectBehaviorAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStartObjectBehaviorAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStartObjectBehaviorAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStartObjectBehaviorAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStartObjectBehaviorAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStartObjectBehaviorAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStartObjectBehaviorAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlStartObjectBehaviorAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlStartObjectBehaviorAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStartObjectBehaviorAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStartObjectBehaviorAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStartObjectBehaviorAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStartObjectBehaviorAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStartObjectBehaviorAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStartObjectBehaviorAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlStartObjectBehaviorAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStartObjectBehaviorAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlStartObjectBehaviorAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlStartObjectBehaviorAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStartObjectBehaviorAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStartObjectBehaviorAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlStartObjectBehaviorAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlStartObjectBehaviorAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlStartObjectBehaviorAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlStartObjectBehaviorAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlStartObjectBehaviorAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlStartObjectBehaviorAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlStartObjectBehaviorAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlStartObjectBehaviorAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlStartObjectBehaviorAction::addHandler(UmlExceptionHandler *handler)
+QUmlInputPin *
+QUmlStartObjectBehaviorAction::object() const
{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlStartObjectBehaviorAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlStartObjectBehaviorAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlStartObjectBehaviorAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlStartObjectBehaviorAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlStartObjectBehaviorAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-void QUmlStartObjectBehaviorAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
+ return _object;
}
-// SLOTS FOR OWNED ATTRIBUTES [InvocationAction]
-
-void QUmlStartObjectBehaviorAction::addArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::addArgument(argument);
-}
-
-void QUmlStartObjectBehaviorAction::removeArgument(UmlInputPin *argument)
-{
- UmlInvocationAction::removeArgument(argument);
-}
-
-void QUmlStartObjectBehaviorAction::setOnPort(QUmlPort *onPort)
-{
- UmlInvocationAction::setOnPort(onPort);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [CallAction]
-
-void QUmlStartObjectBehaviorAction::setSynchronous(bool isSynchronous)
-{
- UmlCallAction::setSynchronous(isSynchronous);
-}
-
-void QUmlStartObjectBehaviorAction::addResult(UmlOutputPin *result)
+void QUmlStartObjectBehaviorAction::setObject(QUmlInputPin *object)
{
- UmlCallAction::addResult(result);
-}
+ // This is a read-write association end
-void QUmlStartObjectBehaviorAction::removeResult(UmlOutputPin *result)
-{
- UmlCallAction::removeResult(result);
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// SLOTS FOR OWNED ATTRIBUTES [StartObjectBehaviorAction]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-void QUmlStartObjectBehaviorAction::setObject(QUmlInputPin *object)
-{
- UmlStartObjectBehaviorAction::setObject(object);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstartobjectbehavioraction.h b/src/uml/qumlstartobjectbehavioraction.h
index 42e1c200..766fdac3 100644
--- a/src/uml/qumlstartobjectbehavioraction.h
+++ b/src/uml/qumlstartobjectbehavioraction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstartobjectbehavioraction_p.h"
+#include <QtUml/QUmlCallAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,209 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPort;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlStartObjectBehaviorAction : public QObject, public UmlStartObjectBehaviorAction
+class Q_UML_EXPORT QUmlStartObjectBehaviorAction : public QUmlCallAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [InvocationAction]
- Q_PROPERTY(QList<QUmlInputPin *> argument READ argument)
- Q_PROPERTY(QUmlPort * onPort READ onPort)
-
- // Properties [CallAction]
- Q_PROPERTY(bool isSynchronous READ isSynchronous)
- Q_PROPERTY(QList<QUmlOutputPin *> result READ result)
-
- // Properties [StartObjectBehaviorAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
-
public:
- Q_INVOKABLE explicit QUmlStartObjectBehaviorAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
+ explicit QUmlStartObjectBehaviorAction(bool createQObject = true);
+ virtual ~QUmlStartObjectBehaviorAction();
- // Owned attributes [InvocationAction]
- Q_INVOKABLE const QList<QUmlInputPin *> argument() const;
- Q_INVOKABLE QUmlPort *onPort() const;
-
- // Owned attributes [CallAction]
- Q_INVOKABLE bool isSynchronous() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> result() const;
-
- // Owned attributes [StartObjectBehaviorAction]
- Q_INVOKABLE QUmlInputPin *object() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [InvocationAction]
- void addArgument(UmlInputPin *argument);
- void removeArgument(UmlInputPin *argument);
- void setOnPort(QUmlPort *onPort);
-
- // Slots for owned attributes [CallAction]
- void setSynchronous(bool isSynchronous);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
-
- // Slots for owned attributes [StartObjectBehaviorAction]
+ // Owned attributes
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+
+protected:
+ QUmlInputPin *_object;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStartObjectBehaviorAction *)
-Q_DECLARE_METATYPE(QList<QUmlStartObjectBehaviorAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStartObjectBehaviorAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStartObjectBehaviorAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlstate.cpp b/src/uml/qumlstate.cpp
index c4920383..43991fc0 100644
--- a/src/uml/qumlstate.cpp
+++ b/src/uml/qumlstate.cpp
@@ -40,626 +40,568 @@
****************************************************************************/
#include "qumlstate.h"
+#include "private/qumlstateobject_p.h"
+
#include <QtUml/QUmlBehavior>
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConnectionPointReference>
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
#include <QtUml/QUmlPseudostate>
-#include <QtUml/QUmlRedefinableElement>
#include <QtUml/QUmlRegion>
#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTransition>
#include <QtUml/QUmlTrigger>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlState
+ \class QUmlState
\inmodule QtUml
\brief A state models a situation during which some (usually implicit) invariant condition holds.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.
*/
-
-QUmlState::QUmlState(QObject *parent) :
- QObject(parent)
+QUmlState::QUmlState(bool createQObject) :
+ _doActivity(0),
+ _entry(0),
+ _exit(0),
+ _redefinedState(0),
+ _stateInvariant(0),
+ _submachine(0)
{
+ if (createQObject)
+ _qObject = new QUmlStateObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlState::ownedComment() const
+QUmlState::~QUmlState()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ 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.
*/
-const QSet<QUmlElement *> QUmlState::ownedElement() const
+const QSet<QUmlConnectionPointReference *>
+QUmlState::connection() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _connection;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlState::owner() const
+void QUmlState::addConnection(QUmlConnectionPointReference *connection)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
+ if (!_connection.contains(connection)) {
+ _connection.insert(connection);
+ if (connection->asQObject() && this->asQObject())
+ QObject::connect(connection->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConnection(QObject *)));
+ connection->asQObject()->setParent(this->asQObject());
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlState::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
+ // Adjust subsetted properties
+ addOwnedMember(connection);
-/*!
- The name of the NamedElement.
- */
-QString QUmlState::name() const
-{
- return _name;
+ // Adjust opposite properties
+ if (connection) {
+ connection->setState(this);
+ }
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlState::nameExpression() const
+void QUmlState::removeConnection(QUmlConnectionPointReference *connection)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ // This is a read-write association end
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlState::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (_connection.contains(connection)) {
+ _connection.remove(connection);
+ if (connection->asQObject())
+ connection->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedMember(connection);
+
+ // Adjust opposite properties
+ if (connection) {
+ connection->setState(0);
+ }
+ }
}
/*!
- 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.
+ 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.
*/
-QString QUmlState::qualifiedName() const
+const QSet<QUmlPseudostate *>
+QUmlState::connectionPoint() const
{
- return UmlNamedElement::qualifiedName();
+ // This is a read-write association end
+
+ return _connectionPoint;
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlState::visibility() const
+void QUmlState::addConnectionPoint(QUmlPseudostate *connectionPoint)
{
- return _visibility;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Namespace]
+ if (!_connectionPoint.contains(connectionPoint)) {
+ _connectionPoint.insert(connectionPoint);
+ if (connectionPoint->asQObject() && this->asQObject())
+ QObject::connect(connectionPoint->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConnectionPoint(QObject *)));
+ connectionPoint->asQObject()->setParent(this->asQObject());
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlState::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
+ // Adjust subsetted properties
+ addOwnedMember(connectionPoint);
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlState::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (connectionPoint) {
+ connectionPoint->setState(this);
+ }
+ }
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlState::member() const
+void QUmlState::removeConnectionPoint(QUmlPseudostate *connectionPoint)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
+ // This is a read-write association end
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlState::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ if (_connectionPoint.contains(connectionPoint)) {
+ _connectionPoint.remove(connectionPoint);
+ if (connectionPoint->asQObject())
+ connectionPoint->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedMember(connectionPoint);
+
+ // Adjust opposite properties
+ if (connectionPoint) {
+ connectionPoint->setState(0);
+ }
+ }
}
/*!
- Specifies a set of Constraints owned by this Namespace.
+ 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.
*/
-const QSet<QUmlConstraint *> QUmlState::ownedRule() const
+const QSet<QUmlTrigger *>
+QUmlState::deferrableTrigger() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ // This is a read-write association end
+
+ return _deferrableTrigger;
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlState::packageImport() const
+void QUmlState::addDeferrableTrigger(QUmlTrigger *deferrableTrigger)
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [RedefinableElement]
+ if (!_deferrableTrigger.contains(deferrableTrigger)) {
+ _deferrableTrigger.insert(deferrableTrigger);
+ if (deferrableTrigger->asQObject() && this->asQObject())
+ QObject::connect(deferrableTrigger->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeDeferrableTrigger(QObject *)));
+ deferrableTrigger->asQObject()->setParent(this->asQObject());
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlState::isLeaf() const
-{
- return _isLeaf;
+ // Adjust subsetted properties
+ addOwnedElement(deferrableTrigger);
+ }
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlState::redefinedElement() const
+void QUmlState::removeDeferrableTrigger(QUmlTrigger *deferrableTrigger)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-// OWNED ATTRIBUTES [Vertex]
+ // This is a read-write association end
-/*!
- The region that contains this vertex.
- */
-QUmlRegion *QUmlState::container() const
-{
- return reinterpret_cast<QUmlRegion *>(_container);
+ if (_deferrableTrigger.contains(deferrableTrigger)) {
+ _deferrableTrigger.remove(deferrableTrigger);
+ if (deferrableTrigger->asQObject())
+ deferrableTrigger->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedElement(deferrableTrigger);
+ }
}
/*!
- Specifies the transitions entering this vertex.
+ 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.
*/
-const QSet<QUmlTransition *> QUmlState::incoming() const
+QUmlBehavior *
+QUmlState::doActivity() const
{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::incoming())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
+ // This is a read-write association end
+
+ return _doActivity;
}
-/*!
- Specifies the transitions departing from this vertex.
- */
-const QSet<QUmlTransition *> QUmlState::outgoing() const
+void QUmlState::setDoActivity(QUmlBehavior *doActivity)
{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::outgoing())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [State]
+ if (_doActivity != doActivity) {
+ // Adjust subsetted properties
+ removeOwnedElement(_doActivity);
-/*!
- 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.
- */
-const QSet<QUmlConnectionPointReference *> QUmlState::connection() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectionPointReference *> *>(&_connection));
-}
+ _doActivity = doActivity;
+ if (doActivity->asQObject() && this->asQObject())
+ QObject::connect(doActivity->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDoActivity()));
+ doActivity->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-const QSet<QUmlPseudostate *> QUmlState::connectionPoint() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_connectionPoint));
+ // Adjust subsetted properties
+ if (doActivity) {
+ addOwnedElement(doActivity);
+ }
+ }
}
/*!
- 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.
+ 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.
*/
-const QSet<QUmlTrigger *> QUmlState::deferrableTrigger() const
+QUmlBehavior *
+QUmlState::entry() const
{
- return *(reinterpret_cast<const QSet<QUmlTrigger *> *>(&_deferrableTrigger));
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QUmlBehavior *QUmlState::doActivity() const
-{
- return reinterpret_cast<QUmlBehavior *>(_doActivity);
+ return _entry;
}
-/*!
- 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.
- */
-QUmlBehavior *QUmlState::entry() const
+void QUmlState::setEntry(QUmlBehavior *entry)
{
- return reinterpret_cast<QUmlBehavior *>(_entry);
+ // This is a read-write association end
+
+ if (_entry != entry) {
+ // Adjust subsetted properties
+ removeOwnedElement(_entry);
+
+ _entry = entry;
+ if (entry->asQObject() && this->asQObject())
+ QObject::connect(entry->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEntry()));
+ entry->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ if (entry) {
+ addOwnedElement(entry);
+ }
+ }
}
/*!
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.
*/
-QUmlBehavior *QUmlState::exit() const
+QUmlBehavior *
+QUmlState::exit() const
{
- return reinterpret_cast<QUmlBehavior *>(_exit);
-}
+ // This is a read-write association end
-/*!
- A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region.
- */
-bool QUmlState::isComposite() const
-{
- return UmlState::isComposite();
+ return _exit;
}
-/*!
- A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions.
- */
-bool QUmlState::isOrthogonal() const
+void QUmlState::setExit(QUmlBehavior *exit)
{
- return UmlState::isOrthogonal();
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlState::isSimple() const
-{
- return UmlState::isSimple();
-}
+ if (_exit != exit) {
+ // Adjust subsetted properties
+ removeOwnedElement(_exit);
-/*!
- A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine).
- */
-bool QUmlState::isSubmachineState() const
-{
- return UmlState::isSubmachineState();
-}
+ _exit = exit;
+ if (exit->asQObject() && this->asQObject())
+ QObject::connect(exit->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExit()));
+ exit->asQObject()->setParent(this->asQObject());
-/*!
- The state of which this state is a redefinition.
- */
-QUmlState *QUmlState::redefinedState() const
-{
- return reinterpret_cast<QUmlState *>(_redefinedState);
+ // Adjust subsetted properties
+ if (exit) {
+ addOwnedElement(exit);
+ }
+ }
}
/*!
- References the classifier in which context this element may be redefined.
+ A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region.
*/
-QUmlClassifier *QUmlState::redefinitionContext() const
+bool
+QUmlState::isComposite() const
{
- return reinterpret_cast<QUmlClassifier *>(UmlState::redefinitionContext());
-}
+ // This is a read-only derived property
-/*!
- The regions owned directly by the state.
- */
-const QSet<QUmlRegion *> QUmlState::region() const
-{
- return *(reinterpret_cast<const QSet<QUmlRegion *> *>(&_region));
+ qWarning("UmlState::isComposite(): to be implemented (this is a derived property)");
+
+ return bool();
}
-/*!
- 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.
- */
-QUmlConstraint *QUmlState::stateInvariant() const
+void QUmlState::setComposite(bool isComposite)
{
- return reinterpret_cast<QUmlConstraint *>(_stateInvariant);
+ // This is a read-only derived property
+
+ qWarning("UmlState::isComposite(): to be implemented (this is a derived property)");
+ Q_UNUSED(isComposite);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The state machine that is to be inserted in place of the (submachine) state.
+ A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions.
*/
-QUmlStateMachine *QUmlState::submachine() const
+bool
+QUmlState::isOrthogonal() const
{
- return reinterpret_cast<QUmlStateMachine *>(_submachine);
-}
+ // This is a read-only derived property
-// OPERATIONS [Element]
+ qWarning("UmlState::isOrthogonal(): to be implemented (this is a derived property)");
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlState::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return bool();
}
-/*!
- 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.
- */
-bool QUmlState::mustBeOwned() const
+void QUmlState::setOrthogonal(bool isOrthogonal)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-only derived property
-// OPERATIONS [NamedElement]
+ qWarning("UmlState::isOrthogonal(): to be implemented (this is a derived property)");
+ Q_UNUSED(isOrthogonal);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlState::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ 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.
*/
-QSet<QUmlPackage *> QUmlState::allOwningPackages() const
+bool
+QUmlState::isSimple() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // This is a read-only derived property
+
+ qWarning("UmlState::isSimple(): to be implemented (this is a derived property)");
+
+ return bool();
}
-/*!
- 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.
- */
-bool QUmlState::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlState::setSimple(bool isSimple)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // This is a read-only derived property
+
+ qWarning("UmlState::isSimple(): to be implemented (this is a derived property)");
+ Q_UNUSED(isSimple);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine).
*/
-QString QUmlState::separator() const
+bool
+QUmlState::isSubmachineState() const
{
- return UmlNamedElement::separator();
-}
+ // This is a read-only derived property
-// OPERATIONS [Namespace]
+ qWarning("UmlState::isSubmachineState(): to be implemented (this is a derived property)");
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlState::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return bool();
}
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlState::getNamesOfMember(QUmlNamedElement *element) const
+void QUmlState::setSubmachineState(bool isSubmachineState)
{
- return UmlNamespace::getNamesOfMember(element);
+ // This is a read-only derived property
+
+ qWarning("UmlState::isSubmachineState(): to be implemented (this is a derived property)");
+ Q_UNUSED(isSubmachineState);
+
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.
+ The state of which this state is a redefinition.
*/
-QSet<QUmlPackageableElement *> QUmlState::importMembers(QSet<QUmlPackageableElement *> imps) const
+QUmlState *
+QUmlState::redefinedState() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // This is a read-write association end
+
+ return _redefinedState;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlState::membersAreDistinguishable() const
+void QUmlState::setRedefinedState(QUmlState *redefinedState)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
-// OPERATIONS [Vertex]
-// OPERATIONS [State]
+ if (_redefinedState != redefinedState) {
+ // Adjust subsetted properties
+ removeRedefinedElement(_redefinedState);
-/*!
- The query containingStateMachine() returns the state machine that contains the state either directly or transitively.
- */
-QUmlStateMachine *QUmlState::containingStateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(UmlState::containingStateMachine());
-}
+ _redefinedState = redefinedState;
+ if (redefinedState->asQObject() && this->asQObject())
+ QObject::connect(redefinedState->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRedefinedState()));
-/*!
- 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.
- */
-bool QUmlState::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlState::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (redefinedState) {
+ addRedefinedElement(redefinedState);
+ }
+ }
}
/*!
- 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.
+ References the classifier in which context this element may be redefined.
*/
-bool QUmlState::isRedefinitionContextValid(QUmlState *redefined) const
+QUmlClassifier *
+QUmlState::redefinitionContext() const
{
- return UmlState::isRedefinitionContextValid(redefined);
-}
+ // This is a read-only derived association end
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ qWarning("UmlState::redefinitionContext(): to be implemented (this is a derived association end)");
-void QUmlState::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return 0;
}
-void QUmlState::removeOwnedComment(UmlComment *ownedComment)
+void QUmlState::setRedefinitionContext(QUmlClassifier *redefinitionContext)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-only derived association end
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ qWarning("UmlState::redefinitionContext(): to be implemented (this is a derived association end)");
+ Q_UNUSED(redefinitionContext);
-void QUmlState::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-void QUmlState::removeClientDependency(UmlDependency *clientDependency)
+/*!
+ The regions owned directly by the state.
+ */
+const QSet<QUmlRegion *>
+QUmlState::region() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlState::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _region;
}
-void QUmlState::setNameExpression(QUmlStringExpression *nameExpression)
+void QUmlState::addRegion(QUmlRegion *region)
{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ // This is a read-write association end
-void QUmlState::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
+ if (!_region.contains(region)) {
+ _region.insert(region);
+ if (region->asQObject() && this->asQObject())
+ QObject::connect(region->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRegion(QObject *)));
+ region->asQObject()->setParent(this->asQObject());
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
+ // Adjust subsetted properties
+ addOwnedMember(region);
-void QUmlState::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
+ // Adjust opposite properties
+ if (region) {
+ region->setState(this);
+ }
+ }
}
-void QUmlState::removeElementImport(UmlElementImport *elementImport)
+void QUmlState::removeRegion(QUmlRegion *region)
{
- UmlNamespace::removeElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlState::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
+ if (_region.contains(region)) {
+ _region.remove(region);
+ if (region->asQObject())
+ region->asQObject()->setParent(0);
-void QUmlState::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(region);
-void QUmlState::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
+ // Adjust opposite properties
+ if (region) {
+ region->setState(0);
+ }
+ }
}
-void QUmlState::removePackageImport(UmlPackageImport *packageImport)
+/*!
+ 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.
+ */
+QUmlConstraint *
+QUmlState::stateInvariant() const
{
- UmlNamespace::removePackageImport(packageImport);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlState::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return _stateInvariant;
}
-// SLOTS FOR OWNED ATTRIBUTES [Vertex]
-void QUmlState::setContainer(QUmlRegion *container)
+void QUmlState::setStateInvariant(QUmlConstraint *stateInvariant)
{
- UmlVertex::setContainer(container);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [State]
+ if (_stateInvariant != stateInvariant) {
+ // Adjust subsetted properties
+ removeOwnedRule(_stateInvariant);
-void QUmlState::addConnection(UmlConnectionPointReference *connection)
-{
- UmlState::addConnection(connection);
-}
+ _stateInvariant = stateInvariant;
+ if (stateInvariant->asQObject() && this->asQObject())
+ QObject::connect(stateInvariant->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setStateInvariant()));
+ stateInvariant->asQObject()->setParent(this->asQObject());
-void QUmlState::removeConnection(UmlConnectionPointReference *connection)
-{
- UmlState::removeConnection(connection);
+ // Adjust subsetted properties
+ if (stateInvariant) {
+ addOwnedRule(stateInvariant);
+ }
+ }
}
-void QUmlState::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlState::addConnectionPoint(connectionPoint);
-}
-
-void QUmlState::removeConnectionPoint(UmlPseudostate *connectionPoint)
+/*!
+ The state machine that is to be inserted in place of the (submachine) state.
+ */
+QUmlStateMachine *
+QUmlState::submachine() const
{
- UmlState::removeConnectionPoint(connectionPoint);
-}
+ // This is a read-write association end
-void QUmlState::addDeferrableTrigger(UmlTrigger *deferrableTrigger)
-{
- UmlState::addDeferrableTrigger(deferrableTrigger);
+ return _submachine;
}
-void QUmlState::removeDeferrableTrigger(UmlTrigger *deferrableTrigger)
+void QUmlState::setSubmachine(QUmlStateMachine *submachine)
{
- UmlState::removeDeferrableTrigger(deferrableTrigger);
-}
+ // This is a read-write association end
-void QUmlState::setDoActivity(QUmlBehavior *doActivity)
-{
- UmlState::setDoActivity(doActivity);
+ if (_submachine != submachine) {
+ _submachine = submachine;
+ if (submachine->asQObject() && this->asQObject())
+ QObject::connect(submachine->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSubmachine()));
+ }
}
-void QUmlState::setEntry(QUmlBehavior *entry)
-{
- UmlState::setEntry(entry);
-}
+// OPERATIONS
-void QUmlState::setExit(QUmlBehavior *exit)
+/*!
+ The query containingStateMachine() returns the state machine that contains the state either directly or transitively.
+ */
+QUmlStateMachine *QUmlState::containingStateMachine() const
{
- UmlState::setExit(exit);
-}
+ qWarning("UmlState::containingStateMachine(): to be implemented (operation)");
-void QUmlState::setRedefinedState(QUmlState *redefinedState)
-{
- UmlState::setRedefinedState(redefinedState);
+ return 0;
}
-void QUmlState::addRegion(UmlRegion *region)
+/*!
+ 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.
+ */
+bool QUmlState::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- UmlState::addRegion(region);
-}
+ qWarning("UmlState::isConsistentWith(): to be implemented (operation)");
-void QUmlState::removeRegion(UmlRegion *region)
-{
- UmlState::removeRegion(region);
+ Q_UNUSED(redefinee);
+ return bool ();
}
-void QUmlState::setStateInvariant(QUmlConstraint *stateInvariant)
+/*!
+ 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.
+ */
+bool QUmlState::isRedefinitionContextValid(QUmlState *redefined) const
{
- UmlState::setStateInvariant(stateInvariant);
-}
+ qWarning("UmlState::isRedefinitionContextValid(): to be implemented (operation)");
-void QUmlState::setSubmachine(QUmlStateMachine *submachine)
-{
- UmlState::setSubmachine(submachine);
+ Q_UNUSED(redefined);
+ return bool ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstate.h b/src/uml/qumlstate.h
index 31ecbb62..a63313ad 100644
--- a/src/uml/qumlstate.h
+++ b/src/uml/qumlstate.h
@@ -43,10 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstate_p.h"
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlVertex>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -56,200 +56,76 @@ QT_MODULE(QtUml)
class QUmlBehavior;
class QUmlClassifier;
-class QUmlComment;
class QUmlConnectionPointReference;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
class QUmlPseudostate;
-class QUmlRedefinableElement;
class QUmlRegion;
class QUmlStateMachine;
-class QUmlStringExpression;
-class QUmlTransition;
class QUmlTrigger;
-class Q_UML_EXPORT QUmlState : public QObject, public UmlState
+class Q_UML_EXPORT QUmlState : public QUmlNamespace, public QUmlRedefinableElement, public QUmlVertex
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
-
- // Properties [Vertex]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QSet<QUmlTransition *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlTransition *> outgoing READ outgoing)
-
- // Properties [State]
- Q_PROPERTY(QSet<QUmlConnectionPointReference *> connection READ connection)
- Q_PROPERTY(QSet<QUmlPseudostate *> connectionPoint READ connectionPoint)
- Q_PROPERTY(QSet<QUmlTrigger *> deferrableTrigger READ deferrableTrigger)
- Q_PROPERTY(QUmlBehavior * doActivity READ doActivity)
- Q_PROPERTY(QUmlBehavior * entry READ entry)
- Q_PROPERTY(QUmlBehavior * exit READ exit)
- Q_PROPERTY(bool isComposite READ isComposite)
- Q_PROPERTY(bool isOrthogonal READ isOrthogonal)
- Q_PROPERTY(bool isSimple READ isSimple)
- Q_PROPERTY(bool isSubmachineState READ isSubmachineState)
- Q_PROPERTY(QUmlState * redefinedState READ redefinedState)
- Q_PROPERTY(QUmlClassifier * redefinitionContext READ redefinitionContext)
- Q_PROPERTY(QSet<QUmlRegion *> region READ region)
- Q_PROPERTY(QUmlConstraint * stateInvariant READ stateInvariant)
- Q_PROPERTY(QUmlStateMachine * submachine READ submachine)
-
public:
- Q_INVOKABLE explicit QUmlState(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
-
- // Owned attributes [Vertex]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE const QSet<QUmlTransition *> incoming() const;
- Q_INVOKABLE const QSet<QUmlTransition *> outgoing() const;
-
- // Owned attributes [State]
- Q_INVOKABLE const QSet<QUmlConnectionPointReference *> connection() const;
- Q_INVOKABLE const QSet<QUmlPseudostate *> connectionPoint() const;
- Q_INVOKABLE const QSet<QUmlTrigger *> deferrableTrigger() const;
- Q_INVOKABLE QUmlBehavior *doActivity() const;
- Q_INVOKABLE QUmlBehavior *entry() const;
- Q_INVOKABLE QUmlBehavior *exit() const;
- Q_INVOKABLE bool isComposite() const;
- Q_INVOKABLE bool isOrthogonal() const;
- Q_INVOKABLE bool isSimple() const;
- Q_INVOKABLE bool isSubmachineState() const;
- Q_INVOKABLE QUmlState *redefinedState() const;
- Q_INVOKABLE QUmlClassifier *redefinitionContext() const;
- Q_INVOKABLE const QSet<QUmlRegion *> region() const;
- Q_INVOKABLE QUmlConstraint *stateInvariant() const;
- Q_INVOKABLE QUmlStateMachine *submachine() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [RedefinableElement]
-
- // Operations [Vertex]
-
- // Operations [State]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlState *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Vertex]
- void setContainer(QUmlRegion *container);
-
- // Slots for owned attributes [State]
- void addConnection(UmlConnectionPointReference *connection);
- void removeConnection(UmlConnectionPointReference *connection);
- void addConnectionPoint(UmlPseudostate *connectionPoint);
- void removeConnectionPoint(UmlPseudostate *connectionPoint);
- void addDeferrableTrigger(UmlTrigger *deferrableTrigger);
- void removeDeferrableTrigger(UmlTrigger *deferrableTrigger);
+ explicit QUmlState(bool createQObject = true);
+ virtual ~QUmlState();
+
+ // Owned attributes
+ const QSet<QUmlConnectionPointReference *> connection() const;
+ void addConnection(QUmlConnectionPointReference *connection);
+ void removeConnection(QUmlConnectionPointReference *connection);
+ const QSet<QUmlPseudostate *> connectionPoint() const;
+ void addConnectionPoint(QUmlPseudostate *connectionPoint);
+ void removeConnectionPoint(QUmlPseudostate *connectionPoint);
+ const QSet<QUmlTrigger *> deferrableTrigger() const;
+ void addDeferrableTrigger(QUmlTrigger *deferrableTrigger);
+ void removeDeferrableTrigger(QUmlTrigger *deferrableTrigger);
+ QUmlBehavior *doActivity() const;
void setDoActivity(QUmlBehavior *doActivity);
+ QUmlBehavior *entry() const;
void setEntry(QUmlBehavior *entry);
+ QUmlBehavior *exit() const;
void setExit(QUmlBehavior *exit);
+ bool isComposite() const;
+ Q_DECL_HIDDEN void setComposite(bool isComposite);
+ bool isOrthogonal() const;
+ Q_DECL_HIDDEN void setOrthogonal(bool isOrthogonal);
+ bool isSimple() const;
+ Q_DECL_HIDDEN void setSimple(bool isSimple);
+ bool isSubmachineState() const;
+ Q_DECL_HIDDEN void setSubmachineState(bool isSubmachineState);
+ QUmlState *redefinedState() const;
void setRedefinedState(QUmlState *redefinedState);
- void addRegion(UmlRegion *region);
- void removeRegion(UmlRegion *region);
+ QUmlClassifier *redefinitionContext() const;
+ Q_DECL_HIDDEN void setRedefinitionContext(QUmlClassifier *redefinitionContext);
+ const QSet<QUmlRegion *> region() const;
+ void addRegion(QUmlRegion *region);
+ void removeRegion(QUmlRegion *region);
+ QUmlConstraint *stateInvariant() const;
void setStateInvariant(QUmlConstraint *stateInvariant);
+ QUmlStateMachine *submachine() const;
void setSubmachine(QUmlStateMachine *submachine);
+
+ // Operations
+ QUmlStateMachine *containingStateMachine() const;
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+ bool isRedefinitionContextValid(QUmlState *redefined) const;
+
+protected:
+ QSet<QUmlConnectionPointReference *> _connection;
+ QSet<QUmlPseudostate *> _connectionPoint;
+ QSet<QUmlTrigger *> _deferrableTrigger;
+ QUmlBehavior *_doActivity;
+ QUmlBehavior *_entry;
+ QUmlBehavior *_exit;
+ QUmlState *_redefinedState;
+ QSet<QUmlRegion *> _region;
+ QUmlConstraint *_stateInvariant;
+ QUmlStateMachine *_submachine;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlState *)
-Q_DECLARE_METATYPE(QList<QUmlState *> *)
-Q_DECLARE_METATYPE(QSet<QUmlState *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlState) *)
QT_END_HEADER
diff --git a/src/uml/qumlstateinvariant.cpp b/src/uml/qumlstateinvariant.cpp
index fdc94a23..688ef6cc 100644
--- a/src/uml/qumlstateinvariant.cpp
+++ b/src/uml/qumlstateinvariant.cpp
@@ -40,287 +40,86 @@
****************************************************************************/
#include "qumlstateinvariant.h"
-#include <QtUml/QUmlComment>
+#include "private/qumlstateinvariantobject_p.h"
+
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlGeneralOrdering>
-#include <QtUml/QUmlInteraction>
-#include <QtUml/QUmlInteractionOperand>
#include <QtUml/QUmlLifeline>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlStateInvariant
+ \class QUmlStateInvariant
\inmodule QtUml
\brief A state invariant 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 state invariant is an interaction fragment and it is placed on a lifeline.
*/
-
-QUmlStateInvariant::QUmlStateInvariant(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStateInvariant::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStateInvariant::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStateInvariant::owner() const
+QUmlStateInvariant::QUmlStateInvariant(bool createQObject) :
+ _covered(0),
+ _invariant(0)
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (createQObject)
+ _qObject = new QUmlStateInvariantObject(this);
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStateInvariant::clientDependency() const
+QUmlStateInvariant::~QUmlStateInvariant()
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlStateInvariant::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStateInvariant::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStateInvariant::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStateInvariant::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlStateInvariant::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [InteractionFragment]
-
-/*!
- The Interaction enclosing this InteractionFragment.
- */
-QUmlInteraction *QUmlStateInvariant::enclosingInteraction() const
-{
- return reinterpret_cast<QUmlInteraction *>(_enclosingInteraction);
-}
-
-/*!
- The operand enclosing this InteractionFragment (they may nest recursively)
- */
-QUmlInteractionOperand *QUmlStateInvariant::enclosingOperand() const
-{
- return reinterpret_cast<QUmlInteractionOperand *>(_enclosingOperand);
-}
-
-/*!
- The general ordering relationships contained in this fragment.
- */
-const QSet<QUmlGeneralOrdering *> QUmlStateInvariant::generalOrdering() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralOrdering *> *>(&_generalOrdering));
-}
-
-// OWNED ATTRIBUTES [StateInvariant]
+// OWNED ATTRIBUTES
/*!
References the Lifeline on which the StateInvariant appears.
*/
-QUmlLifeline *QUmlStateInvariant::covered() const
+QUmlLifeline *
+QUmlStateInvariant::covered() const
{
- return reinterpret_cast<QUmlLifeline *>(_covered);
-}
+ // This is a read-write association end
-/*!
- A Constraint that should hold at runtime for this StateInvariant
- */
-QUmlConstraint *QUmlStateInvariant::invariant() const
-{
- return reinterpret_cast<QUmlConstraint *>(_invariant);
+ return _covered;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStateInvariant::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStateInvariant::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStateInvariant::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStateInvariant::allOwningPackages() const
+void QUmlStateInvariant::setCovered(QUmlLifeline *covered)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlStateInvariant::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_covered != covered) {
+ _covered = covered;
+ if (covered->asQObject() && this->asQObject())
+ QObject::connect(covered->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setCovered()));
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ A Constraint that should hold at runtime for this StateInvariant
*/
-QString QUmlStateInvariant::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStateInvariant::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStateInvariant::removeOwnedComment(UmlComment *ownedComment)
+QUmlConstraint *
+QUmlStateInvariant::invariant() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStateInvariant::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlStateInvariant::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStateInvariant::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _invariant;
}
-void QUmlStateInvariant::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlStateInvariant::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [InteractionFragment]
-
-void QUmlStateInvariant::setEnclosingInteraction(QUmlInteraction *enclosingInteraction)
-{
- UmlInteractionFragment::setEnclosingInteraction(enclosingInteraction);
-}
-
-void QUmlStateInvariant::setEnclosingOperand(QUmlInteractionOperand *enclosingOperand)
-{
- UmlInteractionFragment::setEnclosingOperand(enclosingOperand);
-}
-
-void QUmlStateInvariant::addGeneralOrdering(UmlGeneralOrdering *generalOrdering)
-{
- UmlInteractionFragment::addGeneralOrdering(generalOrdering);
-}
-
-void QUmlStateInvariant::removeGeneralOrdering(UmlGeneralOrdering *generalOrdering)
+void QUmlStateInvariant::setInvariant(QUmlConstraint *invariant)
{
- UmlInteractionFragment::removeGeneralOrdering(generalOrdering);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [StateInvariant]
+ if (_invariant != invariant) {
+ // Adjust subsetted properties
+ removeOwnedElement(_invariant);
-void QUmlStateInvariant::setCovered(QUmlLifeline *covered)
-{
- UmlStateInvariant::setCovered(covered);
-}
+ _invariant = invariant;
+ if (invariant->asQObject() && this->asQObject())
+ QObject::connect(invariant->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setInvariant()));
+ invariant->asQObject()->setParent(this->asQObject());
-void QUmlStateInvariant::setInvariant(QUmlConstraint *invariant)
-{
- UmlStateInvariant::setInvariant(invariant);
+ // Adjust subsetted properties
+ if (invariant) {
+ addOwnedElement(invariant);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstateinvariant.h b/src/uml/qumlstateinvariant.h
index a54b3160..8e6e0989 100644
--- a/src/uml/qumlstateinvariant.h
+++ b/src/uml/qumlstateinvariant.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstateinvariant_p.h"
+#include <QtUml/QUmlInteractionFragment>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,109 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlGeneralOrdering;
-class QUmlInteraction;
-class QUmlInteractionOperand;
class QUmlLifeline;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlStateInvariant : public QObject, public UmlStateInvariant
+class Q_UML_EXPORT QUmlStateInvariant : public QUmlInteractionFragment
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [InteractionFragment]
- Q_PROPERTY(QUmlInteraction * enclosingInteraction READ enclosingInteraction)
- Q_PROPERTY(QUmlInteractionOperand * enclosingOperand READ enclosingOperand)
- Q_PROPERTY(QSet<QUmlGeneralOrdering *> generalOrdering READ generalOrdering)
-
- // Properties [StateInvariant]
- Q_PROPERTY(QUmlLifeline * covered READ covered)
- Q_PROPERTY(QUmlConstraint * invariant READ invariant)
-
public:
- Q_INVOKABLE explicit QUmlStateInvariant(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [InteractionFragment]
- Q_INVOKABLE QUmlInteraction *enclosingInteraction() const;
- Q_INVOKABLE QUmlInteractionOperand *enclosingOperand() const;
- Q_INVOKABLE const QSet<QUmlGeneralOrdering *> generalOrdering() const;
+ explicit QUmlStateInvariant(bool createQObject = true);
+ virtual ~QUmlStateInvariant();
- // Owned attributes [StateInvariant]
- Q_INVOKABLE QUmlLifeline *covered() const;
- Q_INVOKABLE QUmlConstraint *invariant() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [InteractionFragment]
- void setEnclosingInteraction(QUmlInteraction *enclosingInteraction);
- void setEnclosingOperand(QUmlInteractionOperand *enclosingOperand);
- void addGeneralOrdering(UmlGeneralOrdering *generalOrdering);
- void removeGeneralOrdering(UmlGeneralOrdering *generalOrdering);
-
- // Slots for owned attributes [StateInvariant]
+ // Owned attributes
+ QUmlLifeline *covered() const;
void setCovered(QUmlLifeline *covered);
+ QUmlConstraint *invariant() const;
void setInvariant(QUmlConstraint *invariant);
+
+protected:
+ QUmlLifeline *_covered;
+ QUmlConstraint *_invariant;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStateInvariant *)
-Q_DECLARE_METATYPE(QList<QUmlStateInvariant *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStateInvariant *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStateInvariant) *)
QT_END_HEADER
diff --git a/src/uml/qumlstatemachine.cpp b/src/uml/qumlstatemachine.cpp
index b3b5587e..4ffac829 100644
--- a/src/uml/qumlstatemachine.cpp
+++ b/src/uml/qumlstatemachine.cpp
@@ -40,832 +40,221 @@
****************************************************************************/
#include "qumlstatemachine.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlBehavioralFeature>
-#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
+#include "private/qumlstatemachineobject_p.h"
+
#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameter>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlParameterSet>
-#include <QtUml/QUmlPort>
-#include <QtUml/QUmlProperty>
#include <QtUml/QUmlPseudostate>
-#include <QtUml/QUmlReception>
#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
#include <QtUml/QUmlRegion>
#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlStateMachine
+ \class QUmlStateMachine
\inmodule QtUml
\brief State machines can be used to express the behavior of part of a system. Behavior is modeled as a traversal of a graph of state nodes interconnected by one or more joined transition arcs that are triggered by the dispatching of series of (event) occurrences. During this traversal, the state machine executes a series of activities associated with various elements of the state machine.
*/
-
-QUmlStateMachine::QUmlStateMachine(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStateMachine::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStateMachine::ownedElement() const
+QUmlStateMachine::QUmlStateMachine(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlStateMachineObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStateMachine::owner() const
+QUmlStateMachine::~QUmlStateMachine()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStateMachine::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStateMachine::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStateMachine::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStateMachine::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStateMachine::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlStateMachine::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlStateMachine::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlStateMachine::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlStateMachine::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlStateMachine::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlStateMachine::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlStateMachine::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
+// OWNED ATTRIBUTES
/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlStateMachine::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlStateMachine::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStateMachine::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStateMachine::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStateMachine::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlStateMachine::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlStateMachine::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlStateMachine::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlStateMachine::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlStateMachine::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlStateMachine::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlStateMachine::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlStateMachine::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlStateMachine::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlStateMachine::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlStateMachine::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlStateMachine::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlStateMachine::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlStateMachine::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlStateMachine::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlStateMachine::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlStateMachine::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlStateMachine::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlStateMachine::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlStateMachine::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlStateMachine::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlStateMachine::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlStateMachine::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlStateMachine::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlStateMachine::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlStateMachine::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlStateMachine::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlStateMachine::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
+ The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.
*/
-const QSet<QUmlReception *> QUmlStateMachine::ownedReception() const
+const QSet<QUmlPseudostate *>
+QUmlStateMachine::connectionPoint() const
{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
+ // This is a read-write association end
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlStateMachine::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
+ return _connectionPoint;
}
-// OWNED ATTRIBUTES [Behavior]
-
-/*!
- 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 context 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.
- */
-QUmlBehavioredClassifier *QUmlStateMachine::context() const
+void QUmlStateMachine::addConnectionPoint(QUmlPseudostate *connectionPoint)
{
- return reinterpret_cast<QUmlBehavioredClassifier *>(UmlBehavior::context());
-}
+ // This is a read-write association end
-/*!
- Tells whether the behavior can be invoked while it is still executing from a previous invocation.
- */
-bool QUmlStateMachine::isReentrant() const
-{
- return _isReentrant;
-}
-
-/*!
- 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.
- */
-const QList<QUmlParameter *> QUmlStateMachine::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlParameter *> *>(&_ownedParameter));
-}
+ if (!_connectionPoint.contains(connectionPoint)) {
+ _connectionPoint.insert(connectionPoint);
+ if (connectionPoint->asQObject() && this->asQObject())
+ QObject::connect(connectionPoint->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeConnectionPoint(QObject *)));
+ connectionPoint->asQObject()->setParent(this->asQObject());
-/*!
- The ParameterSets owned by this Behavior.
- */
-const QSet<QUmlParameterSet *> QUmlStateMachine::ownedParameterSet() const
-{
- return *(reinterpret_cast<const QSet<QUmlParameterSet *> *>(&_ownedParameterSet));
-}
+ // Adjust subsetted properties
+ addOwnedMember(connectionPoint);
-/*!
- An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation.
- */
-const QSet<QUmlConstraint *> QUmlStateMachine::postcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_postcondition));
+ // Adjust opposite properties
+ if (connectionPoint) {
+ connectionPoint->setStateMachine(this);
+ }
+ }
}
-/*!
- An optional set of Constraints specifying what must be fulfilled when the behavior is invoked.
- */
-const QSet<QUmlConstraint *> QUmlStateMachine::precondition() const
+void QUmlStateMachine::removeConnectionPoint(QUmlPseudostate *connectionPoint)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_precondition));
-}
+ // This is a read-write association end
-/*!
- 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. A behavior does not need to have a specification, in which case it either is the classifer behavior of a BehavioredClassifier or it can only be invoked by another behavior of the classifier.
- */
-QUmlBehavioralFeature *QUmlStateMachine::specification() const
-{
- return reinterpret_cast<QUmlBehavioralFeature *>(_specification);
-}
+ if (_connectionPoint.contains(connectionPoint)) {
+ _connectionPoint.remove(connectionPoint);
+ if (connectionPoint->asQObject())
+ connectionPoint->asQObject()->setParent(0);
-// OWNED ATTRIBUTES [StateMachine]
+ // Adjust subsetted properties
+ removeOwnedMember(connectionPoint);
-/*!
- The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state.
- */
-const QSet<QUmlPseudostate *> QUmlStateMachine::connectionPoint() const
-{
- return *(reinterpret_cast<const QSet<QUmlPseudostate *> *>(&_connectionPoint));
+ // Adjust opposite properties
+ if (connectionPoint) {
+ connectionPoint->setStateMachine(0);
+ }
+ }
}
/*!
The state machines of which this is an extension.
*/
-const QSet<QUmlStateMachine *> QUmlStateMachine::extendedStateMachine() const
+const QSet<QUmlStateMachine *>
+QUmlStateMachine::extendedStateMachine() const
{
- return *(reinterpret_cast<const QSet<QUmlStateMachine *> *>(&_extendedStateMachine));
-}
+ // This is a read-write association end
-/*!
- The regions owned directly by the state machine.
- */
-const QSet<QUmlRegion *> QUmlStateMachine::region() const
-{
- return *(reinterpret_cast<const QSet<QUmlRegion *> *>(&_region));
+ return _extendedStateMachine;
}
-/*!
- References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.
- */
-const QSet<QUmlState *> QUmlStateMachine::submachineState() const
+void QUmlStateMachine::addExtendedStateMachine(QUmlStateMachine *extendedStateMachine)
{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_submachineState));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStateMachine::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (!_extendedStateMachine.contains(extendedStateMachine)) {
+ _extendedStateMachine.insert(extendedStateMachine);
+ if (extendedStateMachine->asQObject() && this->asQObject())
+ QObject::connect(extendedStateMachine->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExtendedStateMachine(QObject *)));
+ }
}
-/*!
- 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.
- */
-bool QUmlStateMachine::mustBeOwned() const
+void QUmlStateMachine::removeExtendedStateMachine(QUmlStateMachine *extendedStateMachine)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-write association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStateMachine::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStateMachine::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStateMachine::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStateMachine::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlStateMachine::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (_extendedStateMachine.contains(extendedStateMachine)) {
+ _extendedStateMachine.remove(extendedStateMachine);
+ }
}
/*!
- 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.The query getNamesOfMember() takes importing into account. It gives back the set of names that an element would have in an importing namespace, either because it is owned, or if not owned then imported individually, or if not individually then from a package.
+ The regions owned directly by the state machine.
*/
-QSet<QString> QUmlStateMachine::getNamesOfMember(QUmlNamedElement *element) const
+const QSet<QUmlRegion *>
+QUmlStateMachine::region() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlStateMachine::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _region;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlStateMachine::membersAreDistinguishable() const
+void QUmlStateMachine::addRegion(QUmlRegion *region)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_region.contains(region)) {
+ _region.insert(region);
+ if (region->asQObject() && this->asQObject())
+ QObject::connect(region->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRegion(QObject *)));
+ region->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlStateMachine::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
+ // Adjust subsetted properties
+ addOwnedMember(region);
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlStateMachine::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ // Adjust opposite properties
+ if (region) {
+ region->setStateMachine(this);
+ }
+ }
}
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlStateMachine::parameterableElements() const
+void QUmlStateMachine::removeRegion(QUmlRegion *region)
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (_region.contains(region)) {
+ _region.remove(region);
+ if (region->asQObject())
+ region->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlStateMachine::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ removeOwnedMember(region);
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStateMachine::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (region) {
+ region->setStateMachine(0);
+ }
+ }
}
/*!
- 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.
+ References the submachine(s) in case of a submachine state. Multiple machines are referenced in case of a concurrent state.
*/
-bool QUmlStateMachine::conformsTo(QUmlClassifier *other) const
+const QSet<QUmlState *>
+QUmlStateMachine::submachineState() const
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlStateMachine::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
+ return _submachineState;
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlStateMachine::inheritableMembers(QUmlClassifier *c) const
+void QUmlStateMachine::addSubmachineState(QUmlState *submachineState)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlStateMachine::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ if (!_submachineState.contains(submachineState)) {
+ _submachineState.insert(submachineState);
+ if (submachineState->asQObject() && this->asQObject())
+ QObject::connect(submachineState->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubmachineState(QObject *)));
-/*!
- 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.
- */
-bool QUmlStateMachine::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ // Adjust opposite properties
+ if (submachineState) {
+ submachineState->setSubmachine(this);
+ }
+ }
}
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStateMachine::parents() const
+void QUmlStateMachine::removeSubmachineState(QUmlState *submachineState)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Class]
+ if (_submachineState.contains(submachineState)) {
+ _submachineState.remove(submachineState);
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlStateMachine::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (submachineState) {
+ submachineState->setSubmachine(0);
+ }
+ }
}
-// OPERATIONS [StateMachine]
+// OPERATIONS
/*!
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.
*/
QUmlNamespace *QUmlStateMachine::LCA(QUmlState *s1, QUmlState *s2) const
{
- return reinterpret_cast<QUmlNamespace *>(UmlStateMachine::LCA(s1, s2));
+ qWarning("UmlStateMachine::LCA(): to be implemented (operation)");
+
+ Q_UNUSED(s1);
+ Q_UNUSED(s2);
+ return 0;
}
/*!
@@ -873,7 +262,11 @@ QUmlNamespace *QUmlStateMachine::LCA(QUmlState *s1, QUmlState *s2) const
*/
bool QUmlStateMachine::ancestor(QUmlState *s1, QUmlState *s2) const
{
- return UmlStateMachine::ancestor(s1, s2);
+ qWarning("UmlStateMachine::ancestor(): to be implemented (operation)");
+
+ Q_UNUSED(s1);
+ Q_UNUSED(s2);
+ return bool ();
}
/*!
@@ -881,7 +274,10 @@ bool QUmlStateMachine::ancestor(QUmlState *s1, QUmlState *s2) const
*/
bool QUmlStateMachine::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- return UmlStateMachine::isConsistentWith(redefinee);
+ qWarning("UmlStateMachine::isConsistentWith(): to be implemented (operation)");
+
+ Q_UNUSED(redefinee);
+ return bool ();
}
/*!
@@ -889,401 +285,9 @@ bool QUmlStateMachine::isConsistentWith(QUmlRedefinableElement *redefinee) const
*/
bool QUmlStateMachine::isRedefinitionContextValid(QUmlStateMachine *redefined) const
{
- return UmlStateMachine::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStateMachine::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStateMachine::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStateMachine::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStateMachine::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStateMachine::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStateMachine::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlStateMachine::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlStateMachine::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlStateMachine::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlStateMachine::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlStateMachine::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlStateMachine::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlStateMachine::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlStateMachine::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlStateMachine::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStateMachine::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlStateMachine::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlStateMachine::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlStateMachine::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlStateMachine::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlStateMachine::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlStateMachine::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlStateMachine::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlStateMachine::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlStateMachine::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStateMachine::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStateMachine::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlStateMachine::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlStateMachine::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStateMachine::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStateMachine::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlStateMachine::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlStateMachine::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlStateMachine::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlStateMachine::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlStateMachine::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlStateMachine::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlStateMachine::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlStateMachine::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlStateMachine::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlStateMachine::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlStateMachine::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlStateMachine::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlStateMachine::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlStateMachine::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlStateMachine::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlStateMachine::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlStateMachine::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStateMachine::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStateMachine::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlStateMachine::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlStateMachine::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlStateMachine::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlStateMachine::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlStateMachine::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Behavior]
-
-void QUmlStateMachine::setReentrant(bool isReentrant)
-{
- UmlBehavior::setReentrant(isReentrant);
-}
-
-void QUmlStateMachine::addOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::addOwnedParameter(ownedParameter);
-}
-
-void QUmlStateMachine::removeOwnedParameter(UmlParameter *ownedParameter)
-{
- UmlBehavior::removeOwnedParameter(ownedParameter);
-}
-
-void QUmlStateMachine::addOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::addOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlStateMachine::removeOwnedParameterSet(UmlParameterSet *ownedParameterSet)
-{
- UmlBehavior::removeOwnedParameterSet(ownedParameterSet);
-}
-
-void QUmlStateMachine::addPostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::addPostcondition(postcondition);
-}
-
-void QUmlStateMachine::removePostcondition(UmlConstraint *postcondition)
-{
- UmlBehavior::removePostcondition(postcondition);
-}
-
-void QUmlStateMachine::addPrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::addPrecondition(precondition);
-}
-
-void QUmlStateMachine::removePrecondition(UmlConstraint *precondition)
-{
- UmlBehavior::removePrecondition(precondition);
-}
-
-void QUmlStateMachine::setSpecification(QUmlBehavioralFeature *specification)
-{
- UmlBehavior::setSpecification(specification);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StateMachine]
-
-void QUmlStateMachine::addConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlStateMachine::addConnectionPoint(connectionPoint);
-}
-
-void QUmlStateMachine::removeConnectionPoint(UmlPseudostate *connectionPoint)
-{
- UmlStateMachine::removeConnectionPoint(connectionPoint);
-}
-
-void QUmlStateMachine::addExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- UmlStateMachine::addExtendedStateMachine(extendedStateMachine);
-}
-
-void QUmlStateMachine::removeExtendedStateMachine(UmlStateMachine *extendedStateMachine)
-{
- UmlStateMachine::removeExtendedStateMachine(extendedStateMachine);
-}
+ qWarning("UmlStateMachine::isRedefinitionContextValid(): to be implemented (operation)");
-void QUmlStateMachine::addRegion(UmlRegion *region)
-{
- UmlStateMachine::addRegion(region);
+ Q_UNUSED(redefined);
+ return bool ();
}
-void QUmlStateMachine::removeRegion(UmlRegion *region)
-{
- UmlStateMachine::removeRegion(region);
-}
-
-void QUmlStateMachine::addSubmachineState(UmlState *submachineState)
-{
- UmlStateMachine::addSubmachineState(submachineState);
-}
-
-void QUmlStateMachine::removeSubmachineState(UmlState *submachineState)
-{
- UmlStateMachine::removeSubmachineState(submachineState);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstatemachine.h b/src/uml/qumlstatemachine.h
index c584743f..0f71c544 100644
--- a/src/uml/qumlstatemachine.h
+++ b/src/uml/qumlstatemachine.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstatemachine_p.h"
+#include <QtUml/QUmlBehavior>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,396 +52,48 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlBehavioralFeature;
-class QUmlBehavioredClassifier;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameter;
-class QUmlParameterableElement;
-class QUmlParameterSet;
-class QUmlPort;
-class QUmlProperty;
class QUmlPseudostate;
-class QUmlReception;
class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
class QUmlRegion;
class QUmlState;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlStateMachine : public QObject, public UmlStateMachine
+class Q_UML_EXPORT QUmlStateMachine : public QUmlBehavior
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Behavior]
- Q_PROPERTY(QUmlBehavioredClassifier * context READ context)
- Q_PROPERTY(bool isReentrant READ isReentrant)
- Q_PROPERTY(QList<QUmlParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QSet<QUmlParameterSet *> ownedParameterSet READ ownedParameterSet)
- Q_PROPERTY(QSet<QUmlConstraint *> postcondition READ postcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> precondition READ precondition)
- Q_PROPERTY(QUmlBehavioralFeature * specification READ specification)
-
- // Properties [StateMachine]
- Q_PROPERTY(QSet<QUmlPseudostate *> connectionPoint READ connectionPoint)
- Q_PROPERTY(QSet<QUmlStateMachine *> extendedStateMachine READ extendedStateMachine)
- Q_PROPERTY(QSet<QUmlRegion *> region READ region)
- Q_PROPERTY(QSet<QUmlState *> submachineState READ submachineState)
-
public:
- Q_INVOKABLE explicit QUmlStateMachine(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Behavior]
- Q_INVOKABLE QUmlBehavioredClassifier *context() const;
- Q_INVOKABLE bool isReentrant() const;
- Q_INVOKABLE const QList<QUmlParameter *> ownedParameter() const;
- Q_INVOKABLE const QSet<QUmlParameterSet *> ownedParameterSet() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> postcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> precondition() const;
- Q_INVOKABLE QUmlBehavioralFeature *specification() const;
-
- // Owned attributes [StateMachine]
- Q_INVOKABLE const QSet<QUmlPseudostate *> connectionPoint() const;
- Q_INVOKABLE const QSet<QUmlStateMachine *> extendedStateMachine() const;
- Q_INVOKABLE const QSet<QUmlRegion *> region() const;
- Q_INVOKABLE const QSet<QUmlState *> submachineState() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
- // Operations [StateMachine]
- Q_INVOKABLE QUmlNamespace *LCA(QUmlState *s1, QUmlState *s2) const;
- Q_INVOKABLE bool ancestor(QUmlState *s1, QUmlState *s2) const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlStateMachine *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
-
- // Slots for owned attributes [Behavior]
- void setReentrant(bool isReentrant);
- void addOwnedParameter(UmlParameter *ownedParameter);
- void removeOwnedParameter(UmlParameter *ownedParameter);
- void addOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void removeOwnedParameterSet(UmlParameterSet *ownedParameterSet);
- void addPostcondition(UmlConstraint *postcondition);
- void removePostcondition(UmlConstraint *postcondition);
- void addPrecondition(UmlConstraint *precondition);
- void removePrecondition(UmlConstraint *precondition);
- void setSpecification(QUmlBehavioralFeature *specification);
-
- // Slots for owned attributes [StateMachine]
- void addConnectionPoint(UmlPseudostate *connectionPoint);
- void removeConnectionPoint(UmlPseudostate *connectionPoint);
- void addExtendedStateMachine(UmlStateMachine *extendedStateMachine);
- void removeExtendedStateMachine(UmlStateMachine *extendedStateMachine);
- void addRegion(UmlRegion *region);
- void removeRegion(UmlRegion *region);
- void addSubmachineState(UmlState *submachineState);
- void removeSubmachineState(UmlState *submachineState);
+ explicit QUmlStateMachine(bool createQObject = true);
+ virtual ~QUmlStateMachine();
+
+ // Owned attributes
+ const QSet<QUmlPseudostate *> connectionPoint() const;
+ void addConnectionPoint(QUmlPseudostate *connectionPoint);
+ void removeConnectionPoint(QUmlPseudostate *connectionPoint);
+ const QSet<QUmlStateMachine *> extendedStateMachine() const;
+ void addExtendedStateMachine(QUmlStateMachine *extendedStateMachine);
+ void removeExtendedStateMachine(QUmlStateMachine *extendedStateMachine);
+ const QSet<QUmlRegion *> region() const;
+ void addRegion(QUmlRegion *region);
+ void removeRegion(QUmlRegion *region);
+ const QSet<QUmlState *> submachineState() const;
+ void addSubmachineState(QUmlState *submachineState);
+ void removeSubmachineState(QUmlState *submachineState);
+
+ // Operations
+ QUmlNamespace *LCA(QUmlState *s1, QUmlState *s2) const;
+ bool ancestor(QUmlState *s1, QUmlState *s2) const;
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+ bool isRedefinitionContextValid(QUmlStateMachine *redefined) const;
+
+protected:
+ QSet<QUmlPseudostate *> _connectionPoint;
+ QSet<QUmlStateMachine *> _extendedStateMachine;
+ QSet<QUmlRegion *> _region;
+ QSet<QUmlState *> _submachineState;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStateMachine *)
-Q_DECLARE_METATYPE(QList<QUmlStateMachine *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStateMachine *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStateMachine) *)
QT_END_HEADER
diff --git a/src/uml/qumlstereotype.cpp b/src/uml/qumlstereotype.cpp
index 2fac2399..d69d38d7 100644
--- a/src/uml/qumlstereotype.cpp
+++ b/src/uml/qumlstereotype.cpp
@@ -40,1082 +40,109 @@
****************************************************************************/
#include "qumlstereotype.h"
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClass>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExtension>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
+#include "private/qumlstereotypeobject_p.h"
+
#include <QtUml/QUmlImage>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOperation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlPort>
#include <QtUml/QUmlProfile>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlReception>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlStereotype
+ \class QUmlStereotype
\inmodule QtUml
\brief A stereotype defines how an existing metaclass may be extended, and enables the use of platform or domain specific terminology or notation in place of, or in addition to, the ones used for the extended metaclass.
*/
-
-QUmlStereotype::QUmlStereotype(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStereotype::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStereotype::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStereotype::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStereotype::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStereotype::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStereotype::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStereotype::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStereotype::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlStereotype::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlStereotype::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlStereotype::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlStereotype::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlStereotype::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlStereotype::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlStereotype::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlStereotype::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlStereotype::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStereotype::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStereotype::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStereotype::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlStereotype::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlStereotype::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlStereotype::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlStereotype::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlStereotype::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlStereotype::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlStereotype::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlStereotype::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlStereotype::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlStereotype::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlStereotype::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlStereotype::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlStereotype::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlStereotype::templateParameter() const
-{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
-
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlStereotype::useCase() const
+QUmlStereotype::QUmlStereotype(bool createQObject) :
+ QUmlClass(false)
{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
+ if (createQObject)
+ _qObject = new QUmlStereotypeObject(this);
}
-// OWNED ATTRIBUTES [StructuredClassifier]
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlStereotype::ownedConnector() const
+QUmlStereotype::~QUmlStereotype()
{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlStereotype::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlStereotype::role() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-/*!
- References a set of ports that an encapsulated classifier owns.
- */
-const QSet<QUmlPort *> QUmlStereotype::ownedPort() const
-{
- QSet<QUmlPort *> r;
- foreach (UmlPort *element, UmlEncapsulatedClassifier::ownedPort())
- r.insert(reinterpret_cast<QUmlPort *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [BehavioredClassifier]
-
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlStereotype::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
-}
-
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlStereotype::interfaceRealization() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
-
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlStereotype::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
-
-// OWNED ATTRIBUTES [Class]
-
-/*!
- References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class.
- */
-const QSet<QUmlExtension *> QUmlStereotype::extension() const
-{
- QSet<QUmlExtension *> r;
- foreach (UmlExtension *element, UmlClass::extension())
- r.insert(reinterpret_cast<QUmlExtension *>(element));
- return r;
-}
-
-/*!
- 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.True when a class is abstract.
- */
-bool QUmlStereotype::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- 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.
- */
-bool QUmlStereotype::isActive() const
-{
- return _isActive;
-}
-
-/*!
- References all the Classifiers that are defined (nested) within the Class.
- */
-const QList<QUmlClassifier *> QUmlStereotype::nestedClassifier() const
-{
- return *(reinterpret_cast<const QList<QUmlClassifier *> *>(&_nestedClassifier));
-}
-
-/*!
- The attributes (i.e. the properties) owned by the class.
- */
-const QList<QUmlProperty *> QUmlStereotype::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- The operations owned by the class.
- */
-const QList<QUmlOperation *> QUmlStereotype::ownedOperation() const
-{
- return *(reinterpret_cast<const QList<QUmlOperation *> *>(&_ownedOperation));
-}
-
-/*!
- Receptions that objects of this class are willing to accept.
- */
-const QSet<QUmlReception *> QUmlStereotype::ownedReception() const
-{
- return *(reinterpret_cast<const QSet<QUmlReception *> *>(&_ownedReception));
-}
-
-/*!
- This gives the superclasses of a class.
- */
-const QSet<QUmlClass *> QUmlStereotype::superClass() const
-{
- QSet<QUmlClass *> r;
- foreach (UmlClass *element, UmlClass::superClass())
- r.insert(reinterpret_cast<QUmlClass *>(element));
- return r;
-}
-
-// OWNED ATTRIBUTES [Stereotype]
+// OWNED ATTRIBUTES
/*!
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.
*/
-const QSet<QUmlImage *> QUmlStereotype::icon() const
-{
- return *(reinterpret_cast<const QSet<QUmlImage *> *>(&_icon));
-}
-
-/*!
- The profile that directly or indirectly contains this stereotype.
- */
-QUmlProfile *QUmlStereotype::profile() const
-{
- return reinterpret_cast<QUmlProfile *>(UmlStereotype::profile());
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStereotype::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStereotype::mustBeOwned() const
+const QSet<QUmlImage *>
+QUmlStereotype::icon() const
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStereotype::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStereotype::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStereotype::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStereotype::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [Namespace]
-
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlStereotype::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlStereotype::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
-}
-
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlStereotype::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlStereotype::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// OPERATIONS [ParameterableElement]
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlStereotype::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ return _icon;
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlStereotype::isTemplateParameter() const
+void QUmlStereotype::addIcon(QUmlImage *icon)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (!_icon.contains(icon)) {
+ _icon.insert(icon);
+ if (icon->asQObject() && this->asQObject())
+ QObject::connect(icon->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeIcon(QObject *)));
+ icon->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlStereotype::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ addOwnedElement(icon);
+ }
}
-/*!
- 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.
- */
-bool QUmlStereotype::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlStereotype::removeIcon(QUmlImage *icon)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlStereotype::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-// OPERATIONS [Classifier]
+ if (_icon.contains(icon)) {
+ _icon.remove(icon);
+ if (icon->asQObject())
+ icon->asQObject()->setParent(0);
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlStereotype::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStereotype::allParents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust subsetted properties
+ removeOwnedElement(icon);
+ }
}
/*!
- 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.
+ The profile that directly or indirectly contains this stereotype.
*/
-bool QUmlStereotype::conformsTo(QUmlClassifier *other) const
+QUmlProfile *
+QUmlStereotype::profile() const
{
- return UmlClassifier::conformsTo(other);
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlStereotype::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
+ qWarning("UmlStereotype::profile(): to be implemented (this is a derived association end)");
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlStereotype::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ return 0;
}
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlStereotype::isTemplate() const
+void QUmlStereotype::setProfile(QUmlProfile *profile)
{
- return UmlClassifier::isTemplate();
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlStereotype::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
+ qWarning("UmlStereotype::profile(): to be implemented (this is a derived association end)");
+ Q_UNUSED(profile);
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStereotype::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-// OPERATIONS [Class]
-
-/*!
- The inherit operation is overridden to exclude redefined properties.
- */
-QSet<QUmlNamedElement *> QUmlStereotype::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClass::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-// OPERATIONS [Stereotype]
+// OPERATIONS
/*!
The query containingProfile returns the closest profile directly or indirectly containing this stereotype.
*/
QUmlProfile *QUmlStereotype::containingProfile() const
{
- return reinterpret_cast<QUmlProfile *>(UmlStereotype::containingProfile());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStereotype::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStereotype::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStereotype::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStereotype::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStereotype::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStereotype::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlStereotype::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlStereotype::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlStereotype::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlStereotype::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlStereotype::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlStereotype::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlStereotype::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlStereotype::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlStereotype::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStereotype::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlStereotype::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlStereotype::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlStereotype::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlStereotype::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlStereotype::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlStereotype::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlStereotype::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlStereotype::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlStereotype::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStereotype::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStereotype::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
+ qWarning("UmlStereotype::containingProfile(): to be implemented (operation)");
-void QUmlStereotype::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlStereotype::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStereotype::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStereotype::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlStereotype::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlStereotype::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlStereotype::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlStereotype::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlStereotype::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
+ return 0;
}
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlStereotype::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
-
-void QUmlStereotype::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [EncapsulatedClassifier]
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlStereotype::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlStereotype::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlStereotype::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlStereotype::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlStereotype::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Class]
-
-void QUmlStereotype::setAbstract(bool isAbstract)
-{
- UmlClass::setAbstract(isAbstract);
-}
-
-void QUmlStereotype::setActive(bool isActive)
-{
- UmlClass::setActive(isActive);
-}
-
-void QUmlStereotype::addNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::addNestedClassifier(nestedClassifier);
-}
-
-void QUmlStereotype::removeNestedClassifier(UmlClassifier *nestedClassifier)
-{
- UmlClass::removeNestedClassifier(nestedClassifier);
-}
-
-void QUmlStereotype::addOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::addOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStereotype::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlClass::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStereotype::addOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::addOwnedOperation(ownedOperation);
-}
-
-void QUmlStereotype::removeOwnedOperation(UmlOperation *ownedOperation)
-{
- UmlClass::removeOwnedOperation(ownedOperation);
-}
-
-void QUmlStereotype::addOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::addOwnedReception(ownedReception);
-}
-
-void QUmlStereotype::removeOwnedReception(UmlReception *ownedReception)
-{
- UmlClass::removeOwnedReception(ownedReception);
-}
-
-void QUmlStereotype::addSuperClass(UmlClass *superClass)
-{
- UmlClass::addSuperClass(superClass);
-}
-
-void QUmlStereotype::removeSuperClass(UmlClass *superClass)
-{
- UmlClass::removeSuperClass(superClass);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Stereotype]
-
-void QUmlStereotype::addIcon(UmlImage *icon)
-{
- UmlStereotype::addIcon(icon);
-}
-
-void QUmlStereotype::removeIcon(UmlImage *icon)
-{
- UmlStereotype::removeIcon(icon);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstereotype.h b/src/uml/qumlstereotype.h
index e4d387da..9fac9d96 100644
--- a/src/uml/qumlstereotype.h
+++ b/src/uml/qumlstereotype.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstereotype_p.h"
+#include <QtUml/QUmlClass>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,350 +52,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
-class QUmlClass;
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConnectableElement;
-class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExtension;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
class QUmlImage;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOperation;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlPort;
class QUmlProfile;
-class QUmlProperty;
-class QUmlReception;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlStereotype : public QObject, public UmlStereotype
+class Q_UML_EXPORT QUmlStereotype : public QUmlClass
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
- // Properties [EncapsulatedClassifier]
- Q_PROPERTY(QSet<QUmlPort *> ownedPort READ ownedPort)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [Class]
- Q_PROPERTY(QSet<QUmlExtension *> extension READ extension)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isActive READ isActive)
- Q_PROPERTY(QList<QUmlClassifier *> nestedClassifier READ nestedClassifier)
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QList<QUmlOperation *> ownedOperation READ ownedOperation)
- Q_PROPERTY(QSet<QUmlReception *> ownedReception READ ownedReception)
- Q_PROPERTY(QSet<QUmlClass *> superClass READ superClass)
-
- // Properties [Stereotype]
- Q_PROPERTY(QSet<QUmlImage *> icon READ icon)
- Q_PROPERTY(QUmlProfile * profile READ profile)
-
public:
- Q_INVOKABLE explicit QUmlStereotype(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Owned attributes [EncapsulatedClassifier]
- Q_INVOKABLE const QSet<QUmlPort *> ownedPort() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [Class]
- Q_INVOKABLE const QSet<QUmlExtension *> extension() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isActive() const;
- Q_INVOKABLE const QList<QUmlClassifier *> nestedClassifier() const;
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QList<QUmlOperation *> ownedOperation() const;
- Q_INVOKABLE const QSet<QUmlReception *> ownedReception() const;
- Q_INVOKABLE const QSet<QUmlClass *> superClass() const;
-
- // Owned attributes [Stereotype]
- Q_INVOKABLE const QSet<QUmlImage *> icon() const;
- Q_INVOKABLE QUmlProfile *profile() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [Class]
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
-
- // Operations [Stereotype]
- Q_INVOKABLE QUmlProfile *containingProfile() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
-
- // Slots for owned attributes [EncapsulatedClassifier]
+ explicit QUmlStereotype(bool createQObject = true);
+ virtual ~QUmlStereotype();
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
+ // Owned attributes
+ const QSet<QUmlImage *> icon() const;
+ void addIcon(QUmlImage *icon);
+ void removeIcon(QUmlImage *icon);
+ QUmlProfile *profile() const;
+ Q_DECL_HIDDEN void setProfile(QUmlProfile *profile);
- // Slots for owned attributes [Class]
- void setAbstract(bool isAbstract);
- void setActive(bool isActive);
- void addNestedClassifier(UmlClassifier *nestedClassifier);
- void removeNestedClassifier(UmlClassifier *nestedClassifier);
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedOperation(UmlOperation *ownedOperation);
- void removeOwnedOperation(UmlOperation *ownedOperation);
- void addOwnedReception(UmlReception *ownedReception);
- void removeOwnedReception(UmlReception *ownedReception);
- void addSuperClass(UmlClass *superClass);
- void removeSuperClass(UmlClass *superClass);
+ // Operations
+ QUmlProfile *containingProfile() const;
- // Slots for owned attributes [Stereotype]
- void addIcon(UmlImage *icon);
- void removeIcon(UmlImage *icon);
+protected:
+ QSet<QUmlImage *> _icon;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStereotype *)
-Q_DECLARE_METATYPE(QList<QUmlStereotype *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStereotype *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStereotype) *)
QT_END_HEADER
diff --git a/src/uml/qumlstringexpression.cpp b/src/uml/qumlstringexpression.cpp
index e0344df6..8805e75d 100644
--- a/src/uml/qumlstringexpression.cpp
+++ b/src/uml/qumlstringexpression.cpp
@@ -40,462 +40,109 @@
****************************************************************************/
#include "qumlstringexpression.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlstringexpressionobject_p.h"
/*!
- \class UmlStringExpression
+ \class QUmlStringExpression
\inmodule QtUml
\brief An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters.
*/
-
-QUmlStringExpression::QUmlStringExpression(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStringExpression::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStringExpression::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStringExpression::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStringExpression::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStringExpression::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStringExpression::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStringExpression::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStringExpression::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlStringExpression::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlStringExpression::owningTemplateParameter() const
+QUmlStringExpression::QUmlStringExpression(bool createQObject) :
+ QUmlExpression(false),
+ _owningExpression(0)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlStringExpressionObject(this);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlStringExpression::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlStringExpression::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Expression]
-
-/*!
- Specifies a sequence of operands.
- */
-const QList<QUmlValueSpecification *> QUmlStringExpression::operand() const
+QUmlStringExpression::~QUmlStringExpression()
{
- return *(reinterpret_cast<const QList<QUmlValueSpecification *> *>(&_operand));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The symbol associated with the node in the expression tree.
- */
-QString QUmlStringExpression::symbol() const
-{
- return _symbol;
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlTemplateSignature *QUmlStringExpression::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlStringExpression::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [StringExpression]
+// OWNED ATTRIBUTES
/*!
The string expression of which this expression is a substring.
*/
-QUmlStringExpression *QUmlStringExpression::owningExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_owningExpression);
-}
-
-/*!
- The StringExpressions that constitute this StringExpression.
- */
-const QSet<QUmlStringExpression *> QUmlStringExpression::subExpression() const
-{
- return *(reinterpret_cast<const QSet<QUmlStringExpression *> *>(&_subExpression));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStringExpression::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStringExpression::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStringExpression::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStringExpression::allOwningPackages() const
+QUmlStringExpression *
+QUmlStringExpression::owningExpression() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlStringExpression::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _owningExpression;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStringExpression::separator() const
+void QUmlStringExpression::setOwningExpression(QUmlStringExpression *owningExpression)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlStringExpression::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
+ if (_owningExpression != owningExpression) {
+ // Adjust subsetted properties
-// OPERATIONS [ValueSpecification]
+ _owningExpression = owningExpression;
+ if (owningExpression->asQObject() && this->asQObject())
+ QObject::connect(owningExpression->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwningExpression()));
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlStringExpression::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
+ // Adjust subsetted properties
+ setOwner(owningExpression);
+ }
}
/*!
- The query integerValue() gives a single Integer value when one can be computed.
+ The StringExpressions that constitute this StringExpression.
*/
-int QUmlStringExpression::integerValue() const
+const QSet<QUmlStringExpression *>
+QUmlStringExpression::subExpression() const
{
- return UmlValueSpecification::integerValue();
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlStringExpression::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
+ return _subExpression;
}
-/*!
- 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.
- */
-bool QUmlStringExpression::isComputable() const
+void QUmlStringExpression::addSubExpression(QUmlStringExpression *subExpression)
{
- return UmlValueSpecification::isComputable();
-}
+ // This is a read-write association end
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlStringExpression::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
+ if (!_subExpression.contains(subExpression)) {
+ _subExpression.insert(subExpression);
+ if (subExpression->asQObject() && this->asQObject())
+ QObject::connect(subExpression->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubExpression(QObject *)));
+ subExpression->asQObject()->setParent(this->asQObject());
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlStringExpression::realValue() const
-{
- return UmlValueSpecification::realValue();
+ // Adjust subsetted properties
+ addOwnedElement(subExpression);
+ }
}
-/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
- */
-int QUmlStringExpression::unlimitedValue() const
+void QUmlStringExpression::removeSubExpression(QUmlStringExpression *subExpression)
{
- return UmlValueSpecification::unlimitedValue();
-}
+ // This is a read-write association end
-// OPERATIONS [TemplateableElement]
+ if (_subExpression.contains(subExpression)) {
+ _subExpression.remove(subExpression);
+ if (subExpression->asQObject())
+ subExpression->asQObject()->setParent(0);
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlStringExpression::isTemplate() const
-{
- return UmlTemplateableElement::isTemplate();
+ // Adjust subsetted properties
+ removeOwnedElement(subExpression);
+ }
}
-/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlStringExpression::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [StringExpression]
+// OPERATIONS
/*!
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.
*/
QString QUmlStringExpression::stringValue() const
{
- return UmlStringExpression::stringValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStringExpression::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStringExpression::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStringExpression::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStringExpression::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStringExpression::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStringExpression::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlStringExpression::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlStringExpression::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlStringExpression::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlStringExpression::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
+ qWarning("UmlStringExpression::stringValue(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [Expression]
-
-void QUmlStringExpression::addOperand(UmlValueSpecification *operand)
-{
- UmlExpression::addOperand(operand);
+ return QString ();
}
-void QUmlStringExpression::removeOperand(UmlValueSpecification *operand)
-{
- UmlExpression::removeOperand(operand);
-}
-
-void QUmlStringExpression::setSymbol(QString symbol)
-{
- UmlExpression::setSymbol(symbol);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlStringExpression::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
-{
- UmlTemplateableElement::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlStringExpression::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlStringExpression::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StringExpression]
-
-void QUmlStringExpression::setOwningExpression(QUmlStringExpression *owningExpression)
-{
- UmlStringExpression::setOwningExpression(owningExpression);
-}
-
-void QUmlStringExpression::addSubExpression(UmlStringExpression *subExpression)
-{
- UmlStringExpression::addSubExpression(subExpression);
-}
-
-void QUmlStringExpression::removeSubExpression(UmlStringExpression *subExpression)
-{
- UmlStringExpression::removeSubExpression(subExpression);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstringexpression.h b/src/uml/qumlstringexpression.h
index 5c78ef13..2a4fe801 100644
--- a/src/uml/qumlstringexpression.h
+++ b/src/uml/qumlstringexpression.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstringexpression_p.h"
+#include <QtUml/QUmlExpression>
+#include <QtUml/QUmlTemplateableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,166 +53,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlStringExpression : public QObject, public UmlStringExpression
+class Q_UML_EXPORT QUmlStringExpression : public QUmlExpression, public QUmlTemplateableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Expression]
- Q_PROPERTY(QList<QUmlValueSpecification *> operand READ operand)
- Q_PROPERTY(QString symbol READ symbol)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QUmlTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [StringExpression]
- Q_PROPERTY(QUmlStringExpression * owningExpression READ owningExpression)
- Q_PROPERTY(QSet<QUmlStringExpression *> subExpression READ subExpression)
-
public:
- Q_INVOKABLE explicit QUmlStringExpression(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Expression]
- Q_INVOKABLE const QList<QUmlValueSpecification *> operand() const;
- Q_INVOKABLE QString symbol() const;
+ explicit QUmlStringExpression(bool createQObject = true);
+ virtual ~QUmlStringExpression();
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE QUmlTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [StringExpression]
- Q_INVOKABLE QUmlStringExpression *owningExpression() const;
- Q_INVOKABLE const QSet<QUmlStringExpression *> subExpression() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [StringExpression]
- Q_INVOKABLE QString stringValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Expression]
- void addOperand(UmlValueSpecification *operand);
- void removeOperand(UmlValueSpecification *operand);
- void setSymbol(QString symbol);
+ // Owned attributes
+ QUmlStringExpression *owningExpression() const;
+ void setOwningExpression(QUmlStringExpression *owningExpression);
+ const QSet<QUmlStringExpression *> subExpression() const;
+ void addSubExpression(QUmlStringExpression *subExpression);
+ void removeSubExpression(QUmlStringExpression *subExpression);
- // Slots for owned attributes [TemplateableElement]
- void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ // Operations
+ QString stringValue() const;
- // Slots for owned attributes [StringExpression]
- void setOwningExpression(QUmlStringExpression *owningExpression);
- void addSubExpression(UmlStringExpression *subExpression);
- void removeSubExpression(UmlStringExpression *subExpression);
+protected:
+ QUmlStringExpression *_owningExpression;
+ QSet<QUmlStringExpression *> _subExpression;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStringExpression *)
-Q_DECLARE_METATYPE(QList<QUmlStringExpression *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStringExpression *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStringExpression) *)
QT_END_HEADER
diff --git a/src/uml/qumlstructuralfeature.cpp b/src/uml/qumlstructuralfeature.cpp
index 880ecf69..79365889 100644
--- a/src/uml/qumlstructuralfeature.cpp
+++ b/src/uml/qumlstructuralfeature.cpp
@@ -40,459 +40,41 @@
****************************************************************************/
#include "qumlstructuralfeature.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlStructuralFeature
+ \class QUmlStructuralFeature
\inmodule QtUml
\brief A structural feature is a typed feature of a classifier that specifies the structure of instances of the classifier.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.
*/
-
-QUmlStructuralFeature::QUmlStructuralFeature(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStructuralFeature::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStructuralFeature::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStructuralFeature::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStructuralFeature::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStructuralFeature::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStructuralFeature::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStructuralFeature::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStructuralFeature::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlStructuralFeature::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlStructuralFeature::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlStructuralFeature::isOrdered() const
+QUmlStructuralFeature::QUmlStructuralFeature() :
+ _isReadOnly(false)
{
- return _isOrdered;
}
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlStructuralFeature::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlStructuralFeature::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlStructuralFeature::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlStructuralFeature::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlStructuralFeature::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStructuralFeature::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStructuralFeature::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStructuralFeature::redefinitionContext() const
+QUmlStructuralFeature::~QUmlStructuralFeature()
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
}
-// OWNED ATTRIBUTES [Feature]
-
-/*!
- The Classifiers that have this Feature as a feature.
- */
-const QSet<QUmlClassifier *> QUmlStructuralFeature::featuringClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_featuringClassifier));
-}
-
-/*!
- Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true).
- */
-bool QUmlStructuralFeature::isStatic() const
-{
- return _isStatic;
-}
-
-// OWNED ATTRIBUTES [StructuralFeature]
+// OWNED ATTRIBUTES
/*!
States whether the feature's value may be modified by a client.
*/
-bool QUmlStructuralFeature::isReadOnly() const
-{
- return _isReadOnly;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStructuralFeature::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStructuralFeature::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStructuralFeature::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStructuralFeature::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStructuralFeature::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStructuralFeature::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlStructuralFeature::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlStructuralFeature::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlStructuralFeature::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlStructuralFeature::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlStructuralFeature::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlStructuralFeature::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-int QUmlStructuralFeature::upperBound() const
-{
- return UmlMultiplicityElement::upperBound();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlStructuralFeature::isConsistentWith(QUmlRedefinableElement *redefinee) const
+bool
+QUmlStructuralFeature::isReadOnly() const
{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlStructuralFeature::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStructuralFeature::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStructuralFeature::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStructuralFeature::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStructuralFeature::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStructuralFeature::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStructuralFeature::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlStructuralFeature::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlStructuralFeature::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlStructuralFeature::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlStructuralFeature::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlStructuralFeature::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
+ // This is a read-write property
-void QUmlStructuralFeature::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlStructuralFeature::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlStructuralFeature::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStructuralFeature::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Feature]
-
-void QUmlStructuralFeature::setStatic(bool isStatic)
-{
- UmlFeature::setStatic(isStatic);
+ return _isReadOnly;
}
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeature]
-
void QUmlStructuralFeature::setReadOnly(bool isReadOnly)
{
- UmlStructuralFeature::setReadOnly(isReadOnly);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_isReadOnly != isReadOnly) {
+ _isReadOnly = isReadOnly;
+ }
+}
diff --git a/src/uml/qumlstructuralfeature.h b/src/uml/qumlstructuralfeature.h
index 08ebe914..306ced49 100644
--- a/src/uml/qumlstructuralfeature.h
+++ b/src/uml/qumlstructuralfeature.h
@@ -43,10 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstructuralfeature_p.h"
+#include <QtUml/QUmlTypedElement>
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlFeature>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,160 +54,24 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlType;
-class QUmlValueSpecification;
-
-class Q_UML_EXPORT QUmlStructuralFeature : public QObject, public UmlStructuralFeature
+class Q_UML_EXPORT QUmlStructuralFeature : public virtual QUmlTypedElement, public QUmlMultiplicityElement, public QUmlFeature
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [Feature]
- Q_PROPERTY(QSet<QUmlClassifier *> featuringClassifier READ featuringClassifier)
- Q_PROPERTY(bool isStatic READ isStatic)
-
- // Properties [StructuralFeature]
- Q_PROPERTY(bool isReadOnly READ isReadOnly)
-
public:
- Q_DECL_HIDDEN explicit QUmlStructuralFeature(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
+ virtual ~QUmlStructuralFeature();
- // Owned attributes [Feature]
- Q_INVOKABLE const QSet<QUmlClassifier *> featuringClassifier() const;
- Q_INVOKABLE bool isStatic() const;
-
- // Owned attributes [StructuralFeature]
- Q_INVOKABLE bool isReadOnly() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
+ // Owned attributes
+ bool isReadOnly() const;
+ void setReadOnly(bool isReadOnly);
- // Slots for owned attributes [Feature]
- void setStatic(bool isStatic);
+protected:
+ explicit QUmlStructuralFeature();
- // Slots for owned attributes [StructuralFeature]
- void setReadOnly(bool isReadOnly);
+ bool _isReadOnly;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStructuralFeature *)
-Q_DECLARE_METATYPE(QList<QUmlStructuralFeature *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStructuralFeature *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStructuralFeature) *)
QT_END_HEADER
diff --git a/src/uml/qumlstructuralfeatureaction.cpp b/src/uml/qumlstructuralfeatureaction.cpp
index ab5debec..183bcca4 100644
--- a/src/uml/qumlstructuralfeatureaction.cpp
+++ b/src/uml/qumlstructuralfeatureaction.cpp
@@ -40,526 +40,78 @@
****************************************************************************/
#include "qumlstructuralfeatureaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlStructuralFeature>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlStructuralFeatureAction
+ \class QUmlStructuralFeatureAction
\inmodule QtUml
\brief StructuralFeatureAction is an abstract class for all structural feature actions.
*/
-
-QUmlStructuralFeatureAction::QUmlStructuralFeatureAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStructuralFeatureAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStructuralFeatureAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStructuralFeatureAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStructuralFeatureAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStructuralFeatureAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStructuralFeatureAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStructuralFeatureAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStructuralFeatureAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlStructuralFeatureAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStructuralFeatureAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStructuralFeatureAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStructuralFeatureAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlStructuralFeatureAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlStructuralFeatureAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlStructuralFeatureAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlStructuralFeatureAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlStructuralFeatureAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlStructuralFeatureAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlStructuralFeatureAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlStructuralFeatureAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlStructuralFeatureAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlStructuralFeatureAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlStructuralFeatureAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlStructuralFeatureAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlStructuralFeatureAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlStructuralFeatureAction::localPrecondition() const
+QUmlStructuralFeatureAction::QUmlStructuralFeatureAction() :
+ _object(0),
+ _structuralFeature(0)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlStructuralFeatureAction::output() const
+QUmlStructuralFeatureAction::~QUmlStructuralFeatureAction()
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
}
-// OWNED ATTRIBUTES [StructuralFeatureAction]
+// OWNED ATTRIBUTES
/*!
Gives the input pin from which the object whose structural feature is to be read or written is obtained.
*/
-QUmlInputPin *QUmlStructuralFeatureAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
-}
-
-/*!
- Structural feature to be read.
- */
-QUmlStructuralFeature *QUmlStructuralFeatureAction::structuralFeature() const
-{
- return reinterpret_cast<QUmlStructuralFeature *>(_structuralFeature);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStructuralFeatureAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStructuralFeatureAction::mustBeOwned() const
+QUmlInputPin *
+QUmlStructuralFeatureAction::object() const
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStructuralFeatureAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _object;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStructuralFeatureAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStructuralFeatureAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlStructuralFeatureAction::setObject(QUmlInputPin *object)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStructuralFeatureAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// OPERATIONS [RedefinableElement]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlStructuralFeatureAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
/*!
- 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.
+ Structural feature to be read.
*/
-bool QUmlStructuralFeatureAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStructuralFeatureAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStructuralFeatureAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStructuralFeatureAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStructuralFeatureAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStructuralFeatureAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStructuralFeatureAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlStructuralFeatureAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStructuralFeatureAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlStructuralFeatureAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlStructuralFeatureAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStructuralFeatureAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStructuralFeatureAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlStructuralFeatureAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlStructuralFeatureAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlStructuralFeatureAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlStructuralFeatureAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlStructuralFeatureAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlStructuralFeatureAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlStructuralFeatureAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlStructuralFeatureAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlStructuralFeatureAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlStructuralFeatureAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlStructuralFeatureAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlStructuralFeatureAction::addLocalPostcondition(UmlConstraint *localPostcondition)
+QUmlStructuralFeature *
+QUmlStructuralFeatureAction::structuralFeature() const
{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ // This is a read-write association end
-void QUmlStructuralFeatureAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlStructuralFeatureAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlStructuralFeatureAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
-
-void QUmlStructuralFeatureAction::setObject(QUmlInputPin *object)
-{
- UmlStructuralFeatureAction::setObject(object);
+ return _structuralFeature;
}
void QUmlStructuralFeatureAction::setStructuralFeature(QUmlStructuralFeature *structuralFeature)
{
- UmlStructuralFeatureAction::setStructuralFeature(structuralFeature);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_structuralFeature != structuralFeature) {
+ _structuralFeature = structuralFeature;
+ if (structuralFeature->asQObject() && this->asQObject())
+ QObject::connect(structuralFeature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setStructuralFeature()));
+ }
+}
diff --git a/src/uml/qumlstructuralfeatureaction.h b/src/uml/qumlstructuralfeatureaction.h
index c9889abb..415e510e 100644
--- a/src/uml/qumlstructuralfeatureaction.h
+++ b/src/uml/qumlstructuralfeatureaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstructuralfeatureaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,186 +52,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
class QUmlStructuralFeature;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlStructuralFeatureAction : public QObject, public UmlStructuralFeatureAction
+class Q_UML_EXPORT QUmlStructuralFeatureAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StructuralFeatureAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlStructuralFeature * structuralFeature READ structuralFeature)
-
public:
- Q_DECL_HIDDEN explicit QUmlStructuralFeatureAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [StructuralFeatureAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlStructuralFeature *structuralFeature() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StructuralFeatureAction]
+ virtual ~QUmlStructuralFeatureAction();
+
+ // Owned attributes
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
+ QUmlStructuralFeature *structuralFeature() const;
void setStructuralFeature(QUmlStructuralFeature *structuralFeature);
+
+protected:
+ explicit QUmlStructuralFeatureAction();
+
+ QUmlInputPin *_object;
+ QUmlStructuralFeature *_structuralFeature;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStructuralFeatureAction *)
-Q_DECLARE_METATYPE(QList<QUmlStructuralFeatureAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStructuralFeatureAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStructuralFeatureAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlstructuredactivitynode.cpp b/src/uml/qumlstructuredactivitynode.cpp
index e45c1069..17c02d07 100644
--- a/src/uml/qumlstructuredactivitynode.cpp
+++ b/src/uml/qumlstructuredactivitynode.cpp
@@ -40,760 +40,307 @@
****************************************************************************/
#include "qumlstructuredactivitynode.h"
+#include "private/qumlstructuredactivitynodeobject_p.h"
+
#include <QtUml/QUmlActivity>
#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlVariable>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlStructuredActivityNode
+ \class QUmlStructuredActivityNode
\inmodule QtUml
\brief A structured activity node is an executable activity node that may have an expansion into subordinate nodes as an activity group. The subordinate nodes must belong to only one structured activity node, although they may be nested.Because of the concurrent nature of the execution of actions within and across activities, it can be difficult to guarantee the consistent access and modification of object memory. In order to avoid race conditions or other concurrency-related problems, it is sometimes necessary to isolate the effects of a group of actions from the effects of actions outside the group. This may be indicated by setting the mustIsolate attribute to true on a structured activity node. If a structured activity node is "isolated," then any object used by an action within the node cannot be accessed by any action outside the node until the structured activity node as a whole completes. Any concurrent actions that would result in accessing such objects are required to have their execution deferred until the completion of the node.
*/
-
-QUmlStructuredActivityNode::QUmlStructuredActivityNode(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStructuredActivityNode::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStructuredActivityNode::ownedElement() const
+QUmlStructuredActivityNode::QUmlStructuredActivityNode(bool createQObject) :
+ _activity(0),
+ _mustIsolate(false)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (createQObject)
+ _qObject = new QUmlStructuredActivityNodeObject(this);
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStructuredActivityNode::owner() const
+QUmlStructuredActivityNode::~QUmlStructuredActivityNode()
{
- return reinterpret_cast<QUmlElement *>(_owner);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [NamedElement]
+// OWNED ATTRIBUTES
/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStructuredActivityNode::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStructuredActivityNode::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStructuredActivityNode::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStructuredActivityNode::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStructuredActivityNode::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlStructuredActivityNode::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStructuredActivityNode::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStructuredActivityNode::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStructuredActivityNode::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlStructuredActivityNode::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
+ Activity immediately containing the node.
*/
-const QSet<QUmlInterruptibleActivityRegion *> QUmlStructuredActivityNode::inInterruptibleRegion() const
+QUmlActivity *
+QUmlStructuredActivityNode::activity() const
{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
+ // This is a read-write association end
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlStructuredActivityNode::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
+ return _activity;
}
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlStructuredActivityNode::inStructuredNode() const
+void QUmlStructuredActivityNode::setActivity(QUmlActivity *activity)
{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
+ // This is a read-write association end
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlStructuredActivityNode::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
+ if (_activity != activity) {
+ _activity = activity;
+ if (activity->asQObject() && this->asQObject())
+ QObject::connect(activity->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setActivity()));
+ }
}
/*!
- Edges that have the node as source.
+ Edges immediately contained in the structured node.
*/
-const QSet<QUmlActivityEdge *> QUmlStructuredActivityNode::outgoing() const
+const QSet<QUmlActivityEdge *>
+QUmlStructuredActivityNode::edge() const
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
+ // This is a read-write association end
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlStructuredActivityNode::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ return _edge;
}
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlStructuredActivityNode::handler() const
+void QUmlStructuredActivityNode::addEdge(QUmlActivityEdge *edge)
{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [Action]
+ if (!_edge.contains(edge)) {
+ _edge.insert(edge);
+ if (edge->asQObject() && this->asQObject())
+ QObject::connect(edge->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeEdge(QObject *)));
+ edge->asQObject()->setParent(this->asQObject());
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlStructuredActivityNode::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
+ // Adjust subsetted properties
+ addContainedEdge(edge);
+ addOwnedElement(edge);
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlStructuredActivityNode::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ // Adjust opposite properties
+ if (edge) {
+ edge->setInStructuredNode(this);
+ }
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlStructuredActivityNode::isLocallyReentrant() const
+void QUmlStructuredActivityNode::removeEdge(QUmlActivityEdge *edge)
{
- return _isLocallyReentrant;
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlStructuredActivityNode::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
+ if (_edge.contains(edge)) {
+ _edge.remove(edge);
+ if (edge->asQObject())
+ edge->asQObject()->setParent(0);
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlStructuredActivityNode::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
+ // Adjust subsetted properties
+ removeContainedEdge(edge);
+ removeOwnedElement(edge);
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlStructuredActivityNode::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
+ // Adjust opposite properties
+ if (edge) {
+ edge->setInStructuredNode(0);
+ }
+ }
}
-// OWNED ATTRIBUTES [Namespace]
-
/*!
- References the ElementImports owned by the Namespace.
+ If true, then the actions in the node execute in isolation from actions outside the node.
*/
-const QSet<QUmlElementImport *> QUmlStructuredActivityNode::elementImport() const
+bool
+QUmlStructuredActivityNode::mustIsolate() const
{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
+ // This is a read-write property
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlStructuredActivityNode::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _mustIsolate;
}
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlStructuredActivityNode::member() const
+void QUmlStructuredActivityNode::setMustIsolate(bool mustIsolate)
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
+ // This is a read-write property
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlStructuredActivityNode::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
+ if (_mustIsolate != mustIsolate) {
+ _mustIsolate = mustIsolate;
+ }
}
/*!
- Specifies a set of Constraints owned by this Namespace.
+ Nodes immediately contained in the group.
*/
-const QSet<QUmlConstraint *> QUmlStructuredActivityNode::ownedRule() const
+const QSet<QUmlActivityNode *>
+QUmlStructuredActivityNode::node() const
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
+ // This is a read-write association end
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlStructuredActivityNode::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
+ return _node;
}
-// OWNED ATTRIBUTES [ActivityGroup]
-
-/*!
- Edges immediately contained in the group.
- */
-const QSet<QUmlActivityEdge *> QUmlStructuredActivityNode::containedEdge() const
+void QUmlStructuredActivityNode::addNode(QUmlActivityNode *node)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_containedEdge));
-}
+ // This is a read-write association end
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlStructuredActivityNode::containedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_containedNode));
-}
+ if (!_node.contains(node)) {
+ _node.insert(node);
+ if (node->asQObject() && this->asQObject())
+ QObject::connect(node->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeNode(QObject *)));
+ node->asQObject()->setParent(this->asQObject());
-/*!
- Groups immediately contained in the group.
- */
-const QSet<QUmlActivityGroup *> QUmlStructuredActivityNode::subgroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_subgroup));
-}
+ // Adjust subsetted properties
+ addContainedNode(node);
+ addOwnedElement(node);
-/*!
- Group immediately containing the group.
- */
-QUmlActivityGroup *QUmlStructuredActivityNode::superGroup() const
-{
- return reinterpret_cast<QUmlActivityGroup *>(_superGroup);
+ // Adjust opposite properties
+ if (node) {
+ node->setInStructuredNode(this);
+ }
+ }
}
-// OWNED ATTRIBUTES [StructuredActivityNode]
-
-/*!
- Activity immediately containing the node.
- */
-QUmlActivity *QUmlStructuredActivityNode::activity() const
+void QUmlStructuredActivityNode::removeNode(QUmlActivityNode *node)
{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
+ // This is a read-write association end
-/*!
- Edges immediately contained in the structured node.
- */
-const QSet<QUmlActivityEdge *> QUmlStructuredActivityNode::edge() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_edge));
-}
+ if (_node.contains(node)) {
+ _node.remove(node);
+ if (node->asQObject())
+ node->asQObject()->setParent(0);
-/*!
- If true, then the actions in the node execute in isolation from actions outside the node.
- */
-bool QUmlStructuredActivityNode::mustIsolate() const
-{
- return _mustIsolate;
-}
+ // Adjust subsetted properties
+ removeContainedNode(node);
+ removeOwnedElement(node);
-/*!
- Nodes immediately contained in the group.
- */
-const QSet<QUmlActivityNode *> QUmlStructuredActivityNode::node() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_node));
+ // Adjust opposite properties
+ if (node) {
+ node->setInStructuredNode(0);
+ }
+ }
}
-const QSet<QUmlInputPin *> QUmlStructuredActivityNode::structuredNodeInput() const
+const QSet<QUmlInputPin *>
+QUmlStructuredActivityNode::structuredNodeInput() const
{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_structuredNodeInput));
-}
+ // This is a read-write association end
-const QSet<QUmlOutputPin *> QUmlStructuredActivityNode::structuredNodeOutput() const
-{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_structuredNodeOutput));
+ return _structuredNodeInput;
}
-/*!
- A variable defined in the scope of the structured activity node. It has no value and may not be accessed
- */
-const QSet<QUmlVariable *> QUmlStructuredActivityNode::variable() const
+void QUmlStructuredActivityNode::addStructuredNodeInput(QUmlInputPin *structuredNodeInput)
{
- return *(reinterpret_cast<const QSet<QUmlVariable *> *>(&_variable));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_structuredNodeInput.contains(structuredNodeInput)) {
+ _structuredNodeInput.insert(structuredNodeInput);
+ if (structuredNodeInput->asQObject() && this->asQObject())
+ QObject::connect(structuredNodeInput->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeStructuredNodeInput(QObject *)));
+ structuredNodeInput->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStructuredActivityNode::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ addInput(structuredNodeInput);
+ }
}
-/*!
- 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.
- */
-bool QUmlStructuredActivityNode::mustBeOwned() const
+void QUmlStructuredActivityNode::removeStructuredNodeInput(QUmlInputPin *structuredNodeInput)
{
- return UmlElement::mustBeOwned();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_structuredNodeInput.contains(structuredNodeInput)) {
+ _structuredNodeInput.remove(structuredNodeInput);
+ if (structuredNodeInput->asQObject())
+ structuredNodeInput->asQObject()->setParent(0);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStructuredActivityNode::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ removeInput(structuredNodeInput);
+ }
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStructuredActivityNode::allOwningPackages() const
+const QSet<QUmlOutputPin *>
+QUmlStructuredActivityNode::structuredNodeOutput() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlStructuredActivityNode::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _structuredNodeOutput;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStructuredActivityNode::separator() const
+void QUmlStructuredActivityNode::addStructuredNodeOutput(QUmlOutputPin *structuredNodeOutput)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
+ if (!_structuredNodeOutput.contains(structuredNodeOutput)) {
+ _structuredNodeOutput.insert(structuredNodeOutput);
+ if (structuredNodeOutput->asQObject() && this->asQObject())
+ QObject::connect(structuredNodeOutput->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeStructuredNodeOutput(QObject *)));
+ structuredNodeOutput->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlStructuredActivityNode::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ addOutput(structuredNodeOutput);
+ }
}
-/*!
- 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.
- */
-bool QUmlStructuredActivityNode::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlStructuredActivityNode::removeStructuredNodeOutput(QUmlOutputPin *structuredNodeOutput)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
+ if (_structuredNodeOutput.contains(structuredNodeOutput)) {
+ _structuredNodeOutput.remove(structuredNodeOutput);
+ if (structuredNodeOutput->asQObject())
+ structuredNodeOutput->asQObject()->setParent(0);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlStructuredActivityNode::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlStructuredActivityNode::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ // Adjust subsetted properties
+ removeOutput(structuredNodeOutput);
+ }
}
/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlStructuredActivityNode::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
+ A variable defined in the scope of the structured activity node. It has no value and may not be accessed
*/
-bool QUmlStructuredActivityNode::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStructuredActivityNode::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStructuredActivityNode::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStructuredActivityNode::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStructuredActivityNode::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStructuredActivityNode::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStructuredActivityNode::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlStructuredActivityNode::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStructuredActivityNode::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlStructuredActivityNode::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStructuredActivityNode::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlStructuredActivityNode::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlStructuredActivityNode::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlStructuredActivityNode::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlStructuredActivityNode::addIncoming(UmlActivityEdge *incoming)
+const QSet<QUmlVariable *>
+QUmlStructuredActivityNode::variable() const
{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlStructuredActivityNode::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
+ // This is a read-write association end
-void QUmlStructuredActivityNode::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlStructuredActivityNode::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlStructuredActivityNode::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
+ return _variable;
}
-void QUmlStructuredActivityNode::removeRedefinedNode(UmlActivityNode *redefinedNode)
+void QUmlStructuredActivityNode::addVariable(QUmlVariable *variable)
{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
+ if (!_variable.contains(variable)) {
+ _variable.insert(variable);
+ if (variable->asQObject() && this->asQObject())
+ QObject::connect(variable->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeVariable(QObject *)));
+ variable->asQObject()->setParent(this->asQObject());
-void QUmlStructuredActivityNode::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
+ // Adjust subsetted properties
+ addOwnedMember(variable);
-void QUmlStructuredActivityNode::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
+ // Adjust opposite properties
+ if (variable) {
+ variable->setScope(this);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlStructuredActivityNode::setLocallyReentrant(bool isLocallyReentrant)
+void QUmlStructuredActivityNode::removeVariable(QUmlVariable *variable)
{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
+ // This is a read-write association end
-void QUmlStructuredActivityNode::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
+ if (_variable.contains(variable)) {
+ _variable.remove(variable);
+ if (variable->asQObject())
+ variable->asQObject()->setParent(0);
-void QUmlStructuredActivityNode::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(variable);
-void QUmlStructuredActivityNode::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
+ // Adjust opposite properties
+ if (variable) {
+ variable->setScope(0);
+ }
+ }
}
-void QUmlStructuredActivityNode::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlStructuredActivityNode::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlStructuredActivityNode::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlStructuredActivityNode::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlStructuredActivityNode::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlStructuredActivityNode::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlStructuredActivityNode::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityGroup]
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuredActivityNode]
-
-void QUmlStructuredActivityNode::setActivity(QUmlActivity *activity)
-{
- UmlStructuredActivityNode::setActivity(activity);
-}
-
-void QUmlStructuredActivityNode::addEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::addEdge(edge);
-}
-
-void QUmlStructuredActivityNode::removeEdge(UmlActivityEdge *edge)
-{
- UmlStructuredActivityNode::removeEdge(edge);
-}
-
-void QUmlStructuredActivityNode::setMustIsolate(bool mustIsolate)
-{
- UmlStructuredActivityNode::setMustIsolate(mustIsolate);
-}
-
-void QUmlStructuredActivityNode::addNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::addNode(node);
-}
-
-void QUmlStructuredActivityNode::removeNode(UmlActivityNode *node)
-{
- UmlStructuredActivityNode::removeNode(node);
-}
-
-void QUmlStructuredActivityNode::addStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::addStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlStructuredActivityNode::removeStructuredNodeInput(UmlInputPin *structuredNodeInput)
-{
- UmlStructuredActivityNode::removeStructuredNodeInput(structuredNodeInput);
-}
-
-void QUmlStructuredActivityNode::addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- UmlStructuredActivityNode::addStructuredNodeOutput(structuredNodeOutput);
-}
-
-void QUmlStructuredActivityNode::removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput)
-{
- UmlStructuredActivityNode::removeStructuredNodeOutput(structuredNodeOutput);
-}
-
-void QUmlStructuredActivityNode::addVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::addVariable(variable);
-}
-
-void QUmlStructuredActivityNode::removeVariable(UmlVariable *variable)
-{
- UmlStructuredActivityNode::removeVariable(variable);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstructuredactivitynode.h b/src/uml/qumlstructuredactivitynode.h
index 8c2f481e..06bce6b5 100644
--- a/src/uml/qumlstructuredactivitynode.h
+++ b/src/uml/qumlstructuredactivitynode.h
@@ -43,10 +43,10 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstructuredactivitynode_p.h"
+#include <QtUml/QUmlAction>
+#include <QtUml/QUmlNamespace>
+#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -56,247 +56,51 @@ QT_MODULE(QtUml)
class QUmlActivity;
class QUmlActivityEdge;
-class QUmlActivityGroup;
class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
class QUmlVariable;
-class Q_UML_EXPORT QUmlStructuredActivityNode : public QObject, public UmlStructuredActivityNode
+class Q_UML_EXPORT QUmlStructuredActivityNode : public QUmlAction, public QUmlNamespace, public QUmlActivityGroup
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ActivityGroup]
- Q_PROPERTY(QSet<QUmlActivityEdge *> containedEdge READ containedEdge)
- Q_PROPERTY(QSet<QUmlActivityNode *> containedNode READ containedNode)
- Q_PROPERTY(QSet<QUmlActivityGroup *> subgroup READ subgroup)
- Q_PROPERTY(QUmlActivityGroup * superGroup READ superGroup)
-
- // Properties [StructuredActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityEdge *> edge READ edge)
- Q_PROPERTY(bool mustIsolate READ mustIsolate)
- Q_PROPERTY(QSet<QUmlActivityNode *> node READ node)
- Q_PROPERTY(QSet<QUmlInputPin *> structuredNodeInput READ structuredNodeInput)
- Q_PROPERTY(QSet<QUmlOutputPin *> structuredNodeOutput READ structuredNodeOutput)
- Q_PROPERTY(QSet<QUmlVariable *> variable READ variable)
-
public:
- Q_INVOKABLE explicit QUmlStructuredActivityNode(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ActivityGroup]
- Q_INVOKABLE const QSet<QUmlActivityEdge *> containedEdge() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> containedNode() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> subgroup() const;
- Q_INVOKABLE QUmlActivityGroup *superGroup() const;
-
- // Owned attributes [StructuredActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> edge() const;
- Q_INVOKABLE bool mustIsolate() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> node() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> structuredNodeInput() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> structuredNodeOutput() const;
- Q_INVOKABLE const QSet<QUmlVariable *> variable() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ActivityGroup]
+ explicit QUmlStructuredActivityNode(bool createQObject = true);
+ virtual ~QUmlStructuredActivityNode();
- // Slots for owned attributes [StructuredActivityNode]
+ // Owned attributes
+ QUmlActivity *activity() const;
void setActivity(QUmlActivity *activity);
- void addEdge(UmlActivityEdge *edge);
- void removeEdge(UmlActivityEdge *edge);
+ const QSet<QUmlActivityEdge *> edge() const;
+ void addEdge(QUmlActivityEdge *edge);
+ void removeEdge(QUmlActivityEdge *edge);
+ bool mustIsolate() const;
void setMustIsolate(bool mustIsolate);
- void addNode(UmlActivityNode *node);
- void removeNode(UmlActivityNode *node);
- void addStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void removeStructuredNodeInput(UmlInputPin *structuredNodeInput);
- void addStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void removeStructuredNodeOutput(UmlOutputPin *structuredNodeOutput);
- void addVariable(UmlVariable *variable);
- void removeVariable(UmlVariable *variable);
+ const QSet<QUmlActivityNode *> node() const;
+ void addNode(QUmlActivityNode *node);
+ void removeNode(QUmlActivityNode *node);
+ const QSet<QUmlInputPin *> structuredNodeInput() const;
+ void addStructuredNodeInput(QUmlInputPin *structuredNodeInput);
+ void removeStructuredNodeInput(QUmlInputPin *structuredNodeInput);
+ const QSet<QUmlOutputPin *> structuredNodeOutput() const;
+ void addStructuredNodeOutput(QUmlOutputPin *structuredNodeOutput);
+ void removeStructuredNodeOutput(QUmlOutputPin *structuredNodeOutput);
+ const QSet<QUmlVariable *> variable() const;
+ void addVariable(QUmlVariable *variable);
+ void removeVariable(QUmlVariable *variable);
+
+protected:
+ QUmlActivity *_activity;
+ QSet<QUmlActivityEdge *> _edge;
+ bool _mustIsolate;
+ QSet<QUmlActivityNode *> _node;
+ QSet<QUmlInputPin *> _structuredNodeInput;
+ QSet<QUmlOutputPin *> _structuredNodeOutput;
+ QSet<QUmlVariable *> _variable;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStructuredActivityNode *)
-Q_DECLARE_METATYPE(QList<QUmlStructuredActivityNode *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStructuredActivityNode *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStructuredActivityNode) *)
QT_END_HEADER
diff --git a/src/uml/qumlstructuredclassifier.cpp b/src/uml/qumlstructuredclassifier.cpp
index 1be4f6a1..01d87095 100644
--- a/src/uml/qumlstructuredclassifier.cpp
+++ b/src/uml/qumlstructuredclassifier.cpp
@@ -40,881 +40,184 @@
****************************************************************************/
#include "qumlstructuredclassifier.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConnectableElement>
#include <QtUml/QUmlConnector>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlUseCase>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlStructuredClassifier
+ \class QUmlStructuredClassifier
\inmodule QtUml
\brief 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.
*/
-
-QUmlStructuredClassifier::QUmlStructuredClassifier(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlStructuredClassifier::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlStructuredClassifier::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlStructuredClassifier::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlStructuredClassifier::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlStructuredClassifier::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlStructuredClassifier::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlStructuredClassifier::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlStructuredClassifier::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlStructuredClassifier::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlStructuredClassifier::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlStructuredClassifier::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlStructuredClassifier::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlStructuredClassifier::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlStructuredClassifier::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlStructuredClassifier::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlStructuredClassifier::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlStructuredClassifier::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlStructuredClassifier::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlStructuredClassifier::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlStructuredClassifier::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlStructuredClassifier::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlStructuredClassifier::attribute() const
-{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
-}
-
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlStructuredClassifier::collaborationUse() const
-{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
-}
-
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlStructuredClassifier::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
-
-/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlStructuredClassifier::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlStructuredClassifier::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlStructuredClassifier::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlStructuredClassifier::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlStructuredClassifier::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlStructuredClassifier::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlStructuredClassifier::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlStructuredClassifier::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
- */
-QUmlCollaborationUse *QUmlStructuredClassifier::representation() const
-{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
-
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlStructuredClassifier::substitution() const
+QUmlStructuredClassifier::QUmlStructuredClassifier()
{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlStructuredClassifier::templateParameter() const
+QUmlStructuredClassifier::~QUmlStructuredClassifier()
{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
}
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlStructuredClassifier::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
-
-// OWNED ATTRIBUTES [StructuredClassifier]
+// OWNED ATTRIBUTES
/*!
References the properties owned by the classifier.
*/
-const QList<QUmlProperty *> QUmlStructuredClassifier::ownedAttribute() const
-{
- return *(reinterpret_cast<const QList<QUmlProperty *> *>(&_ownedAttribute));
-}
-
-/*!
- References the connectors owned by the classifier.
- */
-const QSet<QUmlConnector *> QUmlStructuredClassifier::ownedConnector() const
-{
- return *(reinterpret_cast<const QSet<QUmlConnector *> *>(&_ownedConnector));
-}
-
-/*!
- References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
- */
-const QSet<QUmlProperty *> QUmlStructuredClassifier::part() const
-{
- QSet<QUmlProperty *> r;
- foreach (UmlProperty *element, UmlStructuredClassifier::part())
- r.insert(reinterpret_cast<QUmlProperty *>(element));
- return r;
-}
-
-/*!
- References the roles that instances may play in this classifier.
- */
-const QSet<QUmlConnectableElement *> QUmlStructuredClassifier::role() const
+const QList<QUmlProperty *>
+QUmlStructuredClassifier::ownedAttribute() const
{
- return *(reinterpret_cast<const QSet<QUmlConnectableElement *> *>(&_role));
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlStructuredClassifier::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _ownedAttribute;
}
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlStructuredClassifier::allNamespaces() const
+void QUmlStructuredClassifier::addOwnedAttribute(QUmlProperty *ownedAttribute)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlStructuredClassifier::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (!_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.append(ownedAttribute);
+ if (ownedAttribute->asQObject() && this->asQObject())
+ QObject::connect(ownedAttribute->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedAttribute(QObject *)));
+ ownedAttribute->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ addAttribute(ownedAttribute);
+ addOwnedMember(ownedAttribute);
+ addRole(ownedAttribute);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlStructuredClassifier::separator() const
+void QUmlStructuredClassifier::removeOwnedAttribute(QUmlProperty *ownedAttribute)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [Namespace]
+ if (_ownedAttribute.contains(ownedAttribute)) {
+ _ownedAttribute.removeAll(ownedAttribute);
+ if (ownedAttribute->asQObject())
+ ownedAttribute->asQObject()->setParent(0);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlStructuredClassifier::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeAttribute(ownedAttribute);
+ removeOwnedMember(ownedAttribute);
+ removeRole(ownedAttribute);
+ }
}
/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
+ References the connectors owned by the classifier.
*/
-QSet<QString> QUmlStructuredClassifier::getNamesOfMember(QUmlNamedElement *element) const
+const QSet<QUmlConnector *>
+QUmlStructuredClassifier::ownedConnector() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlStructuredClassifier::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _ownedConnector;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlStructuredClassifier::membersAreDistinguishable() const
+void QUmlStructuredClassifier::addOwnedConnector(QUmlConnector *ownedConnector)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (!_ownedConnector.contains(ownedConnector)) {
+ _ownedConnector.insert(ownedConnector);
+ if (ownedConnector->asQObject() && this->asQObject())
+ QObject::connect(ownedConnector->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedConnector(QObject *)));
+ ownedConnector->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust subsetted properties
+ addFeature(ownedConnector);
+ addOwnedMember(ownedConnector);
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlStructuredClassifier::isTemplateParameter() const
+void QUmlStructuredClassifier::removeOwnedConnector(QUmlConnector *ownedConnector)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (_ownedConnector.contains(ownedConnector)) {
+ _ownedConnector.remove(ownedConnector);
+ if (ownedConnector->asQObject())
+ ownedConnector->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeFeature(ownedConnector);
+ removeOwnedMember(ownedConnector);
+ }
}
/*!
- 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.
- */
-bool QUmlStructuredClassifier::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [TemplateableElement]
-
-/*!
- 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.
+ References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true.
*/
-QSet<QUmlParameterableElement *> QUmlStructuredClassifier::parameterableElements() const
+const QSet<QUmlProperty *>
+QUmlStructuredClassifier::part() const
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
+ // This is a read-only derived association end
-// OPERATIONS [Classifier]
+ qWarning("UmlStructuredClassifier::part(): to be implemented (this is a derived association end)");
-/*!
- 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.
- */
-QSet<QUmlFeature *> QUmlStructuredClassifier::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
+ return QSet<QUmlProperty *>();
}
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlStructuredClassifier::allParents() const
+void QUmlStructuredClassifier::addPart(QUmlProperty *part)
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
-}
-
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::hasVisibilityOf(QUmlNamedElement *n) const
-{
- return UmlClassifier::hasVisibilityOf(n);
-}
+ qWarning("UmlStructuredClassifier::part(): to be implemented (this is a derived association end)");
+ Q_UNUSED(part);
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlStructuredClassifier::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlStructuredClassifier::inheritableMembers(QUmlClassifier *c) const
+void QUmlStructuredClassifier::removePart(QUmlProperty *part)
{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlStructuredClassifier::isTemplate() const
-{
- return UmlClassifier::isTemplate();
-}
+ qWarning("UmlStructuredClassifier::part(): to be implemented (this is a derived association end)");
+ Q_UNUSED(part);
-/*!
- 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.
- */
-bool QUmlStructuredClassifier::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
+ References the roles that instances may play in this classifier.
*/
-QSet<QUmlClassifier *> QUmlStructuredClassifier::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlStructuredClassifier::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlStructuredClassifier::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlStructuredClassifier::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlStructuredClassifier::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlStructuredClassifier::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlStructuredClassifier::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlStructuredClassifier::addElementImport(UmlElementImport *elementImport)
+const QSet<QUmlConnectableElement *>
+QUmlStructuredClassifier::role() const
{
- UmlNamespace::addElementImport(elementImport);
-}
-
-void QUmlStructuredClassifier::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlStructuredClassifier::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlStructuredClassifier::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlStructuredClassifier::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlStructuredClassifier::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlStructuredClassifier::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlStructuredClassifier::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlStructuredClassifier::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlStructuredClassifier::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlStructuredClassifier::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlStructuredClassifier::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlStructuredClassifier::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlStructuredClassifier::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlStructuredClassifier::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlStructuredClassifier::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlStructuredClassifier::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlStructuredClassifier::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlStructuredClassifier::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlStructuredClassifier::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlStructuredClassifier::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlStructuredClassifier::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStructuredClassifier::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlStructuredClassifier::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlStructuredClassifier::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
+ // This is a read-only derived union association end
-void QUmlStructuredClassifier::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStructuredClassifier::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlStructuredClassifier::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlStructuredClassifier::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlStructuredClassifier::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
+ return _role;
}
-void QUmlStructuredClassifier::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
+void QUmlStructuredClassifier::addRole(QUmlConnectableElement *role)
{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
+ // This is a read-only derived union association end
-void QUmlStructuredClassifier::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
+ if (!_role.contains(role)) {
+ _role.insert(role);
+ if (role->asQObject() && this->asQObject())
+ QObject::connect(role->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeRole(QObject *)));
-void QUmlStructuredClassifier::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
+ // Adjust subsetted properties
+ addMember(role);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [StructuredClassifier]
-
-void QUmlStructuredClassifier::addOwnedAttribute(UmlProperty *ownedAttribute)
+void QUmlStructuredClassifier::removeRole(QUmlConnectableElement *role)
{
- UmlStructuredClassifier::addOwnedAttribute(ownedAttribute);
-}
+ // This is a read-only derived union association end
-void QUmlStructuredClassifier::removeOwnedAttribute(UmlProperty *ownedAttribute)
-{
- UmlStructuredClassifier::removeOwnedAttribute(ownedAttribute);
-}
-
-void QUmlStructuredClassifier::addOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::addOwnedConnector(ownedConnector);
-}
+ if (_role.contains(role)) {
+ _role.remove(role);
-void QUmlStructuredClassifier::removeOwnedConnector(UmlConnector *ownedConnector)
-{
- UmlStructuredClassifier::removeOwnedConnector(ownedConnector);
+ // Adjust subsetted properties
+ removeMember(role);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlstructuredclassifier.h b/src/uml/qumlstructuredclassifier.h
index 5ef611ea..46a1abcc 100644
--- a/src/uml/qumlstructuredclassifier.h
+++ b/src/uml/qumlstructuredclassifier.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlstructuredclassifier_p.h"
+#include <QtUml/QUmlClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,276 +52,40 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
class QUmlConnectableElement;
class QUmlConnector;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class QUmlUseCase;
-class Q_UML_EXPORT QUmlStructuredClassifier : public QObject, public UmlStructuredClassifier
+class Q_UML_EXPORT QUmlStructuredClassifier : public virtual QUmlClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [StructuredClassifier]
- Q_PROPERTY(QList<QUmlProperty *> ownedAttribute READ ownedAttribute)
- Q_PROPERTY(QSet<QUmlConnector *> ownedConnector READ ownedConnector)
- Q_PROPERTY(QSet<QUmlProperty *> part READ part)
- Q_PROPERTY(QSet<QUmlConnectableElement *> role READ role)
-
public:
- Q_DECL_HIDDEN explicit QUmlStructuredClassifier(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [StructuredClassifier]
- Q_INVOKABLE const QList<QUmlProperty *> ownedAttribute() const;
- Q_INVOKABLE const QSet<QUmlConnector *> ownedConnector() const;
- Q_INVOKABLE const QSet<QUmlProperty *> part() const;
- Q_INVOKABLE const QSet<QUmlConnectableElement *> role() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [StructuredClassifier]
- void addOwnedAttribute(UmlProperty *ownedAttribute);
- void removeOwnedAttribute(UmlProperty *ownedAttribute);
- void addOwnedConnector(UmlConnector *ownedConnector);
- void removeOwnedConnector(UmlConnector *ownedConnector);
+ virtual ~QUmlStructuredClassifier();
+
+ // Owned attributes
+ const QList<QUmlProperty *> ownedAttribute() const;
+ void addOwnedAttribute(QUmlProperty *ownedAttribute);
+ void removeOwnedAttribute(QUmlProperty *ownedAttribute);
+ const QSet<QUmlConnector *> ownedConnector() const;
+ void addOwnedConnector(QUmlConnector *ownedConnector);
+ void removeOwnedConnector(QUmlConnector *ownedConnector);
+ const QSet<QUmlProperty *> part() const;
+ Q_DECL_HIDDEN void addPart(QUmlProperty *part);
+ Q_DECL_HIDDEN void removePart(QUmlProperty *part);
+ const QSet<QUmlConnectableElement *> role() const;
+ Q_DECL_HIDDEN void addRole(QUmlConnectableElement *role);
+ Q_DECL_HIDDEN void removeRole(QUmlConnectableElement *role);
+
+protected:
+ explicit QUmlStructuredClassifier();
+
+ QList<QUmlProperty *> _ownedAttribute;
+ QSet<QUmlConnector *> _ownedConnector;
+ QSet<QUmlConnectableElement *> _role;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlStructuredClassifier *)
-Q_DECLARE_METATYPE(QList<QUmlStructuredClassifier *> *)
-Q_DECLARE_METATYPE(QSet<QUmlStructuredClassifier *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlStructuredClassifier) *)
QT_END_HEADER
diff --git a/src/uml/qumlsubstitution.cpp b/src/uml/qumlsubstitution.cpp
index 477713c8..360d8335 100644
--- a/src/uml/qumlsubstitution.cpp
+++ b/src/uml/qumlsubstitution.cpp
@@ -40,377 +40,94 @@
****************************************************************************/
#include "qumlsubstitution.h"
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOpaqueExpression>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumlsubstitutionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlClassifier>
/*!
- \class UmlSubstitution
+ \class QUmlSubstitution
\inmodule QtUml
\brief A substitution is a relationship between two classifiers signifies that the substituting classifier complies with the contract specified by the contract classifier. This implies that instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.
*/
-
-QUmlSubstitution::QUmlSubstitution(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlSubstitution::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlSubstitution::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlSubstitution::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlSubstitution::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlSubstitution::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlSubstitution::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlSubstitution::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlSubstitution::nameExpression() const
+QUmlSubstitution::QUmlSubstitution(bool createQObject) :
+ QUmlRealization(false),
+ _contract(0),
+ _substitutingClassifier(0)
{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
+ if (createQObject)
+ _qObject = new QUmlSubstitutionObject(this);
}
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlSubstitution::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlSubstitution::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlSubstitution::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlSubstitution::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlSubstitution::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlSubstitution::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlSubstitution::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlSubstitution::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OWNED ATTRIBUTES [Abstraction]
-
-/*!
- 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.
- */
-QUmlOpaqueExpression *QUmlSubstitution::mapping() const
+QUmlSubstitution::~QUmlSubstitution()
{
- return reinterpret_cast<QUmlOpaqueExpression *>(_mapping);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Substitution]
+// OWNED ATTRIBUTES
/*!
The contract with which the substituting classifier complies.
*/
-QUmlClassifier *QUmlSubstitution::contract() const
+QUmlClassifier *
+QUmlSubstitution::contract() const
{
- return reinterpret_cast<QUmlClassifier *>(_contract);
-}
-
-/*!
- Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.
- */
-QUmlClassifier *QUmlSubstitution::substitutingClassifier() const
-{
- return reinterpret_cast<QUmlClassifier *>(_substitutingClassifier);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlSubstitution::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _contract;
}
-/*!
- 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.
- */
-bool QUmlSubstitution::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlSubstitution::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlSubstitution::isTemplateParameter() const
+void QUmlSubstitution::setContract(QUmlClassifier *contract)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [NamedElement]
+ if (_contract != contract) {
+ // Adjust subsetted properties
+ removeSupplier(_contract);
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlSubstitution::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ _contract = contract;
+ if (contract->asQObject() && this->asQObject())
+ QObject::connect(contract->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setContract()));
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlSubstitution::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ // Adjust subsetted properties
+ if (contract) {
+ addSupplier(contract);
+ }
+ }
}
/*!
- 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.
- */
-bool QUmlSubstitution::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ Instances of the substituting classifier are runtime substitutable where instances of the contract classifier are expected.
*/
-QString QUmlSubstitution::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlSubstitution::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlSubstitution::removeOwnedComment(UmlComment *ownedComment)
+QUmlClassifier *
+QUmlSubstitution::substitutingClassifier() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlSubstitution::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlSubstitution::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlSubstitution::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlSubstitution::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlSubstitution::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlSubstitution::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlSubstitution::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlSubstitution::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlSubstitution::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
+ // This is a read-write association end
-void QUmlSubstitution::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
+ return _substitutingClassifier;
}
-void QUmlSubstitution::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Abstraction]
-
-void QUmlSubstitution::setMapping(QUmlOpaqueExpression *mapping)
+void QUmlSubstitution::setSubstitutingClassifier(QUmlClassifier *substitutingClassifier)
{
- UmlAbstraction::setMapping(mapping);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Substitution]
+ if (_substitutingClassifier != substitutingClassifier) {
+ // Adjust subsetted properties
+ removeClient(_substitutingClassifier);
-void QUmlSubstitution::setContract(QUmlClassifier *contract)
-{
- UmlSubstitution::setContract(contract);
-}
+ _substitutingClassifier = substitutingClassifier;
+ if (substitutingClassifier->asQObject() && this->asQObject())
+ QObject::connect(substitutingClassifier->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSubstitutingClassifier()));
-void QUmlSubstitution::setSubstitutingClassifier(QUmlClassifier *substitutingClassifier)
-{
- UmlSubstitution::setSubstitutingClassifier(substitutingClassifier);
+ // Adjust subsetted properties
+ setOwner(substitutingClassifier);
+ if (substitutingClassifier) {
+ addClient(substitutingClassifier);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlsubstitution.h b/src/uml/qumlsubstitution.h
index 7fd91e26..101280d8 100644
--- a/src/uml/qumlsubstitution.h
+++ b/src/uml/qumlsubstitution.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlsubstitution_p.h"
+#include <QtUml/QUmlRealization>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -55,154 +53,27 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOpaqueExpression;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlSubstitution : public QObject, public UmlSubstitution
+class Q_UML_EXPORT QUmlSubstitution : public QUmlRealization
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
- // Properties [Abstraction]
- Q_PROPERTY(QUmlOpaqueExpression * mapping READ mapping)
-
- // Properties [Substitution]
- Q_PROPERTY(QUmlClassifier * contract READ contract)
- Q_PROPERTY(QUmlClassifier * substitutingClassifier READ substitutingClassifier)
-
public:
- Q_INVOKABLE explicit QUmlSubstitution(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
+ explicit QUmlSubstitution(bool createQObject = true);
+ virtual ~QUmlSubstitution();
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Owned attributes [Abstraction]
- Q_INVOKABLE QUmlOpaqueExpression *mapping() const;
-
- // Owned attributes [Substitution]
- Q_INVOKABLE QUmlClassifier *contract() const;
- Q_INVOKABLE QUmlClassifier *substitutingClassifier() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
-
- // Slots for owned attributes [Abstraction]
- void setMapping(QUmlOpaqueExpression *mapping);
-
- // Slots for owned attributes [Substitution]
+ // Owned attributes
+ QUmlClassifier *contract() const;
void setContract(QUmlClassifier *contract);
+ QUmlClassifier *substitutingClassifier() const;
void setSubstitutingClassifier(QUmlClassifier *substitutingClassifier);
+
+protected:
+ QUmlClassifier *_contract;
+ QUmlClassifier *_substitutingClassifier;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlSubstitution *)
-Q_DECLARE_METATYPE(QList<QUmlSubstitution *> *)
-Q_DECLARE_METATYPE(QSet<QUmlSubstitution *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlSubstitution) *)
QT_END_HEADER
diff --git a/src/uml/qumltemplateableelement.cpp b/src/uml/qumltemplateableelement.cpp
index 7cbd9d6d..db83887c 100644
--- a/src/uml/qumltemplateableelement.cpp
+++ b/src/uml/qumltemplateableelement.cpp
@@ -40,100 +40,119 @@
****************************************************************************/
#include "qumltemplateableelement.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlTemplateBinding>
#include <QtUml/QUmlTemplateSignature>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTemplateableElement
+ \class QUmlTemplateableElement
\inmodule QtUml
\brief A templateable element is an element that can optionally be defined as a template and bound to other templates.
*/
-
-QUmlTemplateableElement::QUmlTemplateableElement(QObject *parent) :
- QObject(parent)
+QUmlTemplateableElement::QUmlTemplateableElement() :
+ _ownedTemplateSignature(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTemplateableElement::ownedComment() const
+QUmlTemplateableElement::~QUmlTemplateableElement()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTemplateableElement::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The optional template signature specifying the formal template parameters.
*/
-QUmlElement *QUmlTemplateableElement::owner() const
+QUmlTemplateSignature *
+QUmlTemplateableElement::ownedTemplateSignature() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [TemplateableElement]
+ return _ownedTemplateSignature;
+}
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlTemplateSignature *QUmlTemplateableElement::ownedTemplateSignature() const
+void QUmlTemplateableElement::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
{
- return reinterpret_cast<QUmlTemplateSignature *>(_ownedTemplateSignature);
+ // This is a read-write association end
+
+ if (_ownedTemplateSignature != ownedTemplateSignature) {
+ // Adjust subsetted properties
+ removeOwnedElement(_ownedTemplateSignature);
+
+ _ownedTemplateSignature = ownedTemplateSignature;
+ if (ownedTemplateSignature->asQObject() && this->asQObject())
+ QObject::connect(ownedTemplateSignature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwnedTemplateSignature()));
+ ownedTemplateSignature->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ if (ownedTemplateSignature) {
+ addOwnedElement(ownedTemplateSignature);
+ }
+ }
}
/*!
The optional bindings from this element to templates.
*/
-const QSet<QUmlTemplateBinding *> QUmlTemplateableElement::templateBinding() const
+const QSet<QUmlTemplateBinding *>
+QUmlTemplateableElement::templateBinding() const
{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ return _templateBinding;
+}
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTemplateableElement::allOwnedElements() const
+void QUmlTemplateableElement::addTemplateBinding(QUmlTemplateBinding *templateBinding)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // This is a read-write association end
+
+ if (!_templateBinding.contains(templateBinding)) {
+ _templateBinding.insert(templateBinding);
+ if (templateBinding->asQObject() && this->asQObject())
+ QObject::connect(templateBinding->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTemplateBinding(QObject *)));
+ templateBinding->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ addOwnedElement(templateBinding);
+
+ // Adjust opposite properties
+ if (templateBinding) {
+ templateBinding->setBoundElement(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlTemplateableElement::mustBeOwned() const
+void QUmlTemplateableElement::removeTemplateBinding(QUmlTemplateBinding *templateBinding)
{
- return UmlElement::mustBeOwned();
+ // This is a read-write association end
+
+ if (_templateBinding.contains(templateBinding)) {
+ _templateBinding.remove(templateBinding);
+ if (templateBinding->asQObject())
+ templateBinding->asQObject()->setParent(0);
+
+ // Adjust subsetted properties
+ removeOwnedElement(templateBinding);
+
+ // Adjust opposite properties
+ if (templateBinding) {
+ templateBinding->setBoundElement(0);
+ }
+ }
}
-// OPERATIONS [TemplateableElement]
+// OPERATIONS
/*!
The query isTemplate() returns whether this templateable element is actually a template.
*/
bool QUmlTemplateableElement::isTemplate() const
{
- return UmlTemplateableElement::isTemplate();
+ qWarning("UmlTemplateableElement::isTemplate(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -141,40 +160,8 @@ bool QUmlTemplateableElement::isTemplate() const
*/
QSet<QUmlParameterableElement *> QUmlTemplateableElement::parameterableElements() const
{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTemplateableElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTemplateableElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
+ qWarning("UmlTemplateableElement::parameterableElements(): to be implemented (operation)");
-void QUmlTemplateableElement::setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature)
-{
- UmlTemplateableElement::setOwnedTemplateSignature(ownedTemplateSignature);
+ return QSet<QUmlParameterableElement *> ();
}
-void QUmlTemplateableElement::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlTemplateableElement::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltemplateableelement.h b/src/uml/qumltemplateableelement.h
index 40d1d983..262ea020 100644
--- a/src/uml/qumltemplateableelement.h
+++ b/src/uml/qumltemplateableelement.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltemplateableelement_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,62 +52,36 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlParameterableElement;
class QUmlTemplateBinding;
class QUmlTemplateSignature;
-class Q_UML_EXPORT QUmlTemplateableElement : public QObject, public UmlTemplateableElement
+class Q_UML_EXPORT QUmlTemplateableElement : public virtual QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QUmlTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
public:
- Q_DECL_HIDDEN explicit QUmlTemplateableElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ virtual ~QUmlTemplateableElement();
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE QUmlTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
+ // Owned attributes
+ QUmlTemplateSignature *ownedTemplateSignature() const;
+ void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
+ const QSet<QUmlTemplateBinding *> templateBinding() const;
+ void addTemplateBinding(QUmlTemplateBinding *templateBinding);
+ void removeTemplateBinding(QUmlTemplateBinding *templateBinding);
-public Q_SLOTS:
+ // Operations
+ bool isTemplate() const;
+ QSet<QUmlParameterableElement *> parameterableElements() const;
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
+protected:
+ explicit QUmlTemplateableElement();
- // Slots for owned attributes [TemplateableElement]
- void setOwnedTemplateSignature(QUmlTemplateSignature *ownedTemplateSignature);
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
+ QUmlTemplateSignature *_ownedTemplateSignature;
+ QSet<QUmlTemplateBinding *> _templateBinding;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTemplateableElement *)
-Q_DECLARE_METATYPE(QList<QUmlTemplateableElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTemplateableElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTemplateableElement) *)
QT_END_HEADER
diff --git a/src/uml/qumltemplatebinding.cpp b/src/uml/qumltemplatebinding.cpp
index 5118dbda..98038395 100644
--- a/src/uml/qumltemplatebinding.cpp
+++ b/src/uml/qumltemplatebinding.cpp
@@ -40,165 +40,145 @@
****************************************************************************/
#include "qumltemplatebinding.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumltemplatebindingobject_p.h"
+
#include <QtUml/QUmlTemplateableElement>
#include <QtUml/QUmlTemplateParameterSubstitution>
#include <QtUml/QUmlTemplateSignature>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTemplateBinding
+ \class QUmlTemplateBinding
\inmodule QtUml
\brief A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.
*/
-
-QUmlTemplateBinding::QUmlTemplateBinding(QObject *parent) :
- QObject(parent)
+QUmlTemplateBinding::QUmlTemplateBinding(bool createQObject) :
+ _boundElement(0),
+ _signature(0)
{
+ if (createQObject)
+ _qObject = new QUmlTemplateBindingObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTemplateBinding::ownedComment() const
+QUmlTemplateBinding::~QUmlTemplateBinding()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTemplateBinding::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The element that is bound by this binding.
*/
-QUmlElement *QUmlTemplateBinding::owner() const
+QUmlTemplateableElement *
+QUmlTemplateBinding::boundElement() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [Relationship]
+ // This is a read-write association end
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlTemplateBinding::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
+ return _boundElement;
}
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlTemplateBinding::source() const
+void QUmlTemplateBinding::setBoundElement(QUmlTemplateableElement *boundElement)
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
+ // This is a read-write association end
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlTemplateBinding::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
+ if (_boundElement != boundElement) {
+ // Adjust subsetted properties
+ removeSource(_boundElement);
-// OWNED ATTRIBUTES [TemplateBinding]
+ _boundElement = boundElement;
+ if (boundElement->asQObject() && this->asQObject())
+ QObject::connect(boundElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setBoundElement()));
-/*!
- The element that is bound by this binding.
- */
-QUmlTemplateableElement *QUmlTemplateBinding::boundElement() const
-{
- return reinterpret_cast<QUmlTemplateableElement *>(_boundElement);
+ // Adjust subsetted properties
+ setOwner(boundElement);
+ if (boundElement) {
+ addSource(boundElement);
+ }
+ }
}
/*!
The parameter substitutions owned by this template binding.
*/
-const QSet<QUmlTemplateParameterSubstitution *> QUmlTemplateBinding::parameterSubstitution() const
+const QSet<QUmlTemplateParameterSubstitution *>
+QUmlTemplateBinding::parameterSubstitution() const
{
- return *(reinterpret_cast<const QSet<QUmlTemplateParameterSubstitution *> *>(&_parameterSubstitution));
-}
+ // This is a read-write association end
-/*!
- The template signature for the template that is the target of the binding.
- */
-QUmlTemplateSignature *QUmlTemplateBinding::signature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_signature);
+ return _parameterSubstitution;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTemplateBinding::allOwnedElements() const
+void QUmlTemplateBinding::addParameterSubstitution(QUmlTemplateParameterSubstitution *parameterSubstitution)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlTemplateBinding::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (!_parameterSubstitution.contains(parameterSubstitution)) {
+ _parameterSubstitution.insert(parameterSubstitution);
+ if (parameterSubstitution->asQObject() && this->asQObject())
+ QObject::connect(parameterSubstitution->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeParameterSubstitution(QObject *)));
+ parameterSubstitution->asQObject()->setParent(this->asQObject());
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // Adjust subsetted properties
+ addOwnedElement(parameterSubstitution);
-void QUmlTemplateBinding::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ // Adjust opposite properties
+ if (parameterSubstitution) {
+ parameterSubstitution->setTemplateBinding(this);
+ }
+ }
}
-void QUmlTemplateBinding::removeOwnedComment(UmlComment *ownedComment)
+void QUmlTemplateBinding::removeParameterSubstitution(QUmlTemplateParameterSubstitution *parameterSubstitution)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
+ if (_parameterSubstitution.contains(parameterSubstitution)) {
+ _parameterSubstitution.remove(parameterSubstitution);
+ if (parameterSubstitution->asQObject())
+ parameterSubstitution->asQObject()->setParent(0);
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
+ // Adjust subsetted properties
+ removeOwnedElement(parameterSubstitution);
-// SLOTS FOR OWNED ATTRIBUTES [TemplateBinding]
-
-void QUmlTemplateBinding::setBoundElement(QUmlTemplateableElement *boundElement)
-{
- UmlTemplateBinding::setBoundElement(boundElement);
+ // Adjust opposite properties
+ if (parameterSubstitution) {
+ parameterSubstitution->setTemplateBinding(0);
+ }
+ }
}
-void QUmlTemplateBinding::addParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution)
+/*!
+ The template signature for the template that is the target of the binding.
+ */
+QUmlTemplateSignature *
+QUmlTemplateBinding::signature() const
{
- UmlTemplateBinding::addParameterSubstitution(parameterSubstitution);
-}
+ // This is a read-write association end
-void QUmlTemplateBinding::removeParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution)
-{
- UmlTemplateBinding::removeParameterSubstitution(parameterSubstitution);
+ return _signature;
}
void QUmlTemplateBinding::setSignature(QUmlTemplateSignature *signature)
{
- UmlTemplateBinding::setSignature(signature);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_signature != signature) {
+ // Adjust subsetted properties
+ removeTarget(_signature);
+
+ _signature = signature;
+ if (signature->asQObject() && this->asQObject())
+ QObject::connect(signature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignature()));
+
+ // Adjust subsetted properties
+ if (signature) {
+ addTarget(signature);
+ }
+ }
+}
diff --git a/src/uml/qumltemplatebinding.h b/src/uml/qumltemplatebinding.h
index f9c2195f..c13b719f 100644
--- a/src/uml/qumltemplatebinding.h
+++ b/src/uml/qumltemplatebinding.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltemplatebinding_p.h"
+#include <QtUml/QUmlDirectedRelationship>
+
QT_BEGIN_HEADER
@@ -52,79 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlTemplateableElement;
class QUmlTemplateParameterSubstitution;
class QUmlTemplateSignature;
-class Q_UML_EXPORT QUmlTemplateBinding : public QObject, public UmlTemplateBinding
+class Q_UML_EXPORT QUmlTemplateBinding : public QUmlDirectedRelationship
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [TemplateBinding]
- Q_PROPERTY(QUmlTemplateableElement * boundElement READ boundElement)
- Q_PROPERTY(QSet<QUmlTemplateParameterSubstitution *> parameterSubstitution READ parameterSubstitution)
- Q_PROPERTY(QUmlTemplateSignature * signature READ signature)
-
public:
- Q_INVOKABLE explicit QUmlTemplateBinding(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
+ explicit QUmlTemplateBinding(bool createQObject = true);
+ virtual ~QUmlTemplateBinding();
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [TemplateBinding]
- Q_INVOKABLE QUmlTemplateableElement *boundElement() const;
- Q_INVOKABLE const QSet<QUmlTemplateParameterSubstitution *> parameterSubstitution() const;
- Q_INVOKABLE QUmlTemplateSignature *signature() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [Relationship]
-
- // Slots for owned attributes [DirectedRelationship]
-
- // Slots for owned attributes [TemplateBinding]
+ // Owned attributes
+ QUmlTemplateableElement *boundElement() const;
void setBoundElement(QUmlTemplateableElement *boundElement);
- void addParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution);
- void removeParameterSubstitution(UmlTemplateParameterSubstitution *parameterSubstitution);
+ const QSet<QUmlTemplateParameterSubstitution *> parameterSubstitution() const;
+ void addParameterSubstitution(QUmlTemplateParameterSubstitution *parameterSubstitution);
+ void removeParameterSubstitution(QUmlTemplateParameterSubstitution *parameterSubstitution);
+ QUmlTemplateSignature *signature() const;
void setSignature(QUmlTemplateSignature *signature);
+
+protected:
+ QUmlTemplateableElement *_boundElement;
+ QSet<QUmlTemplateParameterSubstitution *> _parameterSubstitution;
+ QUmlTemplateSignature *_signature;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTemplateBinding *)
-Q_DECLARE_METATYPE(QList<QUmlTemplateBinding *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTemplateBinding *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTemplateBinding) *)
QT_END_HEADER
diff --git a/src/uml/qumltemplateparameter.cpp b/src/uml/qumltemplateparameter.cpp
index 47636ef8..090ae1b0 100644
--- a/src/uml/qumltemplateparameter.cpp
+++ b/src/uml/qumltemplateparameter.cpp
@@ -40,153 +40,171 @@
****************************************************************************/
#include "qumltemplateparameter.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumltemplateparameterobject_p.h"
+
#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlTemplateSignature>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTemplateParameter
+ \class QUmlTemplateParameter
\inmodule QtUml
\brief A template parameter exposes a parameterable element as a formal template parameter of a template.
*/
-
-QUmlTemplateParameter::QUmlTemplateParameter(QObject *parent) :
- QObject(parent)
+QUmlTemplateParameter::QUmlTemplateParameter(bool createQObject) :
+ _default_(0),
+ _ownedDefault(0),
+ _ownedParameteredElement(0),
+ _parameteredElement(0),
+ _signature(0)
{
+ if (createQObject)
+ _qObject = new QUmlTemplateParameterObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTemplateParameter::ownedComment() const
+QUmlTemplateParameter::~QUmlTemplateParameter()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTemplateParameter::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The element that is the default for this formal template parameter.
*/
-QUmlElement *QUmlTemplateParameter::owner() const
+QUmlParameterableElement *
+QUmlTemplateParameter::default_() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [TemplateParameter]
+ return _default_;
+}
-/*!
- The element that is the default for this formal template parameter.
- */
-QUmlParameterableElement *QUmlTemplateParameter::default_() const
+void QUmlTemplateParameter::setDefault(QUmlParameterableElement *default_)
{
- return reinterpret_cast<QUmlParameterableElement *>(_default_);
+ // This is a read-write association end
+
+ if (_default_ != default_) {
+ _default_ = default_;
+ if (default_->asQObject() && this->asQObject())
+ QObject::connect(default_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setDefault()));
+ }
}
/*!
The element that is owned by this template parameter for the purpose of providing a default.
*/
-QUmlParameterableElement *QUmlTemplateParameter::ownedDefault() const
+QUmlParameterableElement *
+QUmlTemplateParameter::ownedDefault() const
{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedDefault);
-}
+ // This is a read-write association end
-/*!
- The element that is owned by this template parameter.
- */
-QUmlParameterableElement *QUmlTemplateParameter::ownedParameteredElement() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedParameteredElement);
+ return _ownedDefault;
}
-/*!
- The element exposed by this template parameter.
- */
-QUmlParameterableElement *QUmlTemplateParameter::parameteredElement() const
+void QUmlTemplateParameter::setOwnedDefault(QUmlParameterableElement *ownedDefault)
{
- return reinterpret_cast<QUmlParameterableElement *>(_parameteredElement);
-}
+ // This is a read-write association end
-/*!
- The template signature that owns this template parameter.
- */
-QUmlTemplateSignature *QUmlTemplateParameter::signature() const
-{
- return reinterpret_cast<QUmlTemplateSignature *>(_signature);
-}
+ if (_ownedDefault != ownedDefault) {
+ // Adjust subsetted properties
+ removeOwnedElement(_ownedDefault);
-// OPERATIONS [Element]
+ _ownedDefault = ownedDefault;
+ if (ownedDefault->asQObject() && this->asQObject())
+ QObject::connect(ownedDefault->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwnedDefault()));
+ ownedDefault->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTemplateParameter::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ if (ownedDefault) {
+ addOwnedElement(ownedDefault);
+ }
+ setDefault(ownedDefault);
+ }
}
/*!
- 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.
+ The element that is owned by this template parameter.
*/
-bool QUmlTemplateParameter::mustBeOwned() const
+QUmlParameterableElement *
+QUmlTemplateParameter::ownedParameteredElement() const
{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlTemplateParameter::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _ownedParameteredElement;
}
-void QUmlTemplateParameter::removeOwnedComment(UmlComment *ownedComment)
+void QUmlTemplateParameter::setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TemplateParameter]
+ if (_ownedParameteredElement != ownedParameteredElement) {
+ // Adjust subsetted properties
+ removeOwnedElement(_ownedParameteredElement);
-void QUmlTemplateParameter::setDefault(QUmlParameterableElement *default_)
-{
- UmlTemplateParameter::setDefault(default_);
+ _ownedParameteredElement = ownedParameteredElement;
+ if (ownedParameteredElement->asQObject() && this->asQObject())
+ QObject::connect(ownedParameteredElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwnedParameteredElement()));
+ ownedParameteredElement->asQObject()->setParent(this->asQObject());
+
+ // Adjust subsetted properties
+ setParameteredElement(ownedParameteredElement);
+ if (ownedParameteredElement) {
+ addOwnedElement(ownedParameteredElement);
+ }
+ }
}
-void QUmlTemplateParameter::setOwnedDefault(QUmlParameterableElement *ownedDefault)
+/*!
+ The element exposed by this template parameter.
+ */
+QUmlParameterableElement *
+QUmlTemplateParameter::parameteredElement() const
{
- UmlTemplateParameter::setOwnedDefault(ownedDefault);
+ // This is a read-write association end
+
+ return _parameteredElement;
}
-void QUmlTemplateParameter::setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement)
+void QUmlTemplateParameter::setParameteredElement(QUmlParameterableElement *parameteredElement)
{
- UmlTemplateParameter::setOwnedParameteredElement(ownedParameteredElement);
+ // This is a read-write association end
+
+ if (_parameteredElement != parameteredElement) {
+ _parameteredElement = parameteredElement;
+ if (parameteredElement->asQObject() && this->asQObject())
+ QObject::connect(parameteredElement->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setParameteredElement()));
+ }
}
-void QUmlTemplateParameter::setParameteredElement(QUmlParameterableElement *parameteredElement)
+/*!
+ The template signature that owns this template parameter.
+ */
+QUmlTemplateSignature *
+QUmlTemplateParameter::signature() const
{
- UmlTemplateParameter::setParameteredElement(parameteredElement);
+ // This is a read-write association end
+
+ return _signature;
}
void QUmlTemplateParameter::setSignature(QUmlTemplateSignature *signature)
{
- UmlTemplateParameter::setSignature(signature);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_signature != signature) {
+ // Adjust subsetted properties
+
+ _signature = signature;
+ if (signature->asQObject() && this->asQObject())
+ QObject::connect(signature->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSignature()));
+
+ // Adjust subsetted properties
+ setOwner(signature);
+ }
+}
diff --git a/src/uml/qumltemplateparameter.h b/src/uml/qumltemplateparameter.h
index 66705c3f..bbba3c81 100644
--- a/src/uml/qumltemplateparameter.h
+++ b/src/uml/qumltemplateparameter.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltemplateparameter_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,65 +52,38 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlParameterableElement;
class QUmlTemplateSignature;
-class Q_UML_EXPORT QUmlTemplateParameter : public QObject, public UmlTemplateParameter
+class Q_UML_EXPORT QUmlTemplateParameter : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateParameter]
- Q_PROPERTY(QUmlParameterableElement * default_ READ default_)
- Q_PROPERTY(QUmlParameterableElement * ownedDefault READ ownedDefault)
- Q_PROPERTY(QUmlParameterableElement * ownedParameteredElement READ ownedParameteredElement)
- Q_PROPERTY(QUmlParameterableElement * parameteredElement READ parameteredElement)
- Q_PROPERTY(QUmlTemplateSignature * signature READ signature)
-
public:
- Q_INVOKABLE explicit QUmlTemplateParameter(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ explicit QUmlTemplateParameter(bool createQObject = true);
+ virtual ~QUmlTemplateParameter();
- // Owned attributes [TemplateParameter]
- Q_INVOKABLE QUmlParameterableElement *default_() const;
- Q_INVOKABLE QUmlParameterableElement *ownedDefault() const;
- Q_INVOKABLE QUmlParameterableElement *ownedParameteredElement() const;
- Q_INVOKABLE QUmlParameterableElement *parameteredElement() const;
- Q_INVOKABLE QUmlTemplateSignature *signature() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateParameter]
+ // Owned attributes
+ QUmlParameterableElement *default_() const;
void setDefault(QUmlParameterableElement *default_);
+ QUmlParameterableElement *ownedDefault() const;
void setOwnedDefault(QUmlParameterableElement *ownedDefault);
+ QUmlParameterableElement *ownedParameteredElement() const;
void setOwnedParameteredElement(QUmlParameterableElement *ownedParameteredElement);
+ QUmlParameterableElement *parameteredElement() const;
void setParameteredElement(QUmlParameterableElement *parameteredElement);
+ QUmlTemplateSignature *signature() const;
void setSignature(QUmlTemplateSignature *signature);
+
+protected:
+ QUmlParameterableElement *_default_;
+ QUmlParameterableElement *_ownedDefault;
+ QUmlParameterableElement *_ownedParameteredElement;
+ QUmlParameterableElement *_parameteredElement;
+ QUmlTemplateSignature *_signature;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTemplateParameter *)
-Q_DECLARE_METATYPE(QList<QUmlTemplateParameter *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTemplateParameter *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTemplateParameter) *)
QT_END_HEADER
diff --git a/src/uml/qumltemplateparametersubstitution.cpp b/src/uml/qumltemplateparametersubstitution.cpp
index f20fbceb..3d2461e9 100644
--- a/src/uml/qumltemplateparametersubstitution.cpp
+++ b/src/uml/qumltemplateparametersubstitution.cpp
@@ -40,141 +40,139 @@
****************************************************************************/
#include "qumltemplateparametersubstitution.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumltemplateparametersubstitutionobject_p.h"
+
#include <QtUml/QUmlParameterableElement>
#include <QtUml/QUmlTemplateBinding>
#include <QtUml/QUmlTemplateParameter>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTemplateParameterSubstitution
+ \class QUmlTemplateParameterSubstitution
\inmodule QtUml
\brief A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding.
*/
-
-QUmlTemplateParameterSubstitution::QUmlTemplateParameterSubstitution(QObject *parent) :
- QObject(parent)
+QUmlTemplateParameterSubstitution::QUmlTemplateParameterSubstitution(bool createQObject) :
+ _actual(0),
+ _formal(0),
+ _ownedActual(0),
+ _templateBinding(0)
{
+ if (createQObject)
+ _qObject = new QUmlTemplateParameterSubstitutionObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTemplateParameterSubstitution::ownedComment() const
+QUmlTemplateParameterSubstitution::~QUmlTemplateParameterSubstitution()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTemplateParameterSubstitution::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The element that is the actual parameter for this substitution.
*/
-QUmlElement *QUmlTemplateParameterSubstitution::owner() const
+QUmlParameterableElement *
+QUmlTemplateParameterSubstitution::actual() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [TemplateParameterSubstitution]
+ return _actual;
+}
-/*!
- The element that is the actual parameter for this substitution.
- */
-QUmlParameterableElement *QUmlTemplateParameterSubstitution::actual() const
+void QUmlTemplateParameterSubstitution::setActual(QUmlParameterableElement *actual)
{
- return reinterpret_cast<QUmlParameterableElement *>(_actual);
+ // This is a read-write association end
+
+ if (_actual != actual) {
+ _actual = actual;
+ if (actual->asQObject() && this->asQObject())
+ QObject::connect(actual->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setActual()));
+ }
}
/*!
The formal template parameter that is associated with this substitution.
*/
-QUmlTemplateParameter *QUmlTemplateParameterSubstitution::formal() const
+QUmlTemplateParameter *
+QUmlTemplateParameterSubstitution::formal() const
{
- return reinterpret_cast<QUmlTemplateParameter *>(_formal);
-}
+ // This is a read-write association end
-/*!
- The actual parameter that is owned by this substitution.
- */
-QUmlParameterableElement *QUmlTemplateParameterSubstitution::ownedActual() const
-{
- return reinterpret_cast<QUmlParameterableElement *>(_ownedActual);
+ return _formal;
}
-/*!
- The optional bindings from this element to templates.
- */
-QUmlTemplateBinding *QUmlTemplateParameterSubstitution::templateBinding() const
+void QUmlTemplateParameterSubstitution::setFormal(QUmlTemplateParameter *formal)
{
- return reinterpret_cast<QUmlTemplateBinding *>(_templateBinding);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTemplateParameterSubstitution::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ if (_formal != formal) {
+ _formal = formal;
+ if (formal->asQObject() && this->asQObject())
+ QObject::connect(formal->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setFormal()));
+ }
}
/*!
- 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.
+ The actual parameter that is owned by this substitution.
*/
-bool QUmlTemplateParameterSubstitution::mustBeOwned() const
+QUmlParameterableElement *
+QUmlTemplateParameterSubstitution::ownedActual() const
{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlTemplateParameterSubstitution::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _ownedActual;
}
-void QUmlTemplateParameterSubstitution::removeOwnedComment(UmlComment *ownedComment)
+void QUmlTemplateParameterSubstitution::setOwnedActual(QUmlParameterableElement *ownedActual)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TemplateParameterSubstitution]
+ if (_ownedActual != ownedActual) {
+ // Adjust subsetted properties
+ removeOwnedElement(_ownedActual);
-void QUmlTemplateParameterSubstitution::setActual(QUmlParameterableElement *actual)
-{
- UmlTemplateParameterSubstitution::setActual(actual);
-}
+ _ownedActual = ownedActual;
+ if (ownedActual->asQObject() && this->asQObject())
+ QObject::connect(ownedActual->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setOwnedActual()));
+ ownedActual->asQObject()->setParent(this->asQObject());
-void QUmlTemplateParameterSubstitution::setFormal(QUmlTemplateParameter *formal)
-{
- UmlTemplateParameterSubstitution::setFormal(formal);
+ // Adjust subsetted properties
+ if (ownedActual) {
+ addOwnedElement(ownedActual);
+ }
+ setActual(ownedActual);
+ }
}
-void QUmlTemplateParameterSubstitution::setOwnedActual(QUmlParameterableElement *ownedActual)
+/*!
+ The optional bindings from this element to templates.
+ */
+QUmlTemplateBinding *
+QUmlTemplateParameterSubstitution::templateBinding() const
{
- UmlTemplateParameterSubstitution::setOwnedActual(ownedActual);
+ // This is a read-write association end
+
+ return _templateBinding;
}
void QUmlTemplateParameterSubstitution::setTemplateBinding(QUmlTemplateBinding *templateBinding)
{
- UmlTemplateParameterSubstitution::setTemplateBinding(templateBinding);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_templateBinding != templateBinding) {
+ // Adjust subsetted properties
+
+ _templateBinding = templateBinding;
+ if (templateBinding->asQObject() && this->asQObject())
+ QObject::connect(templateBinding->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTemplateBinding()));
+
+ // Adjust subsetted properties
+ setOwner(templateBinding);
+ }
+}
diff --git a/src/uml/qumltemplateparametersubstitution.h b/src/uml/qumltemplateparametersubstitution.h
index 0df445e2..eb783c3f 100644
--- a/src/uml/qumltemplateparametersubstitution.h
+++ b/src/uml/qumltemplateparametersubstitution.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltemplateparametersubstitution_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,63 +52,36 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlParameterableElement;
class QUmlTemplateBinding;
class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlTemplateParameterSubstitution : public QObject, public UmlTemplateParameterSubstitution
+class Q_UML_EXPORT QUmlTemplateParameterSubstitution : public QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateParameterSubstitution]
- Q_PROPERTY(QUmlParameterableElement * actual READ actual)
- Q_PROPERTY(QUmlTemplateParameter * formal READ formal)
- Q_PROPERTY(QUmlParameterableElement * ownedActual READ ownedActual)
- Q_PROPERTY(QUmlTemplateBinding * templateBinding READ templateBinding)
-
public:
- Q_INVOKABLE explicit QUmlTemplateParameterSubstitution(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
+ explicit QUmlTemplateParameterSubstitution(bool createQObject = true);
+ virtual ~QUmlTemplateParameterSubstitution();
- // Owned attributes [TemplateParameterSubstitution]
- Q_INVOKABLE QUmlParameterableElement *actual() const;
- Q_INVOKABLE QUmlTemplateParameter *formal() const;
- Q_INVOKABLE QUmlParameterableElement *ownedActual() const;
- Q_INVOKABLE QUmlTemplateBinding *templateBinding() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateParameterSubstitution]
+ // Owned attributes
+ QUmlParameterableElement *actual() const;
void setActual(QUmlParameterableElement *actual);
+ QUmlTemplateParameter *formal() const;
void setFormal(QUmlTemplateParameter *formal);
+ QUmlParameterableElement *ownedActual() const;
void setOwnedActual(QUmlParameterableElement *ownedActual);
+ QUmlTemplateBinding *templateBinding() const;
void setTemplateBinding(QUmlTemplateBinding *templateBinding);
+
+protected:
+ QUmlParameterableElement *_actual;
+ QUmlTemplateParameter *_formal;
+ QUmlParameterableElement *_ownedActual;
+ QUmlTemplateBinding *_templateBinding;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTemplateParameterSubstitution *)
-Q_DECLARE_METATYPE(QList<QUmlTemplateParameterSubstitution *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTemplateParameterSubstitution *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTemplateParameterSubstitution) *)
QT_END_HEADER
diff --git a/src/uml/qumltemplatesignature.cpp b/src/uml/qumltemplatesignature.cpp
index d7d2250d..adf3ae3a 100644
--- a/src/uml/qumltemplatesignature.cpp
+++ b/src/uml/qumltemplatesignature.cpp
@@ -40,137 +40,142 @@
****************************************************************************/
#include "qumltemplatesignature.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlElement>
+#include "private/qumltemplatesignatureobject_p.h"
+
#include <QtUml/QUmlTemplateableElement>
#include <QtUml/QUmlTemplateParameter>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTemplateSignature
+ \class QUmlTemplateSignature
\inmodule QtUml
\brief A template signature bundles the set of formal template parameters for a templated element.
*/
-
-QUmlTemplateSignature::QUmlTemplateSignature(QObject *parent) :
- QObject(parent)
+QUmlTemplateSignature::QUmlTemplateSignature(bool createQObject) :
+ _template_(0)
{
+ if (createQObject)
+ _qObject = new QUmlTemplateSignatureObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTemplateSignature::ownedComment() const
+QUmlTemplateSignature::~QUmlTemplateSignature()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
+// OWNED ATTRIBUTES
+
/*!
- The Elements owned by this element.
+ The formal template parameters that are owned by this template signature.
*/
-const QSet<QUmlElement *> QUmlTemplateSignature::ownedElement() const
+const QList<QUmlTemplateParameter *>
+QUmlTemplateSignature::ownedParameter() const
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ // This is a read-write association end
+
+ return _ownedParameter;
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTemplateSignature::owner() const
+void QUmlTemplateSignature::addOwnedParameter(QUmlTemplateParameter *ownedParameter)
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [TemplateSignature]
+ if (!_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.append(ownedParameter);
+ if (ownedParameter->asQObject() && this->asQObject())
+ QObject::connect(ownedParameter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeOwnedParameter(QObject *)));
+ ownedParameter->asQObject()->setParent(this->asQObject());
-/*!
- The formal template parameters that are owned by this template signature.
- */
-const QList<QUmlTemplateParameter *> QUmlTemplateSignature::ownedParameter() const
-{
- return *(reinterpret_cast<const QList<QUmlTemplateParameter *> *>(&_ownedParameter));
-}
+ // Adjust subsetted properties
+ addParameter(ownedParameter);
+ addOwnedElement(ownedParameter);
-/*!
- The ordered set of all formal template parameters for this template signature.
- */
-const QList<QUmlTemplateParameter *> QUmlTemplateSignature::parameter() const
-{
- return *(reinterpret_cast<const QList<QUmlTemplateParameter *> *>(&_parameter));
+ // Adjust opposite properties
+ if (ownedParameter) {
+ ownedParameter->setSignature(this);
+ }
+ }
}
-/*!
- The element that owns this template signature.
- */
-QUmlTemplateableElement *QUmlTemplateSignature::template_() const
+void QUmlTemplateSignature::removeOwnedParameter(QUmlTemplateParameter *ownedParameter)
{
- return reinterpret_cast<QUmlTemplateableElement *>(_template_);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_ownedParameter.contains(ownedParameter)) {
+ _ownedParameter.removeAll(ownedParameter);
+ if (ownedParameter->asQObject())
+ ownedParameter->asQObject()->setParent(0);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTemplateSignature::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust subsetted properties
+ removeParameter(ownedParameter);
+ removeOwnedElement(ownedParameter);
+
+ // Adjust opposite properties
+ if (ownedParameter) {
+ ownedParameter->setSignature(0);
+ }
+ }
}
/*!
- 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.
+ The ordered set of all formal template parameters for this template signature.
*/
-bool QUmlTemplateSignature::mustBeOwned() const
+const QList<QUmlTemplateParameter *>
+QUmlTemplateSignature::parameter() const
{
- return UmlElement::mustBeOwned();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlTemplateSignature::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ return _parameter;
}
-void QUmlTemplateSignature::removeOwnedComment(UmlComment *ownedComment)
+void QUmlTemplateSignature::addParameter(QUmlTemplateParameter *parameter)
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TemplateSignature]
+ // This is a read-write association end
-void QUmlTemplateSignature::addOwnedParameter(UmlTemplateParameter *ownedParameter)
-{
- UmlTemplateSignature::addOwnedParameter(ownedParameter);
+ if (!_parameter.contains(parameter)) {
+ _parameter.append(parameter);
+ if (parameter->asQObject() && this->asQObject())
+ QObject::connect(parameter->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeParameter(QObject *)));
+ }
}
-void QUmlTemplateSignature::removeOwnedParameter(UmlTemplateParameter *ownedParameter)
+void QUmlTemplateSignature::removeParameter(QUmlTemplateParameter *parameter)
{
- UmlTemplateSignature::removeOwnedParameter(ownedParameter);
-}
+ // This is a read-write association end
-void QUmlTemplateSignature::addParameter(UmlTemplateParameter *parameter)
-{
- UmlTemplateSignature::addParameter(parameter);
+ if (_parameter.contains(parameter)) {
+ _parameter.removeAll(parameter);
+ }
}
-void QUmlTemplateSignature::removeParameter(UmlTemplateParameter *parameter)
+/*!
+ The element that owns this template signature.
+ */
+QUmlTemplateableElement *
+QUmlTemplateSignature::template_() const
{
- UmlTemplateSignature::removeParameter(parameter);
+ // This is a read-write association end
+
+ return _template_;
}
void QUmlTemplateSignature::setTemplate(QUmlTemplateableElement *template_)
{
- UmlTemplateSignature::setTemplate(template_);
-}
+ // This is a read-write association end
+
+ if (_template_ != template_) {
+ // Adjust subsetted properties
-QT_END_NAMESPACE
+ _template_ = template_;
+ if (template_->asQObject() && this->asQObject())
+ QObject::connect(template_->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTemplate()));
+
+ // Adjust subsetted properties
+ setOwner(template_);
+ }
+}
diff --git a/src/uml/qumltemplatesignature.h b/src/uml/qumltemplatesignature.h
index 213f5fd6..f0a0a9f2 100644
--- a/src/uml/qumltemplatesignature.h
+++ b/src/uml/qumltemplatesignature.h
@@ -43,8 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltemplatesignature_p.h"
+#include <QtUml/QUmlElement>
+
QT_BEGIN_HEADER
@@ -52,61 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlElement;
class QUmlTemplateableElement;
class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlTemplateSignature : public QObject, public UmlTemplateSignature
+class Q_UML_EXPORT QUmlTemplateSignature : public virtual QUmlElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [TemplateSignature]
- Q_PROPERTY(QList<QUmlTemplateParameter *> ownedParameter READ ownedParameter)
- Q_PROPERTY(QList<QUmlTemplateParameter *> parameter READ parameter)
- Q_PROPERTY(QUmlTemplateableElement * template_ READ template_)
-
public:
- Q_INVOKABLE explicit QUmlTemplateSignature(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [TemplateSignature]
- Q_INVOKABLE const QList<QUmlTemplateParameter *> ownedParameter() const;
- Q_INVOKABLE const QList<QUmlTemplateParameter *> parameter() const;
- Q_INVOKABLE QUmlTemplateableElement *template_() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [TemplateSignature]
- void addOwnedParameter(UmlTemplateParameter *ownedParameter);
- void removeOwnedParameter(UmlTemplateParameter *ownedParameter);
- void addParameter(UmlTemplateParameter *parameter);
- void removeParameter(UmlTemplateParameter *parameter);
+ explicit QUmlTemplateSignature(bool createQObject = true);
+ virtual ~QUmlTemplateSignature();
+
+ // Owned attributes
+ const QList<QUmlTemplateParameter *> ownedParameter() const;
+ void addOwnedParameter(QUmlTemplateParameter *ownedParameter);
+ void removeOwnedParameter(QUmlTemplateParameter *ownedParameter);
+ const QList<QUmlTemplateParameter *> parameter() const;
+ void addParameter(QUmlTemplateParameter *parameter);
+ void removeParameter(QUmlTemplateParameter *parameter);
+ QUmlTemplateableElement *template_() const;
void setTemplate(QUmlTemplateableElement *template_);
+
+protected:
+ QList<QUmlTemplateParameter *> _ownedParameter;
+ QList<QUmlTemplateParameter *> _parameter;
+ QUmlTemplateableElement *_template_;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTemplateSignature *)
-Q_DECLARE_METATYPE(QList<QUmlTemplateSignature *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTemplateSignature *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTemplateSignature) *)
QT_END_HEADER
diff --git a/src/uml/qumltestidentityaction.cpp b/src/uml/qumltestidentityaction.cpp
index 68d47793..78666588 100644
--- a/src/uml/qumltestidentityaction.cpp
+++ b/src/uml/qumltestidentityaction.cpp
@@ -40,538 +40,127 @@
****************************************************************************/
#include "qumltestidentityaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
+#include "private/qumltestidentityactionobject_p.h"
+
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlTestIdentityAction
+ \class QUmlTestIdentityAction
\inmodule QtUml
\brief A test identity action is an action that tests if two values are identical objects.
*/
-
-QUmlTestIdentityAction::QUmlTestIdentityAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTestIdentityAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTestIdentityAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTestIdentityAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTestIdentityAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTestIdentityAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTestIdentityAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTestIdentityAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlTestIdentityAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlTestIdentityAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlTestIdentityAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlTestIdentityAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlTestIdentityAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlTestIdentityAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlTestIdentityAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlTestIdentityAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlTestIdentityAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlTestIdentityAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlTestIdentityAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlTestIdentityAction::outgoing() const
+QUmlTestIdentityAction::QUmlTestIdentityAction(bool createQObject) :
+ _first(0),
+ _result(0),
+ _second(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (createQObject)
+ _qObject = new QUmlTestIdentityActionObject(this);
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlTestIdentityAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlTestIdentityAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlTestIdentityAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlTestIdentityAction::input() const
+QUmlTestIdentityAction::~QUmlTestIdentityAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlTestIdentityAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlTestIdentityAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlTestIdentityAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlTestIdentityAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [TestIdentityAction]
+// OWNED ATTRIBUTES
/*!
Gives the pin on which an object is placed.
*/
-QUmlInputPin *QUmlTestIdentityAction::first() const
+QUmlInputPin *
+QUmlTestIdentityAction::first() const
{
- return reinterpret_cast<QUmlInputPin *>(_first);
-}
+ // This is a read-write association end
-/*!
- Tells whether the two input objects are identical.
- */
-QUmlOutputPin *QUmlTestIdentityAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
+ return _first;
}
-/*!
- Gives the pin on which an object is placed.
- */
-QUmlInputPin *QUmlTestIdentityAction::second() const
+void QUmlTestIdentityAction::setFirst(QUmlInputPin *first)
{
- return reinterpret_cast<QUmlInputPin *>(_second);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (_first != first) {
+ // Adjust subsetted properties
+ removeInput(_first);
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTestIdentityAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ _first = first;
+ if (first->asQObject() && this->asQObject())
+ QObject::connect(first->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setFirst()));
+ first->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlTestIdentityAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ // Adjust subsetted properties
+ if (first) {
+ addInput(first);
+ }
+ }
}
-// OPERATIONS [NamedElement]
-
/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
+ Tells whether the two input objects are identical.
*/
-QList<QUmlNamespace *> QUmlTestIdentityAction::allNamespaces() const
+QUmlOutputPin *
+QUmlTestIdentityAction::result() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTestIdentityAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _result;
}
-/*!
- 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.
- */
-bool QUmlTestIdentityAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlTestIdentityAction::setResult(QUmlOutputPin *result)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTestIdentityAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// OPERATIONS [RedefinableElement]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlTestIdentityAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
/*!
- 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.
+ Gives the pin on which an object is placed.
*/
-bool QUmlTestIdentityAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTestIdentityAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTestIdentityAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTestIdentityAction::addClientDependency(UmlDependency *clientDependency)
+QUmlInputPin *
+QUmlTestIdentityAction::second() const
{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlTestIdentityAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTestIdentityAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _second;
}
-void QUmlTestIdentityAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlTestIdentityAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlTestIdentityAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlTestIdentityAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlTestIdentityAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlTestIdentityAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlTestIdentityAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlTestIdentityAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlTestIdentityAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlTestIdentityAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlTestIdentityAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlTestIdentityAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlTestIdentityAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlTestIdentityAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlTestIdentityAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlTestIdentityAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlTestIdentityAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlTestIdentityAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlTestIdentityAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlTestIdentityAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlTestIdentityAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlTestIdentityAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlTestIdentityAction::setSecond(QUmlInputPin *second)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TestIdentityAction]
-
-void QUmlTestIdentityAction::setFirst(QUmlInputPin *first)
-{
- UmlTestIdentityAction::setFirst(first);
-}
+ if (_second != second) {
+ // Adjust subsetted properties
+ removeInput(_second);
-void QUmlTestIdentityAction::setResult(QUmlOutputPin *result)
-{
- UmlTestIdentityAction::setResult(result);
-}
+ _second = second;
+ if (second->asQObject() && this->asQObject())
+ QObject::connect(second->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSecond()));
+ second->asQObject()->setParent(this->asQObject());
-void QUmlTestIdentityAction::setSecond(QUmlInputPin *second)
-{
- UmlTestIdentityAction::setSecond(second);
+ // Adjust subsetted properties
+ if (second) {
+ addInput(second);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltestidentityaction.h b/src/uml/qumltestidentityaction.h
index 1dc212e2..67cb39b7 100644
--- a/src/uml/qumltestidentityaction.h
+++ b/src/uml/qumltestidentityaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltestidentityaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,188 +52,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlTestIdentityAction : public QObject, public UmlTestIdentityAction
+class Q_UML_EXPORT QUmlTestIdentityAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [TestIdentityAction]
- Q_PROPERTY(QUmlInputPin * first READ first)
- Q_PROPERTY(QUmlOutputPin * result READ result)
- Q_PROPERTY(QUmlInputPin * second READ second)
-
public:
- Q_INVOKABLE explicit QUmlTestIdentityAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlTestIdentityAction(bool createQObject = true);
+ virtual ~QUmlTestIdentityAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [TestIdentityAction]
- Q_INVOKABLE QUmlInputPin *first() const;
- Q_INVOKABLE QUmlOutputPin *result() const;
- Q_INVOKABLE QUmlInputPin *second() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [TestIdentityAction]
+ // Owned attributes
+ QUmlInputPin *first() const;
void setFirst(QUmlInputPin *first);
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+ QUmlInputPin *second() const;
void setSecond(QUmlInputPin *second);
+
+protected:
+ QUmlInputPin *_first;
+ QUmlOutputPin *_result;
+ QUmlInputPin *_second;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTestIdentityAction *)
-Q_DECLARE_METATYPE(QList<QUmlTestIdentityAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTestIdentityAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTestIdentityAction) *)
QT_END_HEADER
diff --git a/src/uml/qumltimeconstraint.cpp b/src/uml/qumltimeconstraint.cpp
index eb9e47e8..bc0e9404 100644
--- a/src/uml/qumltimeconstraint.cpp
+++ b/src/uml/qumltimeconstraint.cpp
@@ -40,322 +40,76 @@
****************************************************************************/
#include "qumltimeconstraint.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterval>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTimeInterval>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumltimeconstraintobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlTimeInterval>
/*!
- \class UmlTimeConstraint
+ \class QUmlTimeConstraint
\inmodule QtUml
\brief A time constraint is a constraint that refers to a time interval.
*/
-
-QUmlTimeConstraint::QUmlTimeConstraint(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTimeConstraint::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTimeConstraint::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTimeConstraint::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlTimeConstraint::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlTimeConstraint::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTimeConstraint::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTimeConstraint::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTimeConstraint::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTimeConstraint::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlTimeConstraint::qualifiedName() const
+QUmlTimeConstraint::QUmlTimeConstraint(bool createQObject) :
+ QUmlIntervalConstraint(false),
+ _firstEvent(true),
+ _specification(0)
{
- return UmlNamedElement::qualifiedName();
+ if (createQObject)
+ _qObject = new QUmlTimeConstraintObject(this);
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlTimeConstraint::visibility() const
+QUmlTimeConstraint::~QUmlTimeConstraint()
{
- return _visibility;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [Constraint]
-
-/*!
- The ordered set of Elements referenced by this Constraint.
- */
-const QList<QUmlElement *> QUmlTimeConstraint::constrainedElement() const
-{
- return *(reinterpret_cast<const QList<QUmlElement *> *>(&_constrainedElement));
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTimeConstraint::context() const
-{
- return reinterpret_cast<QUmlNamespace *>(_context);
-}
-// OWNED ATTRIBUTES [TimeConstraint]
+// OWNED ATTRIBUTES
/*!
The value of firstEvent is related to constrainedElement. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters constrainedElement. If firstEvent is false, then the corresponding observation event is the last time instant the execution is within constrainedElement.
*/
-bool QUmlTimeConstraint::firstEvent() const
-{
- return _firstEvent;
-}
-
-/*!
- A condition that must be true when evaluated in order for the constraint to be satisfied.
- */
-QUmlTimeInterval *QUmlTimeConstraint::specification() const
-{
- return reinterpret_cast<QUmlTimeInterval *>(_specification);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTimeConstraint::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTimeConstraint::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlTimeConstraint::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlTimeConstraint::isTemplateParameter() const
+bool
+QUmlTimeConstraint::firstEvent() const
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write property
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTimeConstraint::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ return _firstEvent;
}
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTimeConstraint::allOwningPackages() const
+void QUmlTimeConstraint::setFirstEvent(bool firstEvent)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- 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.
- */
-bool QUmlTimeConstraint::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (_firstEvent != firstEvent) {
+ _firstEvent = firstEvent;
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ A condition that must be true when evaluated in order for the constraint to be satisfied.
*/
-QString QUmlTimeConstraint::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTimeConstraint::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTimeConstraint::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlTimeConstraint::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlTimeConstraint::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTimeConstraint::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTimeConstraint::removeClientDependency(UmlDependency *clientDependency)
+QUmlTimeInterval *
+QUmlTimeConstraint::specification() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlTimeConstraint::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTimeConstraint::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlTimeConstraint::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Constraint]
-
-void QUmlTimeConstraint::addConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::addConstrainedElement(constrainedElement);
-}
-
-void QUmlTimeConstraint::removeConstrainedElement(UmlElement *constrainedElement)
-{
- UmlConstraint::removeConstrainedElement(constrainedElement);
-}
-
-void QUmlTimeConstraint::setContext(QUmlNamespace *context)
-{
- UmlConstraint::setContext(context);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TimeConstraint]
-
-void QUmlTimeConstraint::setFirstEvent(bool firstEvent)
-{
- UmlTimeConstraint::setFirstEvent(firstEvent);
+ return _specification;
}
void QUmlTimeConstraint::setSpecification(QUmlTimeInterval *specification)
{
- UmlTimeConstraint::setSpecification(specification);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_specification != specification) {
+ _specification = specification;
+ if (specification->asQObject() && this->asQObject())
+ QObject::connect(specification->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSpecification()));
+ specification->asQObject()->setParent(this->asQObject());
+ }
+}
diff --git a/src/uml/qumltimeconstraint.h b/src/uml/qumltimeconstraint.h
index 616a00f0..3f027ebe 100644
--- a/src/uml/qumltimeconstraint.h
+++ b/src/uml/qumltimeconstraint.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltimeconstraint_p.h"
+#include <QtUml/QUmlIntervalConstraint>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,134 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterval;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlTimeInterval;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlTimeConstraint : public QObject, public UmlTimeConstraint
+class Q_UML_EXPORT QUmlTimeConstraint : public QUmlIntervalConstraint
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Constraint]
- Q_PROPERTY(QList<QUmlElement *> constrainedElement READ constrainedElement)
- Q_PROPERTY(QUmlNamespace * context READ context)
-
- // Properties [IntervalConstraint]
-
- // Properties [TimeConstraint]
- Q_PROPERTY(bool firstEvent READ firstEvent)
- Q_PROPERTY(QUmlTimeInterval * specification READ specification)
-
public:
- Q_INVOKABLE explicit QUmlTimeConstraint(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Constraint]
- Q_INVOKABLE const QList<QUmlElement *> constrainedElement() const;
- Q_INVOKABLE QUmlNamespace *context() const;
+ explicit QUmlTimeConstraint(bool createQObject = true);
+ virtual ~QUmlTimeConstraint();
- // Owned attributes [IntervalConstraint]
-
- // Owned attributes [TimeConstraint]
- Q_INVOKABLE bool firstEvent() const;
- Q_INVOKABLE QUmlTimeInterval *specification() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Constraint]
- void addConstrainedElement(UmlElement *constrainedElement);
- void removeConstrainedElement(UmlElement *constrainedElement);
- void setContext(QUmlNamespace *context);
-
- // Slots for owned attributes [IntervalConstraint]
-
- // Slots for owned attributes [TimeConstraint]
+ // Owned attributes
+ bool firstEvent() const;
void setFirstEvent(bool firstEvent);
+ QUmlTimeInterval *specification() const;
void setSpecification(QUmlTimeInterval *specification);
+
+protected:
+ bool _firstEvent;
+ QUmlTimeInterval *_specification;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTimeConstraint *)
-Q_DECLARE_METATYPE(QList<QUmlTimeConstraint *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTimeConstraint *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTimeConstraint) *)
QT_END_HEADER
diff --git a/src/uml/qumltimeevent.cpp b/src/uml/qumltimeevent.cpp
index f4c32b53..87373d06 100644
--- a/src/uml/qumltimeevent.cpp
+++ b/src/uml/qumltimeevent.cpp
@@ -40,287 +40,83 @@
****************************************************************************/
#include "qumltimeevent.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTimeExpression>
+#include "private/qumltimeeventobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlTimeExpression>
/*!
- \class UmlTimeEvent
+ \class QUmlTimeEvent
\inmodule QtUml
\brief A time event can be defined relative to entering the current state of the executing state machine.A time event specifies a point in time. At the specified time, the event occurs.
*/
-
-QUmlTimeEvent::QUmlTimeEvent(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTimeEvent::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTimeEvent::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTimeEvent::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlTimeEvent::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlTimeEvent::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTimeEvent::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTimeEvent::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTimeEvent::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTimeEvent::namespace_() const
+QUmlTimeEvent::QUmlTimeEvent(bool createQObject) :
+ _isRelative(false),
+ _when(0)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (createQObject)
+ _qObject = new QUmlTimeEventObject(this);
}
-/*!
- 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.
- */
-QString QUmlTimeEvent::qualifiedName() const
+QUmlTimeEvent::~QUmlTimeEvent()
{
- return UmlNamedElement::qualifiedName();
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlTimeEvent::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TimeEvent]
+// OWNED ATTRIBUTES
/*!
Specifies whether it is relative or absolute time.
*/
-bool QUmlTimeEvent::isRelative() const
+bool
+QUmlTimeEvent::isRelative() const
{
- return _isRelative;
-}
+ // This is a read-write property
-/*!
- Specifies the corresponding time deadline.
- */
-QUmlTimeExpression *QUmlTimeEvent::when() const
-{
- return reinterpret_cast<QUmlTimeExpression *>(_when);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTimeEvent::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTimeEvent::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlTimeEvent::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlTimeEvent::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ return _isRelative;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTimeEvent::allNamespaces() const
+void QUmlTimeEvent::setRelative(bool isRelative)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write property
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTimeEvent::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (_isRelative != isRelative) {
+ _isRelative = isRelative;
+ }
}
/*!
- 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.
+ Specifies the corresponding time deadline.
*/
-bool QUmlTimeEvent::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlTimeExpression *
+QUmlTimeEvent::when() const
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTimeEvent::separator() const
-{
- return UmlNamedElement::separator();
+ return _when;
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTimeEvent::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTimeEvent::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlTimeEvent::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlTimeEvent::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTimeEvent::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTimeEvent::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTimeEvent::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTimeEvent::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlTimeEvent::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlTimeEvent::setWhen(QUmlTimeExpression *when)
{
- UmlPackageableElement::setVisibility(visibility);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [TimeEvent]
+ if (_when != when) {
+ // Adjust subsetted properties
+ removeOwnedElement(_when);
-void QUmlTimeEvent::setRelative(bool isRelative)
-{
- UmlTimeEvent::setRelative(isRelative);
-}
+ _when = when;
+ if (when->asQObject() && this->asQObject())
+ QObject::connect(when->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setWhen()));
+ when->asQObject()->setParent(this->asQObject());
-void QUmlTimeEvent::setWhen(QUmlTimeExpression *when)
-{
- UmlTimeEvent::setWhen(when);
+ // Adjust subsetted properties
+ if (when) {
+ addOwnedElement(when);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltimeevent.h b/src/uml/qumltimeevent.h
index c5b48301..9656e077 100644
--- a/src/uml/qumltimeevent.h
+++ b/src/uml/qumltimeevent.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltimeevent_p.h"
+#include <QtUml/QUmlEvent>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,113 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlTimeExpression;
-class Q_UML_EXPORT QUmlTimeEvent : public QObject, public UmlTimeEvent
+class Q_UML_EXPORT QUmlTimeEvent : public QUmlEvent
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TimeEvent]
- Q_PROPERTY(bool isRelative READ isRelative)
- Q_PROPERTY(QUmlTimeExpression * when READ when)
-
public:
- Q_INVOKABLE explicit QUmlTimeEvent(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlTimeEvent(bool createQObject = true);
+ virtual ~QUmlTimeEvent();
- // Owned attributes [TimeEvent]
- Q_INVOKABLE bool isRelative() const;
- Q_INVOKABLE QUmlTimeExpression *when() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TimeEvent]
+ // Owned attributes
+ bool isRelative() const;
void setRelative(bool isRelative);
+ QUmlTimeExpression *when() const;
void setWhen(QUmlTimeExpression *when);
+
+protected:
+ bool _isRelative;
+ QUmlTimeExpression *_when;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTimeEvent *)
-Q_DECLARE_METATYPE(QList<QUmlTimeEvent *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTimeEvent *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTimeEvent) *)
QT_END_HEADER
diff --git a/src/uml/qumltimeexpression.cpp b/src/uml/qumltimeexpression.cpp
index 15ba61bc..be00f7ee 100644
--- a/src/uml/qumltimeexpression.cpp
+++ b/src/uml/qumltimeexpression.cpp
@@ -40,369 +40,93 @@
****************************************************************************/
#include "qumltimeexpression.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlObservation>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumltimeexpressionobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlObservation>
/*!
- \class UmlTimeExpression
+ \class QUmlTimeExpression
\inmodule QtUml
\brief A time expression defines a value specification that represents a time value.
*/
-
-QUmlTimeExpression::QUmlTimeExpression(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTimeExpression::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTimeExpression::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTimeExpression::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTimeExpression::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTimeExpression::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTimeExpression::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTimeExpression::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlTimeExpression::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlTimeExpression::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlTimeExpression::owningTemplateParameter() const
+QUmlTimeExpression::QUmlTimeExpression(bool createQObject) :
+ _expr(0)
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (createQObject)
+ _qObject = new QUmlTimeExpressionObject(this);
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlTimeExpression::templateParameter() const
+QUmlTimeExpression::~QUmlTimeExpression()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlTimeExpression::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TimeExpression]
+// OWNED ATTRIBUTES
/*!
The value of the time expression.
*/
-QUmlValueSpecification *QUmlTimeExpression::expr() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_expr);
-}
-
-/*!
- Refers to the time and duration observations that are involved in expr.
- */
-const QSet<QUmlObservation *> QUmlTimeExpression::observation() const
-{
- return *(reinterpret_cast<const QSet<QUmlObservation *> *>(&_observation));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTimeExpression::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTimeExpression::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTimeExpression::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTimeExpression::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTimeExpression::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTimeExpression::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlTimeExpression::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlTimeExpression::booleanValue() const
+QUmlValueSpecification *
+QUmlTimeExpression::expr() const
{
- return UmlValueSpecification::booleanValue();
-}
+ // This is a read-write association end
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlTimeExpression::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlTimeExpression::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
+ return _expr;
}
-/*!
- 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.
- */
-bool QUmlTimeExpression::isComputable() const
+void QUmlTimeExpression::setExpr(QUmlValueSpecification *expr)
{
- return UmlValueSpecification::isComputable();
-}
+ // This is a read-write association end
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlTimeExpression::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
+ if (_expr != expr) {
+ // Adjust subsetted properties
+ removeOwnedElement(_expr);
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlTimeExpression::realValue() const
-{
- return UmlValueSpecification::realValue();
-}
+ _expr = expr;
+ if (expr->asQObject() && this->asQObject())
+ QObject::connect(expr->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setExpr()));
+ expr->asQObject()->setParent(this->asQObject());
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlTimeExpression::stringValue() const
-{
- return UmlValueSpecification::stringValue();
+ // Adjust subsetted properties
+ if (expr) {
+ addOwnedElement(expr);
+ }
+ }
}
/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
+ Refers to the time and duration observations that are involved in expr.
*/
-int QUmlTimeExpression::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTimeExpression::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTimeExpression::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTimeExpression::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTimeExpression::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTimeExpression::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTimeExpression::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlTimeExpression::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlTimeExpression::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
+const QSet<QUmlObservation *>
+QUmlTimeExpression::observation() const
{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
+ // This is a read-write association end
-void QUmlTimeExpression::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
+ return _observation;
}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlTimeExpression::setVisibility(QtUml::VisibilityKind visibility)
+void QUmlTimeExpression::addObservation(QUmlObservation *observation)
{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TimeExpression]
+ // This is a read-write association end
-void QUmlTimeExpression::setExpr(QUmlValueSpecification *expr)
-{
- UmlTimeExpression::setExpr(expr);
+ if (!_observation.contains(observation)) {
+ _observation.insert(observation);
+ if (observation->asQObject() && this->asQObject())
+ QObject::connect(observation->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeObservation(QObject *)));
+ }
}
-void QUmlTimeExpression::addObservation(UmlObservation *observation)
+void QUmlTimeExpression::removeObservation(QUmlObservation *observation)
{
- UmlTimeExpression::addObservation(observation);
-}
+ // This is a read-write association end
-void QUmlTimeExpression::removeObservation(UmlObservation *observation)
-{
- UmlTimeExpression::removeObservation(observation);
+ if (_observation.contains(observation)) {
+ _observation.remove(observation);
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltimeexpression.h b/src/uml/qumltimeexpression.h
index 1c38db96..0e39db27 100644
--- a/src/uml/qumltimeexpression.h
+++ b/src/uml/qumltimeexpression.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltimeexpression_p.h"
+#include <QtUml/QUmlValueSpecification>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,134 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlObservation;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlTimeExpression : public QObject, public UmlTimeExpression
+class Q_UML_EXPORT QUmlTimeExpression : public QUmlValueSpecification
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TimeExpression]
- Q_PROPERTY(QUmlValueSpecification * expr READ expr)
- Q_PROPERTY(QSet<QUmlObservation *> observation READ observation)
-
public:
- Q_INVOKABLE explicit QUmlTimeExpression(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlTimeExpression(bool createQObject = true);
+ virtual ~QUmlTimeExpression();
- // Owned attributes [TimeExpression]
- Q_INVOKABLE QUmlValueSpecification *expr() const;
- Q_INVOKABLE const QSet<QUmlObservation *> observation() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TimeExpression]
+ // Owned attributes
+ QUmlValueSpecification *expr() const;
void setExpr(QUmlValueSpecification *expr);
- void addObservation(UmlObservation *observation);
- void removeObservation(UmlObservation *observation);
+ const QSet<QUmlObservation *> observation() const;
+ void addObservation(QUmlObservation *observation);
+ void removeObservation(QUmlObservation *observation);
+
+protected:
+ QUmlValueSpecification *_expr;
+ QSet<QUmlObservation *> _observation;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTimeExpression *)
-Q_DECLARE_METATYPE(QList<QUmlTimeExpression *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTimeExpression *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTimeExpression) *)
QT_END_HEADER
diff --git a/src/uml/qumltimeinterval.cpp b/src/uml/qumltimeinterval.cpp
index 6dc9bad5..1f7e89ef 100644
--- a/src/uml/qumltimeinterval.cpp
+++ b/src/uml/qumltimeinterval.cpp
@@ -40,364 +40,77 @@
****************************************************************************/
#include "qumltimeinterval.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTimeExpression>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumltimeintervalobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlTimeExpression>
/*!
- \class UmlTimeInterval
+ \class QUmlTimeInterval
\inmodule QtUml
\brief A time interval defines the range between two time expressions.
*/
-
-QUmlTimeInterval::QUmlTimeInterval(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTimeInterval::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTimeInterval::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTimeInterval::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTimeInterval::clientDependency() const
+QUmlTimeInterval::QUmlTimeInterval(bool createQObject) :
+ QUmlInterval(false),
+ _max(0),
+ _min(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ if (createQObject)
+ _qObject = new QUmlTimeIntervalObject(this);
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlTimeInterval::name() const
+QUmlTimeInterval::~QUmlTimeInterval()
{
- return _name;
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTimeInterval::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTimeInterval::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlTimeInterval::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlTimeInterval::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlTimeInterval::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlTimeInterval::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlTimeInterval::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TimeInterval]
+// OWNED ATTRIBUTES
/*!
Refers to the TimeExpression denoting the maximum value of the range.
*/
-QUmlTimeExpression *QUmlTimeInterval::max() const
+QUmlTimeExpression *
+QUmlTimeInterval::max() const
{
- return reinterpret_cast<QUmlTimeExpression *>(_max);
-}
+ // This is a read-write association end
-/*!
- Refers to the TimeExpression denoting the minimum value of the range.
- */
-QUmlTimeExpression *QUmlTimeInterval::min() const
-{
- return reinterpret_cast<QUmlTimeExpression *>(_min);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTimeInterval::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTimeInterval::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTimeInterval::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTimeInterval::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _max;
}
-/*!
- 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.
- */
-bool QUmlTimeInterval::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTimeInterval::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlTimeInterval::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [ValueSpecification]
-
-/*!
- The query booleanValue() gives a single Boolean value when one can be computed.
- */
-bool QUmlTimeInterval::booleanValue() const
-{
- return UmlValueSpecification::booleanValue();
-}
-
-/*!
- The query integerValue() gives a single Integer value when one can be computed.
- */
-int QUmlTimeInterval::integerValue() const
-{
- return UmlValueSpecification::integerValue();
-}
-
-/*!
- 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.
- */
-bool QUmlTimeInterval::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlValueSpecification::isCompatibleWith(p);
-}
-
-/*!
- 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.
- */
-bool QUmlTimeInterval::isComputable() const
-{
- return UmlValueSpecification::isComputable();
-}
-
-/*!
- The query isNull() returns true when it can be computed that the value is null.
- */
-bool QUmlTimeInterval::isNull() const
-{
- return UmlValueSpecification::isNull();
-}
-
-/*!
- The query realValue() gives a single Real value when one can be computed.
- */
-double QUmlTimeInterval::realValue() const
+void QUmlTimeInterval::setMax(QUmlTimeExpression *max)
{
- return UmlValueSpecification::realValue();
-}
+ // This is a read-write association end
-/*!
- The query stringValue() gives a single String value when one can be computed.
- */
-QString QUmlTimeInterval::stringValue() const
-{
- return UmlValueSpecification::stringValue();
+ if (_max != max) {
+ _max = max;
+ if (max->asQObject() && this->asQObject())
+ QObject::connect(max->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMax()));
+ }
}
/*!
- The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.
+ Refers to the TimeExpression denoting the minimum value of the range.
*/
-int QUmlTimeInterval::unlimitedValue() const
-{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTimeInterval::addOwnedComment(UmlComment *ownedComment)
+QUmlTimeExpression *
+QUmlTimeInterval::min() const
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlTimeInterval::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTimeInterval::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTimeInterval::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTimeInterval::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTimeInterval::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlTimeInterval::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlTimeInterval::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlTimeInterval::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlTimeInterval::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TimeInterval]
-
-void QUmlTimeInterval::setMax(QUmlTimeExpression *max)
-{
- UmlTimeInterval::setMax(max);
+ return _min;
}
void QUmlTimeInterval::setMin(QUmlTimeExpression *min)
{
- UmlTimeInterval::setMin(min);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_min != min) {
+ _min = min;
+ if (min->asQObject() && this->asQObject())
+ QObject::connect(min->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setMin()));
+ }
+}
diff --git a/src/uml/qumltimeinterval.h b/src/uml/qumltimeinterval.h
index 3a7db483..7679da93 100644
--- a/src/uml/qumltimeinterval.h
+++ b/src/uml/qumltimeinterval.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltimeinterval_p.h"
+#include <QtUml/QUmlInterval>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,139 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
class QUmlTimeExpression;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlTimeInterval : public QObject, public UmlTimeInterval
+class Q_UML_EXPORT QUmlTimeInterval : public QUmlInterval
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Interval]
-
- // Properties [TimeInterval]
- Q_PROPERTY(QUmlTimeExpression * max READ max)
- Q_PROPERTY(QUmlTimeExpression * min READ min)
-
public:
- Q_INVOKABLE explicit QUmlTimeInterval(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Interval]
+ explicit QUmlTimeInterval(bool createQObject = true);
+ virtual ~QUmlTimeInterval();
- // Owned attributes [TimeInterval]
- Q_INVOKABLE QUmlTimeExpression *max() const;
- Q_INVOKABLE QUmlTimeExpression *min() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Interval]
-
- // Slots for owned attributes [TimeInterval]
+ // Owned attributes
+ QUmlTimeExpression *max() const;
void setMax(QUmlTimeExpression *max);
+ QUmlTimeExpression *min() const;
void setMin(QUmlTimeExpression *min);
+
+protected:
+ QUmlTimeExpression *_max;
+ QUmlTimeExpression *_min;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTimeInterval *)
-Q_DECLARE_METATYPE(QList<QUmlTimeInterval *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTimeInterval *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTimeInterval) *)
QT_END_HEADER
diff --git a/src/uml/qumltimeobservation.cpp b/src/uml/qumltimeobservation.cpp
index 66f92870..c4a568ca 100644
--- a/src/uml/qumltimeobservation.cpp
+++ b/src/uml/qumltimeobservation.cpp
@@ -40,286 +40,74 @@
****************************************************************************/
#include "qumltimeobservation.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
+#include "private/qumltimeobservationobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlNamedElement>
/*!
- \class UmlTimeObservation
+ \class QUmlTimeObservation
\inmodule QtUml
\brief A time observation is a reference to a time instant during an execution. It points out the element in the model to observe and whether the observation is when this model element is entered or when it is exited.
*/
-
-QUmlTimeObservation::QUmlTimeObservation(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTimeObservation::ownedComment() const
+QUmlTimeObservation::QUmlTimeObservation(bool createQObject) :
+ _event(0),
+ _firstEvent(true)
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (createQObject)
+ _qObject = new QUmlTimeObservationObject(this);
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTimeObservation::ownedElement() const
+QUmlTimeObservation::~QUmlTimeObservation()
{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTimeObservation::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlTimeObservation::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlTimeObservation::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTimeObservation::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTimeObservation::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTimeObservation::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTimeObservation::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlTimeObservation::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlTimeObservation::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TimeObservation]
+// OWNED ATTRIBUTES
/*!
The observation is determined by the entering or exiting of the event element during execution.
*/
-QUmlNamedElement *QUmlTimeObservation::event() const
+QUmlNamedElement *
+QUmlTimeObservation::event() const
{
- return reinterpret_cast<QUmlNamedElement *>(_event);
-}
+ // This is a read-write association end
-/*!
- The value of firstEvent is related to event. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters event. If firstEvent is false, then the corresponding observation event is the time instant the execution exits event.
- */
-bool QUmlTimeObservation::firstEvent() const
-{
- return _firstEvent;
+ return _event;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTimeObservation::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTimeObservation::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlTimeObservation::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlTimeObservation::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTimeObservation::allNamespaces() const
+void QUmlTimeObservation::setEvent(QUmlNamedElement *event)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTimeObservation::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (_event != event) {
+ _event = event;
+ if (event->asQObject() && this->asQObject())
+ QObject::connect(event->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEvent()));
+ }
}
/*!
- 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.
- */
-bool QUmlTimeObservation::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ The value of firstEvent is related to event. If firstEvent is true, then the corresponding observation event is the first time instant the execution enters event. If firstEvent is false, then the corresponding observation event is the time instant the execution exits event.
*/
-QString QUmlTimeObservation::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTimeObservation::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTimeObservation::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlTimeObservation::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlTimeObservation::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTimeObservation::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTimeObservation::removeClientDependency(UmlDependency *clientDependency)
+bool
+QUmlTimeObservation::firstEvent() const
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTimeObservation::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write property
-void QUmlTimeObservation::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlTimeObservation::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TimeObservation]
-
-void QUmlTimeObservation::setEvent(QUmlNamedElement *event)
-{
- UmlTimeObservation::setEvent(event);
+ return _firstEvent;
}
void QUmlTimeObservation::setFirstEvent(bool firstEvent)
{
- UmlTimeObservation::setFirstEvent(firstEvent);
-}
+ // This is a read-write property
-QT_END_NAMESPACE
+ if (_firstEvent != firstEvent) {
+ _firstEvent = firstEvent;
+ }
+}
diff --git a/src/uml/qumltimeobservation.h b/src/uml/qumltimeobservation.h
index fdf73a08..c120b3b5 100644
--- a/src/uml/qumltimeobservation.h
+++ b/src/uml/qumltimeobservation.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltimeobservation_p.h"
+#include <QtUml/QUmlObservation>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,112 +52,28 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlTimeObservation : public QObject, public UmlTimeObservation
+class Q_UML_EXPORT QUmlTimeObservation : public QUmlObservation
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TimeObservation]
- Q_PROPERTY(QUmlNamedElement * event READ event)
- Q_PROPERTY(bool firstEvent READ firstEvent)
-
public:
- Q_INVOKABLE explicit QUmlTimeObservation(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ explicit QUmlTimeObservation(bool createQObject = true);
+ virtual ~QUmlTimeObservation();
- // Owned attributes [TimeObservation]
- Q_INVOKABLE QUmlNamedElement *event() const;
- Q_INVOKABLE bool firstEvent() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TimeObservation]
+ // Owned attributes
+ QUmlNamedElement *event() const;
void setEvent(QUmlNamedElement *event);
+ bool firstEvent() const;
void setFirstEvent(bool firstEvent);
+
+protected:
+ QUmlNamedElement *_event;
+ bool _firstEvent;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTimeObservation *)
-Q_DECLARE_METATYPE(QList<QUmlTimeObservation *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTimeObservation *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTimeObservation) *)
QT_END_HEADER
diff --git a/src/uml/qumltransition.cpp b/src/uml/qumltransition.cpp
index 05f0ebb6..babf197c 100644
--- a/src/uml/qumltransition.cpp
+++ b/src/uml/qumltransition.cpp
@@ -40,512 +40,314 @@
****************************************************************************/
#include "qumltransition.h"
+#include "private/qumltransitionobject_p.h"
+
#include <QtUml/QUmlBehavior>
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlRedefinableElement>
#include <QtUml/QUmlRegion>
#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlTrigger>
#include <QtUml/QUmlVertex>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTransition
+ \class QUmlTransition
\inmodule QtUml
\brief 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.
*/
-
-QUmlTransition::QUmlTransition(QObject *parent) :
- QObject(parent)
+QUmlTransition::QUmlTransition(bool createQObject) :
+ _container(0),
+ _effect(0),
+ _guard(0),
+ _kind(QtUml::TransitionKindExternal),
+ _redefinedTransition(0),
+ _source(0),
+ _target(0)
{
+ if (createQObject)
+ _qObject = new QUmlTransitionObject(this);
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTransition::ownedComment() const
+QUmlTransition::~QUmlTransition()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTransition::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ Designates the region that owns this transition.
*/
-QUmlElement *QUmlTransition::owner() const
+QUmlRegion *
+QUmlTransition::container() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
+ // This is a read-write association end
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTransition::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _container;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlTransition::name() const
+void QUmlTransition::setContainer(QUmlRegion *container)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTransition::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (_container != container) {
+ // Adjust subsetted properties
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTransition::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ _container = container;
+ if (container->asQObject() && this->asQObject())
+ QObject::connect(container->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setContainer()));
-/*!
- 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.
- */
-QString QUmlTransition::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust subsetted properties
+ setNamespace(container);
+ }
}
/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
+ Specifies an optional behavior to be performed when the transition fires.
*/
-QtUml::VisibilityKind QUmlTransition::visibility() const
+QUmlBehavior *
+QUmlTransition::effect() const
{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
+ // This is a read-write association end
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlTransition::isLeaf() const
-{
- return _isLeaf;
+ return _effect;
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlTransition::redefinedElement() const
+void QUmlTransition::setEffect(QUmlBehavior *effect)
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-// OWNED ATTRIBUTES [Namespace]
+ // This is a read-write association end
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlTransition::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
+ if (_effect != effect) {
+ // Adjust subsetted properties
+ removeOwnedElement(_effect);
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlTransition::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ _effect = effect;
+ if (effect->asQObject() && this->asQObject())
+ QObject::connect(effect->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEffect()));
+ effect->asQObject()->setParent(this->asQObject());
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlTransition::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
+ // Adjust subsetted properties
+ if (effect) {
+ addOwnedElement(effect);
+ }
+ }
}
/*!
- A collection of NamedElements owned by the Namespace.
+ 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.
*/
-const QSet<QUmlNamedElement *> QUmlTransition::ownedMember() const
+QUmlConstraint *
+QUmlTransition::guard() const
{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
+ // This is a read-write association end
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlTransition::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
+ return _guard;
}
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlTransition::packageImport() const
+void QUmlTransition::setGuard(QUmlConstraint *guard)
{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [Transition]
+ // This is a read-write association end
-/*!
- Designates the region that owns this transition.
- */
-QUmlRegion *QUmlTransition::container() const
-{
- return reinterpret_cast<QUmlRegion *>(_container);
-}
+ if (_guard != guard) {
+ // Adjust subsetted properties
+ removeOwnedRule(_guard);
-/*!
- Specifies an optional behavior to be performed when the transition fires.
- */
-QUmlBehavior *QUmlTransition::effect() const
-{
- return reinterpret_cast<QUmlBehavior *>(_effect);
-}
+ _guard = guard;
+ if (guard->asQObject() && this->asQObject())
+ QObject::connect(guard->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setGuard()));
+ guard->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-QUmlConstraint *QUmlTransition::guard() const
-{
- return reinterpret_cast<QUmlConstraint *>(_guard);
+ // Adjust subsetted properties
+ if (guard) {
+ addOwnedRule(guard);
+ }
+ }
}
/*!
Indicates the precise type of the transition.
*/
-QtUml::TransitionKind QUmlTransition::kind() const
+QtUml::TransitionKind
+QUmlTransition::kind() const
{
- return _kind;
-}
+ // This is a read-write property
-/*!
- The transition that is redefined by this transition.
- */
-QUmlTransition *QUmlTransition::redefinedTransition() const
-{
- return reinterpret_cast<QUmlTransition *>(_redefinedTransition);
+ return _kind;
}
-/*!
- References the classifier in which context this element may be redefined.
- */
-QUmlClassifier *QUmlTransition::redefinitionContext() const
+void QUmlTransition::setKind(QtUml::TransitionKind kind)
{
- return reinterpret_cast<QUmlClassifier *>(UmlTransition::redefinitionContext());
-}
+ // This is a read-write property
-/*!
- Designates the originating vertex (state or pseudostate) of the transition.
- */
-QUmlVertex *QUmlTransition::source() const
-{
- return reinterpret_cast<QUmlVertex *>(_source);
+ if (_kind != kind) {
+ _kind = kind;
+ }
}
/*!
- Designates the target vertex that is reached when the transition is taken.
+ The transition that is redefined by this transition.
*/
-QUmlVertex *QUmlTransition::target() const
+QUmlTransition *
+QUmlTransition::redefinedTransition() const
{
- return reinterpret_cast<QUmlVertex *>(_target);
-}
+ // This is a read-write association end
-/*!
- Specifies the triggers that may fire the transition.
- */
-const QSet<QUmlTrigger *> QUmlTransition::trigger() const
-{
- return *(reinterpret_cast<const QSet<QUmlTrigger *> *>(&_trigger));
+ return _redefinedTransition;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTransition::allOwnedElements() const
+void QUmlTransition::setRedefinedTransition(QUmlTransition *redefinedTransition)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlTransition::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
+ if (_redefinedTransition != redefinedTransition) {
+ // Adjust subsetted properties
+ removeRedefinedElement(_redefinedTransition);
-// OPERATIONS [NamedElement]
+ _redefinedTransition = redefinedTransition;
+ if (redefinedTransition->asQObject() && this->asQObject())
+ QObject::connect(redefinedTransition->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setRedefinedTransition()));
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTransition::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ if (redefinedTransition) {
+ addRedefinedElement(redefinedTransition);
+ }
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ References the classifier in which context this element may be redefined.
*/
-QSet<QUmlPackage *> QUmlTransition::allOwningPackages() const
+QUmlClassifier *
+QUmlTransition::redefinitionContext() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- 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.
- */
-bool QUmlTransition::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ qWarning("UmlTransition::redefinitionContext(): to be implemented (this is a derived association end)");
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTransition::separator() const
-{
- return UmlNamedElement::separator();
+ return 0;
}
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlTransition::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
+void QUmlTransition::setRedefinitionContext(QUmlClassifier *redefinitionContext)
{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
+ // This is a read-only derived association end
-// OPERATIONS [Namespace]
+ qWarning("UmlTransition::redefinitionContext(): to be implemented (this is a derived association end)");
+ Q_UNUSED(redefinitionContext);
-/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
- */
-QSet<QUmlPackageableElement *> QUmlTransition::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
+ }
}
/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
+ Designates the originating vertex (state or pseudostate) of the transition.
*/
-QSet<QString> QUmlTransition::getNamesOfMember(QUmlNamedElement *element) const
+QUmlVertex *
+QUmlTransition::source() const
{
- return UmlNamespace::getNamesOfMember(element);
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlTransition::importMembers(QSet<QUmlPackageableElement *> imps) const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
+ return _source;
}
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlTransition::membersAreDistinguishable() const
+void QUmlTransition::setSource(QUmlVertex *source)
{
- return UmlNamespace::membersAreDistinguishable();
-}
+ // This is a read-write association end
-// OPERATIONS [Transition]
-
-/*!
- The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.
- */
-QUmlStateMachine *QUmlTransition::containingStateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(UmlTransition::containingStateMachine());
+ if (_source != source) {
+ _source = source;
+ if (source->asQObject() && this->asQObject())
+ QObject::connect(source->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setSource()));
+ }
}
/*!
- 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.
+ Designates the target vertex that is reached when the transition is taken.
*/
-bool QUmlTransition::isConsistentWith(QUmlRedefinableElement *redefinee) const
+QUmlVertex *
+QUmlTransition::target() const
{
- return UmlTransition::isConsistentWith(redefinee);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ // This is a read-write association end
-void QUmlTransition::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTransition::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTransition::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTransition::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ return _target;
}
-void QUmlTransition::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTransition::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlTransition::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlTransition::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlTransition::addElementImport(UmlElementImport *elementImport)
+void QUmlTransition::setTarget(QUmlVertex *target)
{
- UmlNamespace::addElementImport(elementImport);
-}
+ // This is a read-write association end
-void QUmlTransition::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
+ if (_target != target) {
+ _target = target;
+ if (target->asQObject() && this->asQObject())
+ QObject::connect(target->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setTarget()));
+ }
}
-void QUmlTransition::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlTransition::removeOwnedRule(UmlConstraint *ownedRule)
+/*!
+ Specifies the triggers that may fire the transition.
+ */
+const QSet<QUmlTrigger *>
+QUmlTransition::trigger() const
{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
+ // This is a read-write association end
-void QUmlTransition::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
+ return _trigger;
}
-void QUmlTransition::removePackageImport(UmlPackageImport *packageImport)
+void QUmlTransition::addTrigger(QUmlTrigger *trigger)
{
- UmlNamespace::removePackageImport(packageImport);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Transition]
+ if (!_trigger.contains(trigger)) {
+ _trigger.insert(trigger);
+ if (trigger->asQObject() && this->asQObject())
+ QObject::connect(trigger->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeTrigger(QObject *)));
+ trigger->asQObject()->setParent(this->asQObject());
-void QUmlTransition::setContainer(QUmlRegion *container)
-{
- UmlTransition::setContainer(container);
+ // Adjust subsetted properties
+ addOwnedElement(trigger);
+ }
}
-void QUmlTransition::setEffect(QUmlBehavior *effect)
+void QUmlTransition::removeTrigger(QUmlTrigger *trigger)
{
- UmlTransition::setEffect(effect);
-}
+ // This is a read-write association end
-void QUmlTransition::setGuard(QUmlConstraint *guard)
-{
- UmlTransition::setGuard(guard);
-}
+ if (_trigger.contains(trigger)) {
+ _trigger.remove(trigger);
+ if (trigger->asQObject())
+ trigger->asQObject()->setParent(0);
-void QUmlTransition::setKind(QtUml::TransitionKind kind)
-{
- UmlTransition::setKind(kind);
+ // Adjust subsetted properties
+ removeOwnedElement(trigger);
+ }
}
-void QUmlTransition::setRedefinedTransition(QUmlTransition *redefinedTransition)
-{
- UmlTransition::setRedefinedTransition(redefinedTransition);
-}
+// OPERATIONS
-void QUmlTransition::setSource(QUmlVertex *source)
+/*!
+ The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.
+ */
+QUmlStateMachine *QUmlTransition::containingStateMachine() const
{
- UmlTransition::setSource(source);
-}
+ qWarning("UmlTransition::containingStateMachine(): to be implemented (operation)");
-void QUmlTransition::setTarget(QUmlVertex *target)
-{
- UmlTransition::setTarget(target);
+ return 0;
}
-void QUmlTransition::addTrigger(UmlTrigger *trigger)
+/*!
+ 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.
+ */
+bool QUmlTransition::isConsistentWith(QUmlRedefinableElement *redefinee) const
{
- UmlTransition::addTrigger(trigger);
-}
+ qWarning("UmlTransition::isConsistentWith(): to be implemented (operation)");
-void QUmlTransition::removeTrigger(UmlTrigger *trigger)
-{
- UmlTransition::removeTrigger(trigger);
+ Q_UNUSED(redefinee);
+ return bool ();
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltransition.h b/src/uml/qumltransition.h
index 4c038c35..48be00c2 100644
--- a/src/uml/qumltransition.h
+++ b/src/uml/qumltransition.h
@@ -43,8 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltransition_p.h"
+#include <QtUml/QUmlRedefinableElement>
+#include <QtUml/QUmlNamespace>
+
#include <QtUml/QtUmlNamespace>
@@ -56,166 +57,57 @@ QT_MODULE(QtUml)
class QUmlBehavior;
class QUmlClassifier;
-class QUmlComment;
class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlRedefinableElement;
class QUmlRegion;
class QUmlStateMachine;
-class QUmlStringExpression;
class QUmlTrigger;
class QUmlVertex;
-class Q_UML_EXPORT QUmlTransition : public QObject, public UmlTransition
+class Q_UML_EXPORT QUmlTransition : public QUmlRedefinableElement, public QUmlNamespace
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [Transition]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QUmlBehavior * effect READ effect)
- Q_PROPERTY(QUmlConstraint * guard READ guard)
- Q_PROPERTY(QtUml::TransitionKind kind READ kind)
- Q_PROPERTY(QUmlTransition * redefinedTransition READ redefinedTransition)
- Q_PROPERTY(QUmlClassifier * redefinitionContext READ redefinitionContext)
- Q_PROPERTY(QUmlVertex * source READ source)
- Q_PROPERTY(QUmlVertex * target READ target)
- Q_PROPERTY(QSet<QUmlTrigger *> trigger READ trigger)
-
public:
- Q_INVOKABLE explicit QUmlTransition(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [Transition]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE QUmlBehavior *effect() const;
- Q_INVOKABLE QUmlConstraint *guard() const;
- Q_INVOKABLE QtUml::TransitionKind kind() const;
- Q_INVOKABLE QUmlTransition *redefinedTransition() const;
- Q_INVOKABLE QUmlClassifier *redefinitionContext() const;
- Q_INVOKABLE QUmlVertex *source() const;
- Q_INVOKABLE QUmlVertex *target() const;
- Q_INVOKABLE const QSet<QUmlTrigger *> trigger() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [Transition]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [Transition]
+ explicit QUmlTransition(bool createQObject = true);
+ virtual ~QUmlTransition();
+
+ // Owned attributes
+ QUmlRegion *container() const;
void setContainer(QUmlRegion *container);
+ QUmlBehavior *effect() const;
void setEffect(QUmlBehavior *effect);
+ QUmlConstraint *guard() const;
void setGuard(QUmlConstraint *guard);
+ QtUml::TransitionKind kind() const;
void setKind(QtUml::TransitionKind kind);
+ QUmlTransition *redefinedTransition() const;
void setRedefinedTransition(QUmlTransition *redefinedTransition);
+ QUmlClassifier *redefinitionContext() const;
+ Q_DECL_HIDDEN void setRedefinitionContext(QUmlClassifier *redefinitionContext);
+ QUmlVertex *source() const;
void setSource(QUmlVertex *source);
+ QUmlVertex *target() const;
void setTarget(QUmlVertex *target);
- void addTrigger(UmlTrigger *trigger);
- void removeTrigger(UmlTrigger *trigger);
+ const QSet<QUmlTrigger *> trigger() const;
+ void addTrigger(QUmlTrigger *trigger);
+ void removeTrigger(QUmlTrigger *trigger);
+
+ // Operations
+ QUmlStateMachine *containingStateMachine() const;
+ bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
+
+protected:
+ QUmlRegion *_container;
+ QUmlBehavior *_effect;
+ QUmlConstraint *_guard;
+ QtUml::TransitionKind _kind;
+ QUmlTransition *_redefinedTransition;
+ QUmlVertex *_source;
+ QUmlVertex *_target;
+ QSet<QUmlTrigger *> _trigger;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTransition *)
-Q_DECLARE_METATYPE(QList<QUmlTransition *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTransition *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTransition) *)
QT_END_HEADER
diff --git a/src/uml/qumltrigger.cpp b/src/uml/qumltrigger.cpp
index 437167d6..610858da 100644
--- a/src/uml/qumltrigger.cpp
+++ b/src/uml/qumltrigger.cpp
@@ -40,241 +40,85 @@
****************************************************************************/
#include "qumltrigger.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
+#include "private/qumltriggerobject_p.h"
+
#include <QtUml/QUmlEvent>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlPort>
-#include <QtUml/QUmlStringExpression>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlTrigger
+ \class QUmlTrigger
\inmodule QtUml
\brief A trigger specification may be qualified by the port on which the event occurred.A trigger relates an event to a behavior that may affect an instance of the classifier.
*/
-
-QUmlTrigger::QUmlTrigger(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTrigger::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTrigger::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTrigger::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTrigger::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTrigger::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTrigger::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTrigger::namespace_() const
+QUmlTrigger::QUmlTrigger(bool createQObject) :
+ _event(0)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
+ if (createQObject)
+ _qObject = new QUmlTriggerObject(this);
}
-/*!
- 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.
- */
-QString QUmlTrigger::qualifiedName() const
+QUmlTrigger::~QUmlTrigger()
{
- return UmlNamedElement::qualifiedName();
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlTrigger::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Trigger]
+// OWNED ATTRIBUTES
/*!
The event that causes the trigger.
*/
-QUmlEvent *QUmlTrigger::event() const
+QUmlEvent *
+QUmlTrigger::event() const
{
- return reinterpret_cast<QUmlEvent *>(_event);
-}
+ // This is a read-write association end
-/*!
- A optional port of the receiver object on which the behavioral feature is invoked.
- */
-const QSet<QUmlPort *> QUmlTrigger::port() const
-{
- return *(reinterpret_cast<const QSet<QUmlPort *> *>(&_port));
+ return _event;
}
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTrigger::allOwnedElements() const
+void QUmlTrigger::setEvent(QUmlEvent *event)
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlTrigger::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ if (_event != event) {
+ _event = event;
+ if (event->asQObject() && this->asQObject())
+ QObject::connect(event->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setEvent()));
+ }
}
-// OPERATIONS [NamedElement]
-
/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
+ A optional port of the receiver object on which the behavioral feature is invoked.
*/
-QList<QUmlNamespace *> QUmlTrigger::allNamespaces() const
+const QSet<QUmlPort *>
+QUmlTrigger::port() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTrigger::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _port;
}
-/*!
- 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.
- */
-bool QUmlTrigger::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlTrigger::addPort(QUmlPort *port)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTrigger::separator() const
-{
- return UmlNamedElement::separator();
+ if (!_port.contains(port)) {
+ _port.insert(port);
+ if (port->asQObject() && this->asQObject())
+ QObject::connect(port->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removePort(QObject *)));
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTrigger::addOwnedComment(UmlComment *ownedComment)
+void QUmlTrigger::removePort(QUmlPort *port)
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-write association end
-void QUmlTrigger::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
+ if (_port.contains(port)) {
+ _port.remove(port);
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTrigger::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTrigger::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTrigger::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTrigger::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlTrigger::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Trigger]
-
-void QUmlTrigger::setEvent(QUmlEvent *event)
-{
- UmlTrigger::setEvent(event);
-}
-
-void QUmlTrigger::addPort(UmlPort *port)
-{
- UmlTrigger::addPort(port);
-}
-
-void QUmlTrigger::removePort(UmlPort *port)
-{
- UmlTrigger::removePort(port);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltrigger.h b/src/uml/qumltrigger.h
index 2f6fbcad..88e4fbe2 100644
--- a/src/uml/qumltrigger.h
+++ b/src/uml/qumltrigger.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltrigger_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,91 +52,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
class QUmlEvent;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlPort;
-class QUmlStringExpression;
-class Q_UML_EXPORT QUmlTrigger : public QObject, public UmlTrigger
+class Q_UML_EXPORT QUmlTrigger : public QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Trigger]
- Q_PROPERTY(QUmlEvent * event READ event)
- Q_PROPERTY(QSet<QUmlPort *> port READ port)
-
public:
- Q_INVOKABLE explicit QUmlTrigger(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Trigger]
- Q_INVOKABLE QUmlEvent *event() const;
- Q_INVOKABLE const QSet<QUmlPort *> port() const;
+ explicit QUmlTrigger(bool createQObject = true);
+ virtual ~QUmlTrigger();
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Trigger]
+ // Owned attributes
+ QUmlEvent *event() const;
void setEvent(QUmlEvent *event);
- void addPort(UmlPort *port);
- void removePort(UmlPort *port);
+ const QSet<QUmlPort *> port() const;
+ void addPort(QUmlPort *port);
+ void removePort(QUmlPort *port);
+
+protected:
+ QUmlEvent *_event;
+ QSet<QUmlPort *> _port;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTrigger *)
-Q_DECLARE_METATYPE(QList<QUmlTrigger *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTrigger *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTrigger) *)
QT_END_HEADER
diff --git a/src/uml/qumltype.cpp b/src/uml/qumltype.cpp
index 38ca1008..19e5a281 100644
--- a/src/uml/qumltype.cpp
+++ b/src/uml/qumltype.cpp
@@ -40,283 +40,58 @@
****************************************************************************/
#include "qumltype.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlType
+ \class QUmlType
\inmodule QtUml
\brief A type is a named element that is used as the type for a typed element. A type can be contained in a package.A type constrains the values represented by a typed element.
*/
-
-QUmlType::QUmlType(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlType::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlType::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlType::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlType::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlType::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlType::clientDependency() const
+QUmlType::QUmlType() :
+ _package(0)
{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlType::name() const
+QUmlType::~QUmlType()
{
- return _name;
}
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlType::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlType::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlType::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlType::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
+// OWNED ATTRIBUTES
/*!
Specifies the owning package of this classifier, if any.
*/
-QUmlPackage *QUmlType::package() const
+QUmlPackage *
+QUmlType::package() const
{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlType::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _package;
}
-/*!
- 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.
- */
-bool QUmlType::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlType::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlType::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlType::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlType::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlType::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlType::setPackage(QUmlPackage *package)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlType::separator() const
-{
- return UmlNamedElement::separator();
+ if (_package != package) {
+ _package = package;
+ if (package->asQObject() && this->asQObject())
+ QObject::connect(package->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setPackage()));
+ }
}
-// OPERATIONS [Type]
+// OPERATIONS
/*!
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.
*/
bool QUmlType::conformsTo(QUmlType *other) const
{
- return UmlType::conformsTo(other);
-}
+ qWarning("UmlType::conformsTo(): to be implemented (operation)");
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlType::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ Q_UNUSED(other);
+ return bool ();
}
-void QUmlType::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlType::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlType::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlType::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlType::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlType::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlType::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlType::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlType::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumltype.h b/src/uml/qumltype.h
index bda74bdb..a23981ef 100644
--- a/src/uml/qumltype.h
+++ b/src/uml/qumltype.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltype_p.h"
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,112 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class Q_UML_EXPORT QUmlType : public QObject, public UmlType
+class Q_UML_EXPORT QUmlType : public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
public:
- Q_DECL_HIDDEN explicit QUmlType(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
+ virtual ~QUmlType();
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Type]
- Q_INVOKABLE bool conformsTo(QUmlType *other) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
+ // Owned attributes
+ QUmlPackage *package() const;
+ void setPackage(QUmlPackage *package);
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
+ // Operations
+ bool conformsTo(QUmlType *other) const;
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
+protected:
+ explicit QUmlType();
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
+ QUmlPackage *_package;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlType *)
-Q_DECLARE_METATYPE(QList<QUmlType *> *)
-Q_DECLARE_METATYPE(QSet<QUmlType *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlType) *)
QT_END_HEADER
diff --git a/src/uml/qumltypedelement.cpp b/src/uml/qumltypedelement.cpp
index 92a2630f..a2725ca8 100644
--- a/src/uml/qumltypedelement.cpp
+++ b/src/uml/qumltypedelement.cpp
@@ -40,222 +40,45 @@
****************************************************************************/
#include "qumltypedelement.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlType>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlTypedElement
+ \class QUmlTypedElement
\inmodule QtUml
\brief A typed element is a kind of named element that represents an element with a type.A typed element has a type.
*/
-
-QUmlTypedElement::QUmlTypedElement(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlTypedElement::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlTypedElement::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlTypedElement::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlTypedElement::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlTypedElement::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlTypedElement::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlTypedElement::namespace_() const
+QUmlTypedElement::QUmlTypedElement() :
+ _type(0)
{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
}
-/*!
- 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.
- */
-QString QUmlTypedElement::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlTypedElement::visibility() const
+QUmlTypedElement::~QUmlTypedElement()
{
- return _visibility;
}
-// OWNED ATTRIBUTES [TypedElement]
+// OWNED ATTRIBUTES
/*!
This information is derived from the return result for this Operation.The type of the TypedElement.
*/
-QUmlType *QUmlTypedElement::type() const
+QUmlType *
+QUmlTypedElement::type() const
{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OPERATIONS [Element]
+ // This is a read-write association end
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlTypedElement::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ return _type;
}
-/*!
- 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.
- */
-bool QUmlTypedElement::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlTypedElement::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlTypedElement::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlTypedElement::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlTypedElement::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlTypedElement::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlTypedElement::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlTypedElement::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlTypedElement::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlTypedElement::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlTypedElement::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlTypedElement::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
void QUmlTypedElement::setType(QUmlType *type)
{
- UmlTypedElement::setType(type);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_type != type) {
+ _type = type;
+ if (type->asQObject() && this->asQObject())
+ QObject::connect(type->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setType()));
+ }
+}
diff --git a/src/uml/qumltypedelement.h b/src/uml/qumltypedelement.h
index df7bca03..c5e1535c 100644
--- a/src/uml/qumltypedelement.h
+++ b/src/uml/qumltypedelement.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umltypedelement_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,86 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlStringExpression;
class QUmlType;
-class Q_UML_EXPORT QUmlTypedElement : public QObject, public UmlTypedElement
+class Q_UML_EXPORT QUmlTypedElement : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
+public:
+ virtual ~QUmlTypedElement();
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+ // Owned attributes
+ QUmlType *type() const;
+ void setType(QUmlType *type);
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
+protected:
+ explicit QUmlTypedElement();
-public:
- Q_DECL_HIDDEN explicit QUmlTypedElement(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
+ QUmlType *_type;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlTypedElement *)
-Q_DECLARE_METATYPE(QList<QUmlTypedElement *> *)
-Q_DECLARE_METATYPE(QSet<QUmlTypedElement *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlTypedElement) *)
QT_END_HEADER
diff --git a/src/uml/qumlunmarshallaction.cpp b/src/uml/qumlunmarshallaction.cpp
index 2c1b575d..37811671 100644
--- a/src/uml/qumlunmarshallaction.cpp
+++ b/src/uml/qumlunmarshallaction.cpp
@@ -40,543 +40,127 @@
****************************************************************************/
#include "qumlunmarshallaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
+#include "private/qumlunmarshallactionobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlUnmarshallAction
+ \class QUmlUnmarshallAction
\inmodule QtUml
\brief An unmarshall action is an action that breaks an object of a known type into outputs each of which is equal to a value from a structural feature of the object.
*/
-
-QUmlUnmarshallAction::QUmlUnmarshallAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlUnmarshallAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlUnmarshallAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlUnmarshallAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlUnmarshallAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlUnmarshallAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlUnmarshallAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlUnmarshallAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlUnmarshallAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlUnmarshallAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlUnmarshallAction::isLeaf() const
+QUmlUnmarshallAction::QUmlUnmarshallAction(bool createQObject) :
+ _object(0),
+ _unmarshallType(0)
{
- return _isLeaf;
+ if (createQObject)
+ _qObject = new QUmlUnmarshallActionObject(this);
}
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlUnmarshallAction::redefinedElement() const
+QUmlUnmarshallAction::~QUmlUnmarshallAction()
{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlUnmarshallAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlUnmarshallAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
+// OWNED ATTRIBUTES
/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlUnmarshallAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlUnmarshallAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlUnmarshallAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlUnmarshallAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlUnmarshallAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlUnmarshallAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlUnmarshallAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlUnmarshallAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlUnmarshallAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlUnmarshallAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
+ The object to be unmarshalled.
*/
-bool QUmlUnmarshallAction::isLocallyReentrant() const
+QUmlInputPin *
+QUmlUnmarshallAction::object() const
{
- return _isLocallyReentrant;
-}
+ // This is a read-write association end
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlUnmarshallAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
+ return _object;
}
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlUnmarshallAction::localPrecondition() const
+void QUmlUnmarshallAction::setObject(QUmlInputPin *object)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
+ // This is a read-write association end
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlUnmarshallAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
+ if (_object != object) {
+ // Adjust subsetted properties
+ removeInput(_object);
-// OWNED ATTRIBUTES [UnmarshallAction]
+ _object = object;
+ if (object->asQObject() && this->asQObject())
+ QObject::connect(object->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setObject()));
+ object->asQObject()->setParent(this->asQObject());
-/*!
- The object to be unmarshalled.
- */
-QUmlInputPin *QUmlUnmarshallAction::object() const
-{
- return reinterpret_cast<QUmlInputPin *>(_object);
+ // Adjust subsetted properties
+ if (object) {
+ addInput(object);
+ }
+ }
}
/*!
The values of the structural features of the input object.
*/
-const QSet<QUmlOutputPin *> QUmlUnmarshallAction::result() const
+const QSet<QUmlOutputPin *>
+QUmlUnmarshallAction::result() const
{
- return *(reinterpret_cast<const QSet<QUmlOutputPin *> *>(&_result));
-}
-
-/*!
- The type of the object to be unmarshalled.
- */
-QUmlClassifier *QUmlUnmarshallAction::unmarshallType() const
-{
- return reinterpret_cast<QUmlClassifier *>(_unmarshallType);
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlUnmarshallAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlUnmarshallAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _result;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlUnmarshallAction::allNamespaces() const
+void QUmlUnmarshallAction::addResult(QUmlOutputPin *result)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlUnmarshallAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (!_result.contains(result)) {
+ _result.insert(result);
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeResult(QObject *)));
+ result->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlUnmarshallAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust subsetted properties
+ addOutput(result);
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlUnmarshallAction::separator() const
+void QUmlUnmarshallAction::removeResult(QUmlOutputPin *result)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [RedefinableElement]
+ if (_result.contains(result)) {
+ _result.remove(result);
+ if (result->asQObject())
+ result->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlUnmarshallAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ removeOutput(result);
+ }
}
/*!
- 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.
+ The type of the object to be unmarshalled.
*/
-bool QUmlUnmarshallAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlUnmarshallAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlUnmarshallAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlUnmarshallAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlUnmarshallAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlUnmarshallAction::setName(QString name)
+QUmlClassifier *
+QUmlUnmarshallAction::unmarshallType() const
{
- UmlNamedElement::setName(name);
-}
+ // This is a read-write association end
-void QUmlUnmarshallAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlUnmarshallAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlUnmarshallAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlUnmarshallAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlUnmarshallAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlUnmarshallAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlUnmarshallAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlUnmarshallAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlUnmarshallAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlUnmarshallAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlUnmarshallAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlUnmarshallAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlUnmarshallAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlUnmarshallAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlUnmarshallAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlUnmarshallAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlUnmarshallAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlUnmarshallAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlUnmarshallAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlUnmarshallAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlUnmarshallAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlUnmarshallAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [UnmarshallAction]
-
-void QUmlUnmarshallAction::setObject(QUmlInputPin *object)
-{
- UmlUnmarshallAction::setObject(object);
-}
-
-void QUmlUnmarshallAction::addResult(UmlOutputPin *result)
-{
- UmlUnmarshallAction::addResult(result);
-}
-
-void QUmlUnmarshallAction::removeResult(UmlOutputPin *result)
-{
- UmlUnmarshallAction::removeResult(result);
+ return _unmarshallType;
}
void QUmlUnmarshallAction::setUnmarshallType(QUmlClassifier *unmarshallType)
{
- UmlUnmarshallAction::setUnmarshallType(unmarshallType);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_unmarshallType != unmarshallType) {
+ _unmarshallType = unmarshallType;
+ if (unmarshallType->asQObject() && this->asQObject())
+ QObject::connect(unmarshallType->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setUnmarshallType()));
+ }
+}
diff --git a/src/uml/qumlunmarshallaction.h b/src/uml/qumlunmarshallaction.h
index 913d7cf1..505694fb 100644
--- a/src/uml/qumlunmarshallaction.h
+++ b/src/uml/qumlunmarshallaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlunmarshallaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,189 +52,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlUnmarshallAction : public QObject, public UmlUnmarshallAction
+class Q_UML_EXPORT QUmlUnmarshallAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [UnmarshallAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QSet<QUmlOutputPin *> result READ result)
- Q_PROPERTY(QUmlClassifier * unmarshallType READ unmarshallType)
-
public:
- Q_INVOKABLE explicit QUmlUnmarshallAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlUnmarshallAction(bool createQObject = true);
+ virtual ~QUmlUnmarshallAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [UnmarshallAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE const QSet<QUmlOutputPin *> result() const;
- Q_INVOKABLE QUmlClassifier *unmarshallType() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [UnmarshallAction]
+ // Owned attributes
+ QUmlInputPin *object() const;
void setObject(QUmlInputPin *object);
- void addResult(UmlOutputPin *result);
- void removeResult(UmlOutputPin *result);
+ const QSet<QUmlOutputPin *> result() const;
+ void addResult(QUmlOutputPin *result);
+ void removeResult(QUmlOutputPin *result);
+ QUmlClassifier *unmarshallType() const;
void setUnmarshallType(QUmlClassifier *unmarshallType);
+
+protected:
+ QUmlInputPin *_object;
+ QSet<QUmlOutputPin *> _result;
+ QUmlClassifier *_unmarshallType;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlUnmarshallAction *)
-Q_DECLARE_METATYPE(QList<QUmlUnmarshallAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlUnmarshallAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlUnmarshallAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlusage.cpp b/src/uml/qumlusage.cpp
index 5ac9ae34..bbac557f 100644
--- a/src/uml/qumlusage.cpp
+++ b/src/uml/qumlusage.cpp
@@ -40,328 +40,27 @@
****************************************************************************/
#include "qumlusage.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-
-QT_BEGIN_NAMESPACE
+#include "private/qumlusageobject_p.h"
/*!
- \class UmlUsage
+ \class QUmlUsage
\inmodule QtUml
\brief A usage is a relationship in which one element requires another element (or set of elements) for its full implementation or operation. A usage is a dependency in which the client requires the presence of the supplier.
*/
-
-QUmlUsage::QUmlUsage(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlUsage::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlUsage::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlUsage::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlUsage::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlUsage::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlUsage::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlUsage::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlUsage::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlUsage::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlUsage::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlUsage::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Relationship]
-
-/*!
- Specifies the elements related by the Relationship.
- */
-const QSet<QUmlElement *> QUmlUsage::relatedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_relatedElement));
-}
-
-// OWNED ATTRIBUTES [DirectedRelationship]
-
-/*!
- Specifies the sources of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlUsage::source() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_source));
-}
-
-/*!
- Specifies the targets of the DirectedRelationship.
- */
-const QSet<QUmlElement *> QUmlUsage::target() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_target));
-}
-
-// OWNED ATTRIBUTES [Dependency]
-
-/*!
- The element(s) dependent on the supplier element(s). In some cases (such as a Trace Abstraction) the assignment of direction (that is, the designation of the client element) is at the discretion of the modeler, and is a stipulation.
- */
-const QSet<QUmlNamedElement *> QUmlUsage::client() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_client));
-}
-
-/*!
- 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.
- */
-const QSet<QUmlNamedElement *> QUmlUsage::supplier() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_supplier));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlUsage::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlUsage::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [ParameterableElement]
-
-/*!
- 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.
- */
-bool QUmlUsage::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlUsage::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlUsage::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlUsage::allOwningPackages() const
+QUmlUsage::QUmlUsage(bool createQObject) :
+ QUmlDependency(false)
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ if (createQObject)
+ _qObject = new QUmlUsageObject(this);
}
-/*!
- 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.
- */
-bool QUmlUsage::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+QUmlUsage::~QUmlUsage()
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlUsage::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlUsage::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlUsage::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlUsage::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlUsage::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlUsage::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlUsage::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlUsage::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlUsage::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlUsage::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Relationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [DirectedRelationship]
-
-// SLOTS FOR OWNED ATTRIBUTES [Dependency]
-
-void QUmlUsage::addClient(UmlNamedElement *client)
-{
- UmlDependency::addClient(client);
-}
-
-void QUmlUsage::removeClient(UmlNamedElement *client)
-{
- UmlDependency::removeClient(client);
-}
-
-void QUmlUsage::addSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::addSupplier(supplier);
-}
-
-void QUmlUsage::removeSupplier(UmlNamedElement *supplier)
-{
- UmlDependency::removeSupplier(supplier);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlusage.h b/src/uml/qumlusage.h
index 84b73f92..6e0d3060 100644
--- a/src/uml/qumlusage.h
+++ b/src/uml/qumlusage.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlusage_p.h"
+#include <QtUml/QUmlDependency>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,132 +52,19 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-
-class Q_UML_EXPORT QUmlUsage : public QObject, public UmlUsage
+class Q_UML_EXPORT QUmlUsage : public QUmlDependency
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Relationship]
- Q_PROPERTY(QSet<QUmlElement *> relatedElement READ relatedElement)
-
- // Properties [DirectedRelationship]
- Q_PROPERTY(QSet<QUmlElement *> source READ source)
- Q_PROPERTY(QSet<QUmlElement *> target READ target)
-
- // Properties [Dependency]
- Q_PROPERTY(QSet<QUmlNamedElement *> client READ client)
- Q_PROPERTY(QSet<QUmlNamedElement *> supplier READ supplier)
-
public:
- Q_INVOKABLE explicit QUmlUsage(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Relationship]
- Q_INVOKABLE const QSet<QUmlElement *> relatedElement() const;
-
- // Owned attributes [DirectedRelationship]
- Q_INVOKABLE const QSet<QUmlElement *> source() const;
- Q_INVOKABLE const QSet<QUmlElement *> target() const;
-
- // Owned attributes [Dependency]
- Q_INVOKABLE const QSet<QUmlNamedElement *> client() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> supplier() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Relationship]
+ explicit QUmlUsage(bool createQObject = true);
+ virtual ~QUmlUsage();
- // Slots for owned attributes [DirectedRelationship]
- // Slots for owned attributes [Dependency]
- void addClient(UmlNamedElement *client);
- void removeClient(UmlNamedElement *client);
- void addSupplier(UmlNamedElement *supplier);
- void removeSupplier(UmlNamedElement *supplier);
+protected:
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlUsage *)
-Q_DECLARE_METATYPE(QList<QUmlUsage *> *)
-Q_DECLARE_METATYPE(QSet<QUmlUsage *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlUsage) *)
QT_END_HEADER
diff --git a/src/uml/qumlusecase.cpp b/src/uml/qumlusecase.cpp
index a6c3123b..eae5db7f 100644
--- a/src/uml/qumlusecase.cpp
+++ b/src/uml/qumlusecase.cpp
@@ -40,966 +40,236 @@
****************************************************************************/
#include "qumlusecase.h"
-#include <QtUml/QUmlBehavior>
+#include "private/qumlusecaseobject_p.h"
+
#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlClassifierTemplateParameter>
-#include <QtUml/QUmlCollaborationUse>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlElementImport>
#include <QtUml/QUmlExtend>
#include <QtUml/QUmlExtensionPoint>
-#include <QtUml/QUmlFeature>
-#include <QtUml/QUmlGeneralization>
-#include <QtUml/QUmlGeneralizationSet>
#include <QtUml/QUmlInclude>
-#include <QtUml/QUmlInterfaceRealization>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QUmlPackageImport>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlProperty>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlRedefinableTemplateSignature>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlSubstitution>
-#include <QtUml/QUmlTemplateBinding>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlTemplateSignature>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlUseCase
+ \class QUmlUseCase
\inmodule QtUml
\brief A use case is the specification of a set of actions performed by a system, which yields an observable result that is, typically, of value for one or more actors or other stakeholders of the system.
*/
-
-QUmlUseCase::QUmlUseCase(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlUseCase::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlUseCase::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlUseCase::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlUseCase::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlUseCase::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlUseCase::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlUseCase::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlUseCase::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [Namespace]
-
-/*!
- References the ElementImports owned by the Namespace.
- */
-const QSet<QUmlElementImport *> QUmlUseCase::elementImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlElementImport *> *>(&_elementImport));
-}
-
-/*!
- References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports.
- */
-const QSet<QUmlPackageableElement *> QUmlUseCase::importedMember() const
-{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importedMember())
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
-
-/*!
- A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance.
- */
-const QSet<QUmlNamedElement *> QUmlUseCase::member() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_member));
-}
-
-/*!
- A collection of NamedElements owned by the Namespace.
- */
-const QSet<QUmlNamedElement *> QUmlUseCase::ownedMember() const
-{
- return *(reinterpret_cast<const QSet<QUmlNamedElement *> *>(&_ownedMember));
-}
-
-/*!
- Specifies a set of Constraints owned by this Namespace.
- */
-const QSet<QUmlConstraint *> QUmlUseCase::ownedRule() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_ownedRule));
-}
-
-/*!
- References the PackageImports owned by the Namespace.
- */
-const QSet<QUmlPackageImport *> QUmlUseCase::packageImport() const
-{
- return *(reinterpret_cast<const QSet<QUmlPackageImport *> *>(&_packageImport));
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlUseCase::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlUseCase::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [Type]
-
-/*!
- Specifies the owning package of this classifier, if any.
- */
-QUmlPackage *QUmlUseCase::package() const
-{
- return reinterpret_cast<QUmlPackage *>(_package);
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlUseCase::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlUseCase::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlUseCase::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [TemplateableElement]
-
-/*!
- The optional bindings from this element to templates.
- */
-const QSet<QUmlTemplateBinding *> QUmlUseCase::templateBinding() const
-{
- return *(reinterpret_cast<const QSet<QUmlTemplateBinding *> *>(&_templateBinding));
-}
-
-// OWNED ATTRIBUTES [Classifier]
-
-/*!
- Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier.
- */
-const QSet<QUmlProperty *> QUmlUseCase::attribute() const
+QUmlUseCase::QUmlUseCase(bool createQObject)
{
- return *(reinterpret_cast<const QSet<QUmlProperty *> *>(&_attribute));
+ if (createQObject)
+ _qObject = new QUmlUseCaseObject(this);
}
-/*!
- References the collaboration uses owned by the classifier.
- */
-const QSet<QUmlCollaborationUse *> QUmlUseCase::collaborationUse() const
+QUmlUseCase::~QUmlUseCase()
{
- return *(reinterpret_cast<const QSet<QUmlCollaborationUse *> *>(&_collaborationUse));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- Specifies each feature defined in the classifier.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.
- */
-const QSet<QUmlFeature *> QUmlUseCase::feature() const
-{
- return *(reinterpret_cast<const QSet<QUmlFeature *> *>(&_feature));
-}
+// OWNED ATTRIBUTES
/*!
- Specifies the general Classifiers for this Classifier.References the general classifier in the Generalization relationship.
- */
-const QSet<QUmlClassifier *> QUmlUseCase::general() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::general())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
-
-/*!
- Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy.
- */
-const QSet<QUmlGeneralization *> QUmlUseCase::generalization() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralization *> *>(&_generalization));
-}
-
-/*!
- Specifies all elements inherited by this classifier from the general classifiers.
- */
-const QSet<QUmlNamedElement *> QUmlUseCase::inheritedMember() const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritedMember())
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlUseCase::isAbstract() const
-{
- return _isAbstract;
-}
-
-/*!
- If true, the Classifier cannot be specialized by generalization. Note that this property is preserved through package merge operations; that is, the capability to specialize a Classifier (i.e., isFinalSpecialization =false) must be preserved in the resulting Classifier of a package merge operation where a Classifier with isFinalSpecialization =false is merged with a matching Classifier with isFinalSpecialization =true: the resulting Classifier will have isFinalSpecialization =false.
- */
-bool QUmlUseCase::isFinalSpecialization() const
-{
- return _isFinalSpecialization;
-}
-
-/*!
- The optional template signature specifying the formal template parameters.
- */
-QUmlRedefinableTemplateSignature *QUmlUseCase::ownedTemplateSignature() const
-{
- return reinterpret_cast<QUmlRedefinableTemplateSignature *>(_ownedTemplateSignature);
-}
-
-/*!
- References the use cases owned by this classifier.
- */
-const QSet<QUmlUseCase *> QUmlUseCase::ownedUseCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_ownedUseCase));
-}
-
-/*!
- Designates the GeneralizationSet of which the associated Classifier is a power type.
- */
-const QSet<QUmlGeneralizationSet *> QUmlUseCase::powertypeExtent() const
-{
- return *(reinterpret_cast<const QSet<QUmlGeneralizationSet *> *>(&_powertypeExtent));
-}
-
-/*!
- References the Classifiers that are redefined by this Classifier.
- */
-const QSet<QUmlClassifier *> QUmlUseCase::redefinedClassifier() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinedClassifier));
-}
-
-/*!
- References a collaboration use which indicates the collaboration that represents this classifier.
+ References the Extend relationships owned by this use case.
*/
-QUmlCollaborationUse *QUmlUseCase::representation() const
+const QSet<QUmlExtend *>
+QUmlUseCase::extend() const
{
- return reinterpret_cast<QUmlCollaborationUse *>(_representation);
-}
+ // This is a read-write association end
-/*!
- References the substitutions that are owned by this Classifier.
- */
-const QSet<QUmlSubstitution *> QUmlUseCase::substitution() const
-{
- return *(reinterpret_cast<const QSet<QUmlSubstitution *> *>(&_substitution));
+ return _extend;
}
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlClassifierTemplateParameter *QUmlUseCase::templateParameter() const
+void QUmlUseCase::addExtend(QUmlExtend *extend)
{
- return reinterpret_cast<QUmlClassifierTemplateParameter *>(_templateParameter);
-}
+ // This is a read-write association end
-/*!
- The set of use cases for which this Classifier is the subject.
- */
-const QSet<QUmlUseCase *> QUmlUseCase::useCase() const
-{
- return *(reinterpret_cast<const QSet<QUmlUseCase *> *>(&_useCase));
-}
+ if (!_extend.contains(extend)) {
+ _extend.insert(extend);
+ if (extend->asQObject() && this->asQObject())
+ QObject::connect(extend->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExtend(QObject *)));
+ extend->asQObject()->setParent(this->asQObject());
-// OWNED ATTRIBUTES [BehavioredClassifier]
+ // Adjust subsetted properties
+ addOwnedMember(extend);
-/*!
- A behavior specification that specifies the behavior of the classifier itself.
- */
-QUmlBehavior *QUmlUseCase::classifierBehavior() const
-{
- return reinterpret_cast<QUmlBehavior *>(_classifierBehavior);
+ // Adjust opposite properties
+ if (extend) {
+ extend->setExtension(this);
+ }
+ }
}
-/*!
- The set of InterfaceRealizations owned by the BehavioredClassifier. Interface realizations reference the Interfaces of which the BehavioredClassifier is an implementation.
- */
-const QSet<QUmlInterfaceRealization *> QUmlUseCase::interfaceRealization() const
+void QUmlUseCase::removeExtend(QUmlExtend *extend)
{
- return *(reinterpret_cast<const QSet<QUmlInterfaceRealization *> *>(&_interfaceRealization));
-}
+ // This is a read-write association end
-/*!
- References behavior specifications owned by a classifier.
- */
-const QSet<QUmlBehavior *> QUmlUseCase::ownedBehavior() const
-{
- return *(reinterpret_cast<const QSet<QUmlBehavior *> *>(&_ownedBehavior));
-}
+ if (_extend.contains(extend)) {
+ _extend.remove(extend);
+ if (extend->asQObject())
+ extend->asQObject()->setParent(0);
-// OWNED ATTRIBUTES [UseCase]
+ // Adjust subsetted properties
+ removeOwnedMember(extend);
-/*!
- References the Extend relationships owned by this use case.
- */
-const QSet<QUmlExtend *> QUmlUseCase::extend() const
-{
- return *(reinterpret_cast<const QSet<QUmlExtend *> *>(&_extend));
+ // Adjust opposite properties
+ if (extend) {
+ extend->setExtension(0);
+ }
+ }
}
/*!
References the ExtensionPoints owned by the use case.
*/
-const QSet<QUmlExtensionPoint *> QUmlUseCase::extensionPoint() const
+const QSet<QUmlExtensionPoint *>
+QUmlUseCase::extensionPoint() const
{
- return *(reinterpret_cast<const QSet<QUmlExtensionPoint *> *>(&_extensionPoint));
-}
+ // This is a read-write association end
-/*!
- References the Include relationships owned by this use case.
- */
-const QSet<QUmlInclude *> QUmlUseCase::include() const
-{
- return *(reinterpret_cast<const QSet<QUmlInclude *> *>(&_include));
+ return _extensionPoint;
}
-/*!
- 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.
- */
-const QSet<QUmlClassifier *> QUmlUseCase::subject() const
+void QUmlUseCase::addExtensionPoint(QUmlExtensionPoint *extensionPoint)
{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_subject));
-}
+ // This is a read-write association end
-// OPERATIONS [Element]
+ if (!_extensionPoint.contains(extensionPoint)) {
+ _extensionPoint.insert(extensionPoint);
+ if (extensionPoint->asQObject() && this->asQObject())
+ QObject::connect(extensionPoint->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeExtensionPoint(QObject *)));
+ extensionPoint->asQObject()->setParent(this->asQObject());
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlUseCase::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // Adjust subsetted properties
+ addOwnedMember(extensionPoint);
-/*!
- 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.
- */
-bool QUmlUseCase::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ // Adjust opposite properties
+ if (extensionPoint) {
+ extensionPoint->setUseCase(this);
+ }
+ }
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlUseCase::allNamespaces() const
+void QUmlUseCase::removeExtensionPoint(QUmlExtensionPoint *extensionPoint)
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlUseCase::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (_extensionPoint.contains(extensionPoint)) {
+ _extensionPoint.remove(extensionPoint);
+ if (extensionPoint->asQObject())
+ extensionPoint->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlUseCase::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(extensionPoint);
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlUseCase::separator() const
-{
- return UmlNamedElement::separator();
+ // Adjust opposite properties
+ if (extensionPoint) {
+ extensionPoint->setUseCase(0);
+ }
+ }
}
-// OPERATIONS [Namespace]
-
/*!
- The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.
+ References the Include relationships owned by this use case.
*/
-QSet<QUmlPackageableElement *> QUmlUseCase::excludeCollisions(QSet<QUmlPackageableElement *> imps) const
+const QSet<QUmlInclude *>
+QUmlUseCase::include() const
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::excludeCollisions(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.The query getNamesOfMember() takes importing into account. 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.
- */
-QSet<QString> QUmlUseCase::getNamesOfMember(QUmlNamedElement *element) const
-{
- return UmlNamespace::getNamesOfMember(element);
+ return _include;
}
-/*!
- 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.
- */
-QSet<QUmlPackageableElement *> QUmlUseCase::importMembers(QSet<QUmlPackageableElement *> imps) const
+void QUmlUseCase::addInclude(QUmlInclude *include)
{
- QSet<QUmlPackageableElement *> r;
- foreach (UmlPackageableElement *element, UmlNamespace::importMembers(*(reinterpret_cast<QSet<UmlPackageableElement *> *>(&imps))))
- r.insert(reinterpret_cast<QUmlPackageableElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.
- */
-bool QUmlUseCase::membersAreDistinguishable() const
-{
- return UmlNamespace::membersAreDistinguishable();
-}
+ if (!_include.contains(include)) {
+ _include.insert(include);
+ if (include->asQObject() && this->asQObject())
+ QObject::connect(include->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeInclude(QObject *)));
+ include->asQObject()->setParent(this->asQObject());
-// OPERATIONS [ParameterableElement]
+ // Adjust subsetted properties
+ addOwnedMember(include);
-/*!
- 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.
- */
-bool QUmlUseCase::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
+ // Adjust opposite properties
+ if (include) {
+ include->setIncludingCase(this);
+ }
+ }
}
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlUseCase::isTemplateParameter() const
+void QUmlUseCase::removeInclude(QUmlInclude *include)
{
- return UmlParameterableElement::isTemplateParameter();
-}
+ // This is a read-write association end
-// OPERATIONS [Type]
-// OPERATIONS [RedefinableElement]
+ if (_include.contains(include)) {
+ _include.remove(include);
+ if (include->asQObject())
+ include->asQObject()->setParent(0);
-/*!
- 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.
- */
-bool QUmlUseCase::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
+ // Adjust subsetted properties
+ removeOwnedMember(include);
-/*!
- 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.
- */
-bool QUmlUseCase::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
+ // Adjust opposite properties
+ if (include) {
+ include->setIncludingCase(0);
+ }
+ }
}
-// OPERATIONS [TemplateableElement]
-
/*!
- 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.
- */
-QSet<QUmlParameterableElement *> QUmlUseCase::parameterableElements() const
-{
- QSet<QUmlParameterableElement *> r;
- foreach (UmlParameterableElement *element, UmlTemplateableElement::parameterableElements())
- r.insert(reinterpret_cast<QUmlParameterableElement *>(element));
- return r;
-}
-
-// OPERATIONS [Classifier]
-
-/*!
- The query allFeatures() gives all of the features in the namespace of the classifier. In general, through mechanisms such as inheritance, this will be a larger set than feature.
- */
-QSet<QUmlFeature *> QUmlUseCase::allFeatures() const
-{
- QSet<QUmlFeature *> r;
- foreach (UmlFeature *element, UmlClassifier::allFeatures())
- r.insert(reinterpret_cast<QUmlFeature *>(element));
- return r;
-}
-
-/*!
- The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.
+ 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.
*/
-QSet<QUmlClassifier *> QUmlUseCase::allParents() const
+const QSet<QUmlClassifier *>
+QUmlUseCase::subject() const
{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::allParents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlUseCase::conformsTo(QUmlClassifier *other) const
-{
- return UmlClassifier::conformsTo(other);
+ return _subject;
}
-/*!
- 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.
- */
-bool QUmlUseCase::hasVisibilityOf(QUmlNamedElement *n) const
+void QUmlUseCase::addSubject(QUmlClassifier *subject)
{
- return UmlClassifier::hasVisibilityOf(n);
-}
+ // This is a read-write association end
-/*!
- The inherit operation is overridden to exclude redefined properties.The query inherit() defines how to inherit a set of elements. Here the operation is defined to inherit them all. It is intended to be redefined in circumstances where inheritance is affected by redefinition.
- */
-QSet<QUmlNamedElement *> QUmlUseCase::inherit(QSet<QUmlNamedElement *> inhs) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inherit(*(reinterpret_cast<QSet<UmlNamedElement *> *>(&inhs))))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
-}
+ if (!_subject.contains(subject)) {
+ _subject.insert(subject);
+ if (subject->asQObject() && this->asQObject())
+ QObject::connect(subject->asQObject(), SIGNAL(destroyed(QObject*)), this->asQObject(), SLOT(removeSubject(QObject *)));
-/*!
- 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.
- */
-QSet<QUmlNamedElement *> QUmlUseCase::inheritableMembers(QUmlClassifier *c) const
-{
- QSet<QUmlNamedElement *> r;
- foreach (UmlNamedElement *element, UmlClassifier::inheritableMembers(c))
- r.insert(reinterpret_cast<QUmlNamedElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (subject) {
+ subject->addUseCase(this);
+ }
+ }
}
-/*!
- The query isTemplate() returns whether this templateable element is actually a template.
- */
-bool QUmlUseCase::isTemplate() const
+void QUmlUseCase::removeSubject(QUmlClassifier *subject)
{
- return UmlClassifier::isTemplate();
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlUseCase::maySpecializeType(QUmlClassifier *c) const
-{
- return UmlClassifier::maySpecializeType(c);
-}
+ if (_subject.contains(subject)) {
+ _subject.remove(subject);
-/*!
- The query parents() gives all of the immediate ancestors of a generalized Classifier.
- */
-QSet<QUmlClassifier *> QUmlUseCase::parents() const
-{
- QSet<QUmlClassifier *> r;
- foreach (UmlClassifier *element, UmlClassifier::parents())
- r.insert(reinterpret_cast<QUmlClassifier *>(element));
- return r;
+ // Adjust opposite properties
+ if (subject) {
+ subject->removeUseCase(this);
+ }
+ }
}
-// OPERATIONS [UseCase]
+// OPERATIONS
/*!
The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.
*/
QSet<QUmlUseCase *> QUmlUseCase::allIncludedUseCases() const
{
- QSet<QUmlUseCase *> r;
- foreach (UmlUseCase *element, UmlUseCase::allIncludedUseCases())
- r.insert(reinterpret_cast<QUmlUseCase *>(element));
- return r;
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlUseCase::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlUseCase::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlUseCase::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlUseCase::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlUseCase::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlUseCase::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [Namespace]
-
-void QUmlUseCase::addElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::addElementImport(elementImport);
-}
+ qWarning("UmlUseCase::allIncludedUseCases(): to be implemented (operation)");
-void QUmlUseCase::removeElementImport(UmlElementImport *elementImport)
-{
- UmlNamespace::removeElementImport(elementImport);
-}
-
-void QUmlUseCase::addOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::addOwnedRule(ownedRule);
-}
-
-void QUmlUseCase::removeOwnedRule(UmlConstraint *ownedRule)
-{
- UmlNamespace::removeOwnedRule(ownedRule);
-}
-
-void QUmlUseCase::addPackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::addPackageImport(packageImport);
-}
-
-void QUmlUseCase::removePackageImport(UmlPackageImport *packageImport)
-{
- UmlNamespace::removePackageImport(packageImport);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlUseCase::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlUseCase::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Type]
-
-void QUmlUseCase::setPackage(QUmlPackage *package)
-{
- UmlType::setPackage(package);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlUseCase::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
+ return QSet<QUmlUseCase *> ();
}
-// SLOTS FOR OWNED ATTRIBUTES [TemplateableElement]
-
-void QUmlUseCase::addTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::addTemplateBinding(templateBinding);
-}
-
-void QUmlUseCase::removeTemplateBinding(UmlTemplateBinding *templateBinding)
-{
- UmlTemplateableElement::removeTemplateBinding(templateBinding);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Classifier]
-
-void QUmlUseCase::addCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::addCollaborationUse(collaborationUse);
-}
-
-void QUmlUseCase::removeCollaborationUse(UmlCollaborationUse *collaborationUse)
-{
- UmlClassifier::removeCollaborationUse(collaborationUse);
-}
-
-void QUmlUseCase::addGeneral(UmlClassifier *general)
-{
- UmlClassifier::addGeneral(general);
-}
-
-void QUmlUseCase::removeGeneral(UmlClassifier *general)
-{
- UmlClassifier::removeGeneral(general);
-}
-
-void QUmlUseCase::addGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::addGeneralization(generalization);
-}
-
-void QUmlUseCase::removeGeneralization(UmlGeneralization *generalization)
-{
- UmlClassifier::removeGeneralization(generalization);
-}
-
-void QUmlUseCase::setAbstract(bool isAbstract)
-{
- UmlClassifier::setAbstract(isAbstract);
-}
-
-void QUmlUseCase::setFinalSpecialization(bool isFinalSpecialization)
-{
- UmlClassifier::setFinalSpecialization(isFinalSpecialization);
-}
-
-void QUmlUseCase::setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature)
-{
- UmlClassifier::setOwnedTemplateSignature(ownedTemplateSignature);
-}
-
-void QUmlUseCase::addOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::addOwnedUseCase(ownedUseCase);
-}
-
-void QUmlUseCase::removeOwnedUseCase(UmlUseCase *ownedUseCase)
-{
- UmlClassifier::removeOwnedUseCase(ownedUseCase);
-}
-
-void QUmlUseCase::addPowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::addPowertypeExtent(powertypeExtent);
-}
-
-void QUmlUseCase::removePowertypeExtent(UmlGeneralizationSet *powertypeExtent)
-{
- UmlClassifier::removePowertypeExtent(powertypeExtent);
-}
-
-void QUmlUseCase::addRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::addRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlUseCase::removeRedefinedClassifier(UmlClassifier *redefinedClassifier)
-{
- UmlClassifier::removeRedefinedClassifier(redefinedClassifier);
-}
-
-void QUmlUseCase::setRepresentation(QUmlCollaborationUse *representation)
-{
- UmlClassifier::setRepresentation(representation);
-}
-
-void QUmlUseCase::addSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::addSubstitution(substitution);
-}
-
-void QUmlUseCase::removeSubstitution(UmlSubstitution *substitution)
-{
- UmlClassifier::removeSubstitution(substitution);
-}
-
-void QUmlUseCase::setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter)
-{
- UmlClassifier::setTemplateParameter(templateParameter);
-}
-
-void QUmlUseCase::addUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::addUseCase(useCase);
-}
-
-void QUmlUseCase::removeUseCase(UmlUseCase *useCase)
-{
- UmlClassifier::removeUseCase(useCase);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [BehavioredClassifier]
-
-void QUmlUseCase::setClassifierBehavior(QUmlBehavior *classifierBehavior)
-{
- UmlBehavioredClassifier::setClassifierBehavior(classifierBehavior);
-}
-
-void QUmlUseCase::addInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::addInterfaceRealization(interfaceRealization);
-}
-
-void QUmlUseCase::removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization)
-{
- UmlBehavioredClassifier::removeInterfaceRealization(interfaceRealization);
-}
-
-void QUmlUseCase::addOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::addOwnedBehavior(ownedBehavior);
-}
-
-void QUmlUseCase::removeOwnedBehavior(UmlBehavior *ownedBehavior)
-{
- UmlBehavioredClassifier::removeOwnedBehavior(ownedBehavior);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [UseCase]
-
-void QUmlUseCase::addExtend(UmlExtend *extend)
-{
- UmlUseCase::addExtend(extend);
-}
-
-void QUmlUseCase::removeExtend(UmlExtend *extend)
-{
- UmlUseCase::removeExtend(extend);
-}
-
-void QUmlUseCase::addExtensionPoint(UmlExtensionPoint *extensionPoint)
-{
- UmlUseCase::addExtensionPoint(extensionPoint);
-}
-
-void QUmlUseCase::removeExtensionPoint(UmlExtensionPoint *extensionPoint)
-{
- UmlUseCase::removeExtensionPoint(extensionPoint);
-}
-
-void QUmlUseCase::addInclude(UmlInclude *include)
-{
- UmlUseCase::addInclude(include);
-}
-
-void QUmlUseCase::removeInclude(UmlInclude *include)
-{
- UmlUseCase::removeInclude(include);
-}
-
-void QUmlUseCase::addSubject(UmlClassifier *subject)
-{
- UmlUseCase::addSubject(subject);
-}
-
-void QUmlUseCase::removeSubject(UmlClassifier *subject)
-{
- UmlUseCase::removeSubject(subject);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlusecase.h b/src/uml/qumlusecase.h
index 54d8ac1e..593835a1 100644
--- a/src/uml/qumlusecase.h
+++ b/src/uml/qumlusecase.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlusecase_p.h"
+#include <QtUml/QUmlBehavioredClassifier>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,302 +52,44 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlBehavior;
class QUmlClassifier;
-class QUmlClassifierTemplateParameter;
-class QUmlCollaborationUse;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlElementImport;
class QUmlExtend;
class QUmlExtensionPoint;
-class QUmlFeature;
-class QUmlGeneralization;
-class QUmlGeneralizationSet;
class QUmlInclude;
-class QUmlInterfaceRealization;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlPackageableElement;
-class QUmlPackageImport;
-class QUmlParameterableElement;
-class QUmlProperty;
-class QUmlRedefinableElement;
-class QUmlRedefinableTemplateSignature;
-class QUmlStringExpression;
-class QUmlSubstitution;
-class QUmlTemplateBinding;
-class QUmlTemplateParameter;
-class QUmlTemplateSignature;
-class QUmlType;
-class Q_UML_EXPORT QUmlUseCase : public QObject, public UmlUseCase
+class Q_UML_EXPORT QUmlUseCase : public QUmlBehavioredClassifier
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
-
- // Properties [Namespace]
- Q_PROPERTY(QSet<QUmlElementImport *> elementImport READ elementImport)
- Q_PROPERTY(QSet<QUmlPackageableElement *> importedMember READ importedMember)
- Q_PROPERTY(QSet<QUmlNamedElement *> member READ member)
- Q_PROPERTY(QSet<QUmlNamedElement *> ownedMember READ ownedMember)
- Q_PROPERTY(QSet<QUmlConstraint *> ownedRule READ ownedRule)
- Q_PROPERTY(QSet<QUmlPackageImport *> packageImport READ packageImport)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Type]
- Q_PROPERTY(QUmlPackage * package READ package)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [TemplateableElement]
- Q_PROPERTY(QSet<QUmlTemplateBinding *> templateBinding READ templateBinding)
-
- // Properties [Classifier]
- Q_PROPERTY(QSet<QUmlProperty *> attribute READ attribute)
- Q_PROPERTY(QSet<QUmlCollaborationUse *> collaborationUse READ collaborationUse)
- Q_PROPERTY(QSet<QUmlFeature *> feature READ feature)
- Q_PROPERTY(QSet<QUmlClassifier *> general READ general)
- Q_PROPERTY(QSet<QUmlGeneralization *> generalization READ generalization)
- Q_PROPERTY(QSet<QUmlNamedElement *> inheritedMember READ inheritedMember)
- Q_PROPERTY(bool isAbstract READ isAbstract)
- Q_PROPERTY(bool isFinalSpecialization READ isFinalSpecialization)
- Q_PROPERTY(QUmlRedefinableTemplateSignature * ownedTemplateSignature READ ownedTemplateSignature)
- Q_PROPERTY(QSet<QUmlUseCase *> ownedUseCase READ ownedUseCase)
- Q_PROPERTY(QSet<QUmlGeneralizationSet *> powertypeExtent READ powertypeExtent)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinedClassifier READ redefinedClassifier)
- Q_PROPERTY(QUmlCollaborationUse * representation READ representation)
- Q_PROPERTY(QSet<QUmlSubstitution *> substitution READ substitution)
- Q_PROPERTY(QUmlClassifierTemplateParameter * templateParameter READ templateParameter)
- Q_PROPERTY(QSet<QUmlUseCase *> useCase READ useCase)
-
- // Properties [BehavioredClassifier]
- Q_PROPERTY(QUmlBehavior * classifierBehavior READ classifierBehavior)
- Q_PROPERTY(QSet<QUmlInterfaceRealization *> interfaceRealization READ interfaceRealization)
- Q_PROPERTY(QSet<QUmlBehavior *> ownedBehavior READ ownedBehavior)
-
- // Properties [UseCase]
- Q_PROPERTY(QSet<QUmlExtend *> extend READ extend)
- Q_PROPERTY(QSet<QUmlExtensionPoint *> extensionPoint READ extensionPoint)
- Q_PROPERTY(QSet<QUmlInclude *> include READ include)
- Q_PROPERTY(QSet<QUmlClassifier *> subject READ subject)
-
public:
- Q_INVOKABLE explicit QUmlUseCase(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [Namespace]
- Q_INVOKABLE const QSet<QUmlElementImport *> elementImport() const;
- Q_INVOKABLE const QSet<QUmlPackageableElement *> importedMember() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> member() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> ownedMember() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> ownedRule() const;
- Q_INVOKABLE const QSet<QUmlPackageImport *> packageImport() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Type]
- Q_INVOKABLE QUmlPackage *package() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [TemplateableElement]
- Q_INVOKABLE const QSet<QUmlTemplateBinding *> templateBinding() const;
-
- // Owned attributes [Classifier]
- Q_INVOKABLE const QSet<QUmlProperty *> attribute() const;
- Q_INVOKABLE const QSet<QUmlCollaborationUse *> collaborationUse() const;
- Q_INVOKABLE const QSet<QUmlFeature *> feature() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> general() const;
- Q_INVOKABLE const QSet<QUmlGeneralization *> generalization() const;
- Q_INVOKABLE const QSet<QUmlNamedElement *> inheritedMember() const;
- Q_INVOKABLE bool isAbstract() const;
- Q_INVOKABLE bool isFinalSpecialization() const;
- Q_INVOKABLE QUmlRedefinableTemplateSignature *ownedTemplateSignature() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> ownedUseCase() const;
- Q_INVOKABLE const QSet<QUmlGeneralizationSet *> powertypeExtent() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinedClassifier() const;
- Q_INVOKABLE QUmlCollaborationUse *representation() const;
- Q_INVOKABLE const QSet<QUmlSubstitution *> substitution() const;
- Q_INVOKABLE QUmlClassifierTemplateParameter *templateParameter() const;
- Q_INVOKABLE const QSet<QUmlUseCase *> useCase() const;
-
- // Owned attributes [BehavioredClassifier]
- Q_INVOKABLE QUmlBehavior *classifierBehavior() const;
- Q_INVOKABLE const QSet<QUmlInterfaceRealization *> interfaceRealization() const;
- Q_INVOKABLE const QSet<QUmlBehavior *> ownedBehavior() const;
-
- // Owned attributes [UseCase]
- Q_INVOKABLE const QSet<QUmlExtend *> extend() const;
- Q_INVOKABLE const QSet<QUmlExtensionPoint *> extensionPoint() const;
- Q_INVOKABLE const QSet<QUmlInclude *> include() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> subject() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Namespace]
- Q_INVOKABLE QSet<QUmlPackageableElement *> excludeCollisions(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE QSet<QString> getNamesOfMember(QUmlNamedElement *element) const;
- Q_INVOKABLE QSet<QUmlPackageableElement *> importMembers(QSet<QUmlPackageableElement *> imps) const;
- Q_INVOKABLE bool membersAreDistinguishable() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Type]
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [TemplateableElement]
- Q_INVOKABLE QSet<QUmlParameterableElement *> parameterableElements() const;
-
- // Operations [Classifier]
- Q_INVOKABLE QSet<QUmlFeature *> allFeatures() const;
- Q_INVOKABLE QSet<QUmlClassifier *> allParents() const;
- Q_INVOKABLE bool conformsTo(QUmlClassifier *other) const;
- Q_INVOKABLE bool hasVisibilityOf(QUmlNamedElement *n) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inherit(QSet<QUmlNamedElement *> inhs) const;
- Q_INVOKABLE QSet<QUmlNamedElement *> inheritableMembers(QUmlClassifier *c) const;
- Q_INVOKABLE bool isTemplate() const;
- Q_INVOKABLE bool maySpecializeType(QUmlClassifier *c) const;
- Q_INVOKABLE QSet<QUmlClassifier *> parents() const;
-
- // Operations [UseCase]
- Q_INVOKABLE QSet<QUmlUseCase *> allIncludedUseCases() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [Namespace]
- void addElementImport(UmlElementImport *elementImport);
- void removeElementImport(UmlElementImport *elementImport);
- void addOwnedRule(UmlConstraint *ownedRule);
- void removeOwnedRule(UmlConstraint *ownedRule);
- void addPackageImport(UmlPackageImport *packageImport);
- void removePackageImport(UmlPackageImport *packageImport);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Type]
- void setPackage(QUmlPackage *package);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [TemplateableElement]
- void addTemplateBinding(UmlTemplateBinding *templateBinding);
- void removeTemplateBinding(UmlTemplateBinding *templateBinding);
-
- // Slots for owned attributes [Classifier]
- void addCollaborationUse(UmlCollaborationUse *collaborationUse);
- void removeCollaborationUse(UmlCollaborationUse *collaborationUse);
- void addGeneral(UmlClassifier *general);
- void removeGeneral(UmlClassifier *general);
- void addGeneralization(UmlGeneralization *generalization);
- void removeGeneralization(UmlGeneralization *generalization);
- void setAbstract(bool isAbstract);
- void setFinalSpecialization(bool isFinalSpecialization);
- void setOwnedTemplateSignature(QUmlRedefinableTemplateSignature *ownedTemplateSignature);
- void addOwnedUseCase(UmlUseCase *ownedUseCase);
- void removeOwnedUseCase(UmlUseCase *ownedUseCase);
- void addPowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void removePowertypeExtent(UmlGeneralizationSet *powertypeExtent);
- void addRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void removeRedefinedClassifier(UmlClassifier *redefinedClassifier);
- void setRepresentation(QUmlCollaborationUse *representation);
- void addSubstitution(UmlSubstitution *substitution);
- void removeSubstitution(UmlSubstitution *substitution);
- void setTemplateParameter(QUmlClassifierTemplateParameter *templateParameter);
- void addUseCase(UmlUseCase *useCase);
- void removeUseCase(UmlUseCase *useCase);
-
- // Slots for owned attributes [BehavioredClassifier]
- void setClassifierBehavior(QUmlBehavior *classifierBehavior);
- void addInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void removeInterfaceRealization(UmlInterfaceRealization *interfaceRealization);
- void addOwnedBehavior(UmlBehavior *ownedBehavior);
- void removeOwnedBehavior(UmlBehavior *ownedBehavior);
-
- // Slots for owned attributes [UseCase]
- void addExtend(UmlExtend *extend);
- void removeExtend(UmlExtend *extend);
- void addExtensionPoint(UmlExtensionPoint *extensionPoint);
- void removeExtensionPoint(UmlExtensionPoint *extensionPoint);
- void addInclude(UmlInclude *include);
- void removeInclude(UmlInclude *include);
- void addSubject(UmlClassifier *subject);
- void removeSubject(UmlClassifier *subject);
+ explicit QUmlUseCase(bool createQObject = true);
+ virtual ~QUmlUseCase();
+
+ // Owned attributes
+ const QSet<QUmlExtend *> extend() const;
+ void addExtend(QUmlExtend *extend);
+ void removeExtend(QUmlExtend *extend);
+ const QSet<QUmlExtensionPoint *> extensionPoint() const;
+ void addExtensionPoint(QUmlExtensionPoint *extensionPoint);
+ void removeExtensionPoint(QUmlExtensionPoint *extensionPoint);
+ const QSet<QUmlInclude *> include() const;
+ void addInclude(QUmlInclude *include);
+ void removeInclude(QUmlInclude *include);
+ const QSet<QUmlClassifier *> subject() const;
+ void addSubject(QUmlClassifier *subject);
+ void removeSubject(QUmlClassifier *subject);
+
+ // Operations
+ QSet<QUmlUseCase *> allIncludedUseCases() const;
+
+protected:
+ QSet<QUmlExtend *> _extend;
+ QSet<QUmlExtensionPoint *> _extensionPoint;
+ QSet<QUmlInclude *> _include;
+ QSet<QUmlClassifier *> _subject;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlUseCase *)
-Q_DECLARE_METATYPE(QList<QUmlUseCase *> *)
-Q_DECLARE_METATYPE(QSet<QUmlUseCase *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlUseCase) *)
QT_END_HEADER
diff --git a/src/uml/qumlvaluepin.cpp b/src/uml/qumlvaluepin.cpp
index 0a35cb37..67dbc4ab 100644
--- a/src/uml/qumlvaluepin.cpp
+++ b/src/uml/qumlvaluepin.cpp
@@ -40,662 +40,63 @@
****************************************************************************/
#include "qumlvaluepin.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlBehavior>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlState>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
+#include "private/qumlvaluepinobject_p.h"
-QT_BEGIN_NAMESPACE
+#include <QtUml/QUmlValueSpecification>
/*!
- \class UmlValuePin
+ \class QUmlValuePin
\inmodule QtUml
\brief A value pin is an input pin that provides a value by evaluating a value specification.
*/
-
-QUmlValuePin::QUmlValuePin(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlValuePin::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlValuePin::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlValuePin::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlValuePin::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlValuePin::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlValuePin::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlValuePin::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlValuePin::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlValuePin::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlValuePin::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlValuePin::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlValuePin::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlValuePin::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlValuePin::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlValuePin::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlValuePin::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlValuePin::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlValuePin::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlValuePin::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlValuePin::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlValuePin::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlValuePin::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlValuePin::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlValuePin::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlValuePin::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlValuePin::redefinedNode() const
+QUmlValuePin::QUmlValuePin(bool createQObject) :
+ QUmlInputPin(false),
+ _value(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
+ if (createQObject)
+ _qObject = new QUmlValuePinObject(this);
}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlValuePin::type() const
+QUmlValuePin::~QUmlValuePin()
{
- return reinterpret_cast<QUmlType *>(_type);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ObjectNode]
-
-/*!
- The required states of the object available at this point in the activity.
- */
-const QSet<QUmlState *> QUmlValuePin::inState() const
-{
- return *(reinterpret_cast<const QSet<QUmlState *> *>(&_inState));
-}
-
-/*!
- Tells whether the type of the object node is to be treated as control.
- */
-bool QUmlValuePin::isControlType() const
-{
- return _isControlType;
-}
-
-/*!
- Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node.
- */
-QtUml::ObjectNodeOrderingKind QUmlValuePin::ordering() const
-{
- return _ordering;
-}
-
-/*!
- Selects tokens for outgoing edges.
- */
-QUmlBehavior *QUmlValuePin::selection() const
-{
- return reinterpret_cast<QUmlBehavior *>(_selection);
-}
-
-/*!
- The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached.
- */
-QUmlValueSpecification *QUmlValuePin::upperBound() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperBound);
-}
-
-// OWNED ATTRIBUTES [Pin]
-
-/*!
- Tells whether the pins provide data to the actions, or just controls when it executes it.
- */
-bool QUmlValuePin::isControl() const
-{
- return _isControl;
-}
-
-// OWNED ATTRIBUTES [ValuePin]
+// OWNED ATTRIBUTES
/*!
Value that the pin will provide.
*/
-QUmlValueSpecification *QUmlValuePin::value() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_value);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlValuePin::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlValuePin::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlValuePin::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlValuePin::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlValuePin::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlValuePin::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlValuePin::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlValuePin::lowerBound() const
-{
- return UmlMultiplicityElement::lowerBound();
-}
-
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-//int QUmlValuePin::upperBound() const
-//{
-// return UmlMultiplicityElement::upperBound();
-//}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlValuePin::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlValuePin::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlValuePin::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlValuePin::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlValuePin::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlValuePin::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlValuePin::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlValuePin::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlValuePin::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlValuePin::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlValuePin::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlValuePin::setLowerValue(QUmlValueSpecification *lowerValue)
+QUmlValueSpecification *
+QUmlValuePin::value() const
{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlValuePin::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlValuePin::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlValuePin::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlValuePin::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlValuePin::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlValuePin::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlValuePin::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlValuePin::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlValuePin::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlValuePin::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlValuePin::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlValuePin::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlValuePin::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlValuePin::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlValuePin::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlValuePin::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlValuePin::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
+ // This is a read-write association end
-void QUmlValuePin::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
+ return _value;
}
-void QUmlValuePin::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlValuePin::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlValuePin::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ObjectNode]
-
-void QUmlValuePin::addInState(UmlState *inState)
-{
- UmlObjectNode::addInState(inState);
-}
-
-void QUmlValuePin::removeInState(UmlState *inState)
-{
- UmlObjectNode::removeInState(inState);
-}
-
-void QUmlValuePin::setControlType(bool isControlType)
-{
- UmlObjectNode::setControlType(isControlType);
-}
-
-void QUmlValuePin::setOrdering(QtUml::ObjectNodeOrderingKind ordering)
-{
- UmlObjectNode::setOrdering(ordering);
-}
-
-void QUmlValuePin::setSelection(QUmlBehavior *selection)
+void QUmlValuePin::setValue(QUmlValueSpecification *value)
{
- UmlObjectNode::setSelection(selection);
-}
+ // This is a read-write association end
-void QUmlValuePin::setUpperBound(QUmlValueSpecification *upperBound)
-{
- UmlObjectNode::setUpperBound(upperBound);
-}
+ if (_value != value) {
+ // Adjust subsetted properties
+ removeOwnedElement(_value);
-// SLOTS FOR OWNED ATTRIBUTES [Pin]
+ _value = value;
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setValue()));
+ value->asQObject()->setParent(this->asQObject());
-void QUmlValuePin::setControl(bool isControl)
-{
- UmlPin::setControl(isControl);
+ // Adjust subsetted properties
+ if (value) {
+ addOwnedElement(value);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [ValuePin]
-
-void QUmlValuePin::setValue(QUmlValueSpecification *value)
-{
- UmlValuePin::setValue(value);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlvaluepin.h b/src/uml/qumlvaluepin.h
index 32d2ef1e..3ae5f0f5 100644
--- a/src/uml/qumlvaluepin.h
+++ b/src/uml/qumlvaluepin.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlvaluepin_p.h"
+#include <QtUml/QUmlInputPin>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,223 +52,25 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlBehavior;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlInterruptibleActivityRegion;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlState;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlType;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlValuePin : public QObject, public UmlValuePin
+class Q_UML_EXPORT QUmlValuePin : public QUmlInputPin
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ObjectNode]
- Q_PROPERTY(QSet<QUmlState *> inState READ inState)
- Q_PROPERTY(bool isControlType READ isControlType)
- Q_PROPERTY(QtUml::ObjectNodeOrderingKind ordering READ ordering)
- Q_PROPERTY(QUmlBehavior * selection READ selection)
- Q_PROPERTY(QUmlValueSpecification * upperBound READ upperBound)
-
- // Properties [Pin]
- Q_PROPERTY(bool isControl READ isControl)
-
- // Properties [ValuePin]
- Q_PROPERTY(QUmlValueSpecification * value READ value)
-
public:
- Q_INVOKABLE explicit QUmlValuePin(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ObjectNode]
- Q_INVOKABLE const QSet<QUmlState *> inState() const;
- Q_INVOKABLE bool isControlType() const;
- Q_INVOKABLE QtUml::ObjectNodeOrderingKind ordering() const;
- Q_INVOKABLE QUmlBehavior *selection() const;
- Q_INVOKABLE QUmlValueSpecification *upperBound() const;
+ explicit QUmlValuePin(bool createQObject = true);
+ virtual ~QUmlValuePin();
- // Owned attributes [Pin]
- Q_INVOKABLE bool isControl() const;
-
- // Owned attributes [ValuePin]
- Q_INVOKABLE QUmlValueSpecification *value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
-// Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ObjectNode]
- void addInState(UmlState *inState);
- void removeInState(UmlState *inState);
- void setControlType(bool isControlType);
- void setOrdering(QtUml::ObjectNodeOrderingKind ordering);
- void setSelection(QUmlBehavior *selection);
- void setUpperBound(QUmlValueSpecification *upperBound);
-
- // Slots for owned attributes [Pin]
- void setControl(bool isControl);
-
- // Slots for owned attributes [ValuePin]
+ // Owned attributes
+ QUmlValueSpecification *value() const;
void setValue(QUmlValueSpecification *value);
+
+protected:
+ QUmlValueSpecification *_value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlValuePin *)
-Q_DECLARE_METATYPE(QList<QUmlValuePin *> *)
-Q_DECLARE_METATYPE(QSet<QUmlValuePin *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlValuePin) *)
QT_END_HEADER
diff --git a/src/uml/qumlvaluespecification.cpp b/src/uml/qumlvaluespecification.cpp
index 00005419..4a558639 100644
--- a/src/uml/qumlvaluespecification.cpp
+++ b/src/uml/qumlvaluespecification.cpp
@@ -40,216 +40,33 @@
****************************************************************************/
#include "qumlvaluespecification.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlValueSpecification
+ \class QUmlValueSpecification
\inmodule QtUml
\brief 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.A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.
*/
-
-QUmlValueSpecification::QUmlValueSpecification(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlValueSpecification::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlValueSpecification::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlValueSpecification::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlValueSpecification::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlValueSpecification::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlValueSpecification::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlValueSpecification::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlValueSpecification::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlValueSpecification::type() const
-{
- return reinterpret_cast<QUmlType *>(_type);
-}
-
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlValueSpecification::owningTemplateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
-}
-
-/*!
- The template parameter that exposes this element as a formal parameter.
- */
-QUmlTemplateParameter *QUmlValueSpecification::templateParameter() const
-{
- return reinterpret_cast<QUmlTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [PackageableElement]
-
-/*!
- Indicates that packageable elements must always have a visibility, i.e., visibility is not optional.
- */
-QtUml::VisibilityKind QUmlValueSpecification::visibility() const
-{
- return _visibility;
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlValueSpecification::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlValueSpecification::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlValueSpecification::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlValueSpecification::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlValueSpecification::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlValueSpecification::separator() const
+QUmlValueSpecification::QUmlValueSpecification()
{
- return UmlNamedElement::separator();
}
-// OPERATIONS [ParameterableElement]
-
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlValueSpecification::isTemplateParameter() const
+QUmlValueSpecification::~QUmlValueSpecification()
{
- return UmlParameterableElement::isTemplateParameter();
}
-// OPERATIONS [ValueSpecification]
+// OPERATIONS
/*!
The query booleanValue() gives a single Boolean value when one can be computed.
*/
bool QUmlValueSpecification::booleanValue() const
{
- return UmlValueSpecification::booleanValue();
+ qWarning("UmlValueSpecification::booleanValue(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -257,7 +74,9 @@ bool QUmlValueSpecification::booleanValue() const
*/
int QUmlValueSpecification::integerValue() const
{
- return UmlValueSpecification::integerValue();
+ qWarning("UmlValueSpecification::integerValue(): to be implemented (operation)");
+
+ return int ();
}
/*!
@@ -265,7 +84,10 @@ int QUmlValueSpecification::integerValue() const
*/
bool QUmlValueSpecification::isCompatibleWith(QUmlParameterableElement *p) const
{
- return UmlValueSpecification::isCompatibleWith(p);
+ qWarning("UmlValueSpecification::isCompatibleWith(): to be implemented (operation)");
+
+ Q_UNUSED(p);
+ return bool ();
}
/*!
@@ -273,7 +95,9 @@ bool QUmlValueSpecification::isCompatibleWith(QUmlParameterableElement *p) const
*/
bool QUmlValueSpecification::isComputable() const
{
- return UmlValueSpecification::isComputable();
+ qWarning("UmlValueSpecification::isComputable(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -281,7 +105,9 @@ bool QUmlValueSpecification::isComputable() const
*/
bool QUmlValueSpecification::isNull() const
{
- return UmlValueSpecification::isNull();
+ qWarning("UmlValueSpecification::isNull(): to be implemented (operation)");
+
+ return bool ();
}
/*!
@@ -289,7 +115,9 @@ bool QUmlValueSpecification::isNull() const
*/
double QUmlValueSpecification::realValue() const
{
- return UmlValueSpecification::realValue();
+ qWarning("UmlValueSpecification::realValue(): to be implemented (operation)");
+
+ return double ();
}
/*!
@@ -297,7 +125,9 @@ double QUmlValueSpecification::realValue() const
*/
QString QUmlValueSpecification::stringValue() const
{
- return UmlValueSpecification::stringValue();
+ qWarning("UmlValueSpecification::stringValue(): to be implemented (operation)");
+
+ return QString ();
}
/*!
@@ -305,67 +135,8 @@ QString QUmlValueSpecification::stringValue() const
*/
int QUmlValueSpecification::unlimitedValue() const
{
- return UmlValueSpecification::unlimitedValue();
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlValueSpecification::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlValueSpecification::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlValueSpecification::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ qWarning("UmlValueSpecification::unlimitedValue(): to be implemented (operation)");
-void QUmlValueSpecification::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
+ return int ();
}
-void QUmlValueSpecification::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlValueSpecification::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlValueSpecification::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlValueSpecification::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-
-void QUmlValueSpecification::setTemplateParameter(QUmlTemplateParameter *templateParameter)
-{
- UmlParameterableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [PackageableElement]
-
-void QUmlValueSpecification::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlPackageableElement::setVisibility(visibility);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlvaluespecification.h b/src/uml/qumlvaluespecification.h
index 6299c65e..ec92a50d 100644
--- a/src/uml/qumlvaluespecification.h
+++ b/src/uml/qumlvaluespecification.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlvaluespecification_p.h"
+#include <QtUml/QUmlTypedElement>
+#include <QtUml/QUmlPackageableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,119 +53,32 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlParameterableElement;
-class QUmlStringExpression;
-class QUmlTemplateParameter;
-class QUmlType;
-class Q_UML_EXPORT QUmlValueSpecification : public QObject, public UmlValueSpecification
+class Q_UML_EXPORT QUmlValueSpecification : public QUmlTypedElement, public QUmlPackageableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
+public:
+ virtual ~QUmlValueSpecification();
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
- Q_PROPERTY(QUmlTemplateParameter * templateParameter READ templateParameter)
+ // Operations
+ bool booleanValue() const;
+ int integerValue() const;
+ bool isCompatibleWith(QUmlParameterableElement *p) const;
+ bool isComputable() const;
+ bool isNull() const;
+ double realValue() const;
+ QString stringValue() const;
+ int unlimitedValue() const;
- // Properties [PackageableElement]
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
+protected:
+ explicit QUmlValueSpecification();
-public:
- Q_DECL_HIDDEN explicit QUmlValueSpecification(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
- Q_INVOKABLE QUmlTemplateParameter *templateParameter() const;
-
- // Owned attributes [PackageableElement]
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [ValueSpecification]
- Q_INVOKABLE bool booleanValue() const;
- Q_INVOKABLE int integerValue() const;
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isComputable() const;
- Q_INVOKABLE bool isNull() const;
- Q_INVOKABLE double realValue() const;
- Q_INVOKABLE QString stringValue() const;
- Q_INVOKABLE int unlimitedValue() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
- void setTemplateParameter(QUmlTemplateParameter *templateParameter);
-
- // Slots for owned attributes [PackageableElement]
- void setVisibility(QtUml::VisibilityKind visibility);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlValueSpecification *)
-Q_DECLARE_METATYPE(QList<QUmlValueSpecification *> *)
-Q_DECLARE_METATYPE(QSet<QUmlValueSpecification *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlValueSpecification) *)
QT_END_HEADER
diff --git a/src/uml/qumlvaluespecificationaction.cpp b/src/uml/qumlvaluespecificationaction.cpp
index 4d02990e..9a17ea94 100644
--- a/src/uml/qumlvaluespecificationaction.cpp
+++ b/src/uml/qumlvaluespecificationaction.cpp
@@ -40,526 +40,95 @@
****************************************************************************/
#include "qumlvaluespecificationaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
+#include "private/qumlvaluespecificationactionobject_p.h"
+
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
#include <QtUml/QUmlValueSpecification>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlValueSpecificationAction
+ \class QUmlValueSpecificationAction
\inmodule QtUml
\brief A value specification action is an action that evaluates a value specification.
*/
-
-QUmlValueSpecificationAction::QUmlValueSpecificationAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlValueSpecificationAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlValueSpecificationAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlValueSpecificationAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlValueSpecificationAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlValueSpecificationAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlValueSpecificationAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlValueSpecificationAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlValueSpecificationAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlValueSpecificationAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlValueSpecificationAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlValueSpecificationAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlValueSpecificationAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlValueSpecificationAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlValueSpecificationAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlValueSpecificationAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlValueSpecificationAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlValueSpecificationAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlValueSpecificationAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlValueSpecificationAction::outgoing() const
+QUmlValueSpecificationAction::QUmlValueSpecificationAction(bool createQObject) :
+ _result(0),
+ _value(0)
{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
+ if (createQObject)
+ _qObject = new QUmlValueSpecificationActionObject(this);
}
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlValueSpecificationAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlValueSpecificationAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlValueSpecificationAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlValueSpecificationAction::input() const
+QUmlValueSpecificationAction::~QUmlValueSpecificationAction()
{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlValueSpecificationAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlValueSpecificationAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlValueSpecificationAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlValueSpecificationAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [ValueSpecificationAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the result is put.
*/
-QUmlOutputPin *QUmlValueSpecificationAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-/*!
- Value specification to be evaluated.
- */
-QUmlValueSpecification *QUmlValueSpecificationAction::value() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_value);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlValueSpecificationAction::allOwnedElements() const
+QUmlOutputPin *
+QUmlValueSpecificationAction::result() const
{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlValueSpecificationAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _result;
}
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlValueSpecificationAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlValueSpecificationAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlValueSpecificationAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlValueSpecificationAction::setResult(QUmlOutputPin *result)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlValueSpecificationAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// OPERATIONS [RedefinableElement]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlValueSpecificationAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
/*!
- 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.
+ Value specification to be evaluated.
*/
-bool QUmlValueSpecificationAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlValueSpecificationAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlValueSpecificationAction::removeOwnedComment(UmlComment *ownedComment)
+QUmlValueSpecification *
+QUmlValueSpecificationAction::value() const
{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlValueSpecificationAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
+ // This is a read-write association end
-void QUmlValueSpecificationAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlValueSpecificationAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
+ return _value;
}
-void QUmlValueSpecificationAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlValueSpecificationAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlValueSpecificationAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlValueSpecificationAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlValueSpecificationAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlValueSpecificationAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlValueSpecificationAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlValueSpecificationAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlValueSpecificationAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlValueSpecificationAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlValueSpecificationAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlValueSpecificationAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlValueSpecificationAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlValueSpecificationAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlValueSpecificationAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlValueSpecificationAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlValueSpecificationAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlValueSpecificationAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlValueSpecificationAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlValueSpecificationAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlValueSpecificationAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlValueSpecificationAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlValueSpecificationAction::setValue(QUmlValueSpecification *value)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [ValueSpecificationAction]
+ if (_value != value) {
+ // Adjust subsetted properties
+ removeOwnedElement(_value);
-void QUmlValueSpecificationAction::setResult(QUmlOutputPin *result)
-{
- UmlValueSpecificationAction::setResult(result);
-}
+ _value = value;
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setValue()));
+ value->asQObject()->setParent(this->asQObject());
-void QUmlValueSpecificationAction::setValue(QUmlValueSpecification *value)
-{
- UmlValueSpecificationAction::setValue(value);
+ // Adjust subsetted properties
+ if (value) {
+ addOwnedElement(value);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlvaluespecificationaction.h b/src/uml/qumlvaluespecificationaction.h
index da4dee11..5704f2a8 100644
--- a/src/uml/qumlvaluespecificationaction.h
+++ b/src/uml/qumlvaluespecificationaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlvaluespecificationaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,186 +52,29 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlValueSpecificationAction : public QObject, public UmlValueSpecificationAction
+class Q_UML_EXPORT QUmlValueSpecificationAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [ValueSpecificationAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
- Q_PROPERTY(QUmlValueSpecification * value READ value)
-
public:
- Q_INVOKABLE explicit QUmlValueSpecificationAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
+ explicit QUmlValueSpecificationAction(bool createQObject = true);
+ virtual ~QUmlValueSpecificationAction();
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [ValueSpecificationAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
- Q_INVOKABLE QUmlValueSpecification *value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [ValueSpecificationAction]
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+ QUmlValueSpecification *value() const;
void setValue(QUmlValueSpecification *value);
+
+protected:
+ QUmlOutputPin *_result;
+ QUmlValueSpecification *_value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlValueSpecificationAction *)
-Q_DECLARE_METATYPE(QList<QUmlValueSpecificationAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlValueSpecificationAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlValueSpecificationAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlvariable.cpp b/src/uml/qumlvariable.cpp
index 495e6dd4..557707e3 100644
--- a/src/uml/qumlvariable.cpp
+++ b/src/uml/qumlvariable.cpp
@@ -40,472 +40,101 @@
****************************************************************************/
#include "qumlvariable.h"
+#include "private/qumlvariableobject_p.h"
+
#include <QtUml/QUmlAction>
#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConnectableElementTemplateParameter>
-#include <QtUml/QUmlConnectorEnd>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlMultiplicityElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlParameterableElement>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlTemplateParameter>
-#include <QtUml/QUmlType>
-#include <QtUml/QUmlValueSpecification>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlVariable
+ \class QUmlVariable
\inmodule QtUml
\brief A variable is considered a connectable element.Variables are elements for passing data between actions indirectly. A local variable stores values shared by the actions within a structured activity group but not accessible outside it. The output of an action may be written to a variable and read for the input to a subsequent action, which is effectively an indirect data flow path. Because there is no predefined relationship between actions that read and write variables, these actions must be sequenced by control flows to prevent race conditions that may occur between actions that read or write the same variable.
*/
-
-QUmlVariable::QUmlVariable(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlVariable::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlVariable::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlVariable::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [MultiplicityElement]
-
-/*!
- For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.
- */
-bool QUmlVariable::isOrdered() const
-{
- return _isOrdered;
-}
-
-/*!
- For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.
- */
-bool QUmlVariable::isUnique() const
-{
- return _isUnique;
-}
-
-/*!
- Specifies the lower bound of the multiplicity interval.
- */
-int QUmlVariable::lower() const
-{
- return UmlMultiplicityElement::lower();
-}
-
-/*!
- The specification of the lower bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlVariable::lowerValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_lowerValue);
-}
-
-/*!
- Specifies the upper bound of the multiplicity interval.
- */
-int QUmlVariable::upper() const
-{
- return UmlMultiplicityElement::upper();
-}
-
-/*!
- The specification of the upper bound for this multiplicity.
- */
-QUmlValueSpecification *QUmlVariable::upperValue() const
-{
- return reinterpret_cast<QUmlValueSpecification *>(_upperValue);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlVariable::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlVariable::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlVariable::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlVariable::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlVariable::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlVariable::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [TypedElement]
-
-/*!
- This information is derived from the return result for this Operation.The type of the TypedElement.
- */
-QUmlType *QUmlVariable::type() const
+QUmlVariable::QUmlVariable(bool createQObject) :
+ _activityScope(0),
+ _scope(0)
{
- return reinterpret_cast<QUmlType *>(_type);
+ if (createQObject)
+ _qObject = new QUmlVariableObject(this);
}
-// OWNED ATTRIBUTES [ParameterableElement]
-
-/*!
- The formal template parameter that owns this element.
- */
-QUmlTemplateParameter *QUmlVariable::owningTemplateParameter() const
+QUmlVariable::~QUmlVariable()
{
- return reinterpret_cast<QUmlTemplateParameter *>(_owningTemplateParameter);
+ if (!deletingFromQObject) {
+ _qObject->setProperty("deletingFromModelingObject", true);
+ delete _qObject;
+ }
}
-// OWNED ATTRIBUTES [ConnectableElement]
-/*!
- Denotes a set of connector ends that attaches to this connectable element.
- */
-const QList<QUmlConnectorEnd *> QUmlVariable::end() const
-{
- QList<QUmlConnectorEnd *> r;
- foreach (UmlConnectorEnd *element, UmlConnectableElement::end())
- r.append(reinterpret_cast<QUmlConnectorEnd *>(element));
- return r;
-}
-
-/*!
- The ConnectableElementTemplateParameter for this ConnectableElement parameter.
- */
-QUmlConnectableElementTemplateParameter *QUmlVariable::templateParameter() const
-{
- return reinterpret_cast<QUmlConnectableElementTemplateParameter *>(_templateParameter);
-}
-
-// OWNED ATTRIBUTES [Variable]
+// OWNED ATTRIBUTES
/*!
An activity that owns the variable.
*/
-QUmlActivity *QUmlVariable::activityScope() const
+QUmlActivity *
+QUmlVariable::activityScope() const
{
- return reinterpret_cast<QUmlActivity *>(_activityScope);
-}
+ // This is a read-write association end
-/*!
- A structured activity node that owns the variable.
- */
-QUmlStructuredActivityNode *QUmlVariable::scope() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_scope);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlVariable::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlVariable::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
+ return _activityScope;
}
-// OPERATIONS [MultiplicityElement]
-
-/*!
- The operation compatibleWith takes another multiplicity as input. It checks if one multiplicity is compatible with another.
- */
-bool QUmlVariable::compatibleWith(QUmlMultiplicityElement *other) const
-{
- return UmlMultiplicityElement::compatibleWith(other);
-}
-
-/*!
- The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.
- */
-bool QUmlVariable::includesCardinality(int C) const
-{
- return UmlMultiplicityElement::includesCardinality(C);
-}
-
-/*!
- The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.
- */
-bool QUmlVariable::includesMultiplicity(QUmlMultiplicityElement *M) const
-{
- return UmlMultiplicityElement::includesMultiplicity(M);
-}
-
-/*!
- The operation is determines if the upper and lower bound of the ranges are the ones given.
- */
-bool QUmlVariable::is(int lowerbound, int upperbound) const
-{
- return UmlMultiplicityElement::is(lowerbound, upperbound);
-}
-
-/*!
- The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.
- */
-bool QUmlVariable::isMultivalued() const
-{
- return UmlMultiplicityElement::isMultivalued();
-}
-
-/*!
- The query lowerBound() returns the lower bound of the multiplicity as an integer.
- */
-int QUmlVariable::lowerBound() const
+void QUmlVariable::setActivityScope(QUmlActivity *activityScope)
{
- return UmlMultiplicityElement::lowerBound();
-}
+ // This is a read-write association end
-/*!
- The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.
- */
-int QUmlVariable::upperBound() const
-{
- return UmlMultiplicityElement::upperBound();
-}
+ if (_activityScope != activityScope) {
+ // Adjust subsetted properties
-// OPERATIONS [NamedElement]
+ _activityScope = activityScope;
+ if (activityScope->asQObject() && this->asQObject())
+ QObject::connect(activityScope->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setActivityScope()));
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlVariable::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
+ // Adjust subsetted properties
+ setNamespace(activityScope);
+ }
}
/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
+ A structured activity node that owns the variable.
*/
-QSet<QUmlPackage *> QUmlVariable::allOwningPackages() const
+QUmlStructuredActivityNode *
+QUmlVariable::scope() const
{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- 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.
- */
-bool QUmlVariable::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ return _scope;
}
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlVariable::separator() const
+void QUmlVariable::setScope(QUmlStructuredActivityNode *scope)
{
- return UmlNamedElement::separator();
-}
+ // This is a read-write association end
-// OPERATIONS [ParameterableElement]
+ if (_scope != scope) {
+ // Adjust subsetted properties
-/*!
- 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.
- */
-bool QUmlVariable::isCompatibleWith(QUmlParameterableElement *p) const
-{
- return UmlParameterableElement::isCompatibleWith(p);
-}
+ _scope = scope;
+ if (scope->asQObject() && this->asQObject())
+ QObject::connect(scope->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setScope()));
-/*!
- The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.
- */
-bool QUmlVariable::isTemplateParameter() const
-{
- return UmlParameterableElement::isTemplateParameter();
+ // Adjust subsetted properties
+ setNamespace(scope);
+ }
}
-// OPERATIONS [Variable]
+// OPERATIONS
/*!
The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.
*/
bool QUmlVariable::isAccessibleBy(QUmlAction *a) const
{
- return UmlVariable::isAccessibleBy(a);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
+ qWarning("UmlVariable::isAccessibleBy(): to be implemented (operation)");
-void QUmlVariable::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
+ Q_UNUSED(a);
+ return bool ();
}
-void QUmlVariable::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [MultiplicityElement]
-
-void QUmlVariable::setOrdered(bool isOrdered)
-{
- UmlMultiplicityElement::setOrdered(isOrdered);
-}
-
-void QUmlVariable::setUnique(bool isUnique)
-{
- UmlMultiplicityElement::setUnique(isUnique);
-}
-
-void QUmlVariable::setLower(int lower)
-{
- UmlMultiplicityElement::setLower(lower);
-}
-
-void QUmlVariable::setLowerValue(QUmlValueSpecification *lowerValue)
-{
- UmlMultiplicityElement::setLowerValue(lowerValue);
-}
-
-void QUmlVariable::setUpper(int upper)
-{
- UmlMultiplicityElement::setUpper(upper);
-}
-
-void QUmlVariable::setUpperValue(QUmlValueSpecification *upperValue)
-{
- UmlMultiplicityElement::setUpperValue(upperValue);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlVariable::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlVariable::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlVariable::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlVariable::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlVariable::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [TypedElement]
-
-void QUmlVariable::setType(QUmlType *type)
-{
- UmlTypedElement::setType(type);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ParameterableElement]
-
-void QUmlVariable::setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter)
-{
- UmlParameterableElement::setOwningTemplateParameter(owningTemplateParameter);
-}
-// SLOTS FOR OWNED ATTRIBUTES [ConnectableElement]
-
-void QUmlVariable::setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter)
-{
- UmlConnectableElement::setTemplateParameter(templateParameter);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Variable]
-
-void QUmlVariable::setActivityScope(QUmlActivity *activityScope)
-{
- UmlVariable::setActivityScope(activityScope);
-}
-
-void QUmlVariable::setScope(QUmlStructuredActivityNode *scope)
-{
- UmlVariable::setScope(scope);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlvariable.h b/src/uml/qumlvariable.h
index fe853899..5732d9d2 100644
--- a/src/uml/qumlvariable.h
+++ b/src/uml/qumlvariable.h
@@ -43,10 +43,9 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlvariable_p.h"
+#include <QtUml/QUmlMultiplicityElement>
+#include <QtUml/QUmlConnectableElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -56,165 +55,31 @@ QT_MODULE(QtUml)
class QUmlAction;
class QUmlActivity;
-class QUmlComment;
-class QUmlConnectableElementTemplateParameter;
-class QUmlConnectorEnd;
-class QUmlDependency;
-class QUmlElement;
-class QUmlMultiplicityElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
-class QUmlParameterableElement;
-class QUmlStringExpression;
class QUmlStructuredActivityNode;
-class QUmlTemplateParameter;
-class QUmlType;
-class QUmlValueSpecification;
-class Q_UML_EXPORT QUmlVariable : public QObject, public UmlVariable
+class Q_UML_EXPORT QUmlVariable : public QUmlMultiplicityElement, public QUmlConnectableElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [MultiplicityElement]
- Q_PROPERTY(bool isOrdered READ isOrdered)
- Q_PROPERTY(bool isUnique READ isUnique)
- Q_PROPERTY(int lower READ lower)
- Q_PROPERTY(QUmlValueSpecification * lowerValue READ lowerValue)
- Q_PROPERTY(int upper READ upper)
- Q_PROPERTY(QUmlValueSpecification * upperValue READ upperValue)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [TypedElement]
- Q_PROPERTY(QUmlType * type READ type)
-
- // Properties [ParameterableElement]
- Q_PROPERTY(QUmlTemplateParameter * owningTemplateParameter READ owningTemplateParameter)
-
- // Properties [ConnectableElement]
- Q_PROPERTY(QList<QUmlConnectorEnd *> end READ end)
- Q_PROPERTY(QUmlConnectableElementTemplateParameter * templateParameter READ templateParameter)
-
- // Properties [Variable]
- Q_PROPERTY(QUmlActivity * activityScope READ activityScope)
- Q_PROPERTY(QUmlStructuredActivityNode * scope READ scope)
-
public:
- Q_INVOKABLE explicit QUmlVariable(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [MultiplicityElement]
- Q_INVOKABLE bool isOrdered() const;
- Q_INVOKABLE bool isUnique() const;
- Q_INVOKABLE int lower() const;
- Q_INVOKABLE QUmlValueSpecification *lowerValue() const;
- Q_INVOKABLE int upper() const;
- Q_INVOKABLE QUmlValueSpecification *upperValue() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [TypedElement]
- Q_INVOKABLE QUmlType *type() const;
-
- // Owned attributes [ParameterableElement]
- Q_INVOKABLE QUmlTemplateParameter *owningTemplateParameter() const;
-
- // Owned attributes [ConnectableElement]
- Q_INVOKABLE const QList<QUmlConnectorEnd *> end() const;
- Q_INVOKABLE QUmlConnectableElementTemplateParameter *templateParameter() const;
-
- // Owned attributes [Variable]
- Q_INVOKABLE QUmlActivity *activityScope() const;
- Q_INVOKABLE QUmlStructuredActivityNode *scope() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [MultiplicityElement]
- Q_INVOKABLE bool compatibleWith(QUmlMultiplicityElement *other) const;
- Q_INVOKABLE bool includesCardinality(int C) const;
- Q_INVOKABLE bool includesMultiplicity(QUmlMultiplicityElement *M) const;
- Q_INVOKABLE bool is(int lowerbound, int upperbound) const;
- Q_INVOKABLE bool isMultivalued() const;
- Q_INVOKABLE int lowerBound() const;
- Q_INVOKABLE int upperBound() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [ParameterableElement]
- Q_INVOKABLE bool isCompatibleWith(QUmlParameterableElement *p) const;
- Q_INVOKABLE bool isTemplateParameter() const;
-
- // Operations [Variable]
- Q_INVOKABLE bool isAccessibleBy(QUmlAction *a) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [MultiplicityElement]
- void setOrdered(bool isOrdered);
- void setUnique(bool isUnique);
- void setLower(int lower);
- void setLowerValue(QUmlValueSpecification *lowerValue);
- void setUpper(int upper);
- void setUpperValue(QUmlValueSpecification *upperValue);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [TypedElement]
- void setType(QUmlType *type);
-
- // Slots for owned attributes [ParameterableElement]
- void setOwningTemplateParameter(QUmlTemplateParameter *owningTemplateParameter);
-
- // Slots for owned attributes [ConnectableElement]
- void setTemplateParameter(QUmlConnectableElementTemplateParameter *templateParameter);
-
- // Slots for owned attributes [Variable]
+ explicit QUmlVariable(bool createQObject = true);
+ virtual ~QUmlVariable();
+
+ // Owned attributes
+ QUmlActivity *activityScope() const;
void setActivityScope(QUmlActivity *activityScope);
+ QUmlStructuredActivityNode *scope() const;
void setScope(QUmlStructuredActivityNode *scope);
+
+ // Operations
+ bool isAccessibleBy(QUmlAction *a) const;
+
+protected:
+ QUmlActivity *_activityScope;
+ QUmlStructuredActivityNode *_scope;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlVariable *)
-Q_DECLARE_METATYPE(QList<QUmlVariable *> *)
-Q_DECLARE_METATYPE(QSet<QUmlVariable *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlVariable) *)
QT_END_HEADER
diff --git a/src/uml/qumlvariableaction.cpp b/src/uml/qumlvariableaction.cpp
index 55f9c361..6de6b51d 100644
--- a/src/uml/qumlvariableaction.cpp
+++ b/src/uml/qumlvariableaction.cpp
@@ -40,513 +40,45 @@
****************************************************************************/
#include "qumlvariableaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
#include <QtUml/QUmlVariable>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlVariableAction
+ \class QUmlVariableAction
\inmodule QtUml
\brief VariableAction is an abstract class for actions that operate on a statically specified variable.
*/
-
-QUmlVariableAction::QUmlVariableAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlVariableAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlVariableAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlVariableAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlVariableAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlVariableAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlVariableAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlVariableAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlVariableAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlVariableAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlVariableAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlVariableAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlVariableAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlVariableAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlVariableAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlVariableAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlVariableAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlVariableAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlVariableAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlVariableAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlVariableAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlVariableAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlVariableAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlVariableAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlVariableAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlVariableAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlVariableAction::localPrecondition() const
+QUmlVariableAction::QUmlVariableAction() :
+ _variable(0)
{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
}
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlVariableAction::output() const
+QUmlVariableAction::~QUmlVariableAction()
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
}
-// OWNED ATTRIBUTES [VariableAction]
+// OWNED ATTRIBUTES
/*!
Variable to be read.
*/
-QUmlVariable *QUmlVariableAction::variable() const
-{
- return reinterpret_cast<QUmlVariable *>(_variable);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlVariableAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlVariableAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlVariableAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlVariableAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlVariableAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlVariableAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlVariableAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlVariableAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlVariableAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlVariableAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlVariableAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlVariableAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlVariableAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlVariableAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlVariableAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlVariableAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlVariableAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlVariableAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlVariableAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlVariableAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlVariableAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlVariableAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlVariableAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlVariableAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlVariableAction::addOutgoing(UmlActivityEdge *outgoing)
+QUmlVariable *
+QUmlVariableAction::variable() const
{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlVariableAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlVariableAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlVariableAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlVariableAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlVariableAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlVariableAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlVariableAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
+ return _variable;
}
-void QUmlVariableAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlVariableAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlVariableAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
-
void QUmlVariableAction::setVariable(QUmlVariable *variable)
{
- UmlVariableAction::setVariable(variable);
-}
+ // This is a read-write association end
-QT_END_NAMESPACE
+ if (_variable != variable) {
+ _variable = variable;
+ if (variable->asQObject() && this->asQObject())
+ QObject::connect(variable->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setVariable()));
+ }
+}
diff --git a/src/uml/qumlvariableaction.h b/src/uml/qumlvariableaction.h
index 3c26526a..c7bc2a0f 100644
--- a/src/uml/qumlvariableaction.h
+++ b/src/uml/qumlvariableaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlvariableaction_p.h"
+#include <QtUml/QUmlAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,183 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
class QUmlVariable;
-class Q_UML_EXPORT QUmlVariableAction : public QObject, public UmlVariableAction
+class Q_UML_EXPORT QUmlVariableAction : public QUmlAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [VariableAction]
- Q_PROPERTY(QUmlVariable * variable READ variable)
-
public:
- Q_DECL_HIDDEN explicit QUmlVariableAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [VariableAction]
- Q_INVOKABLE QUmlVariable *variable() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [VariableAction]
+ virtual ~QUmlVariableAction();
+
+ // Owned attributes
+ QUmlVariable *variable() const;
void setVariable(QUmlVariable *variable);
+
+protected:
+ explicit QUmlVariableAction();
+
+ QUmlVariable *_variable;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlVariableAction *)
-Q_DECLARE_METATYPE(QList<QUmlVariableAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlVariableAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlVariableAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlvertex.cpp b/src/uml/qumlvertex.cpp
index 798a3a7d..ead5585b 100644
--- a/src/uml/qumlvertex.cpp
+++ b/src/uml/qumlvertex.cpp
@@ -40,256 +40,158 @@
****************************************************************************/
#include "qumlvertex.h"
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlPackage>
#include <QtUml/QUmlRegion>
#include <QtUml/QUmlStateMachine>
-#include <QtUml/QUmlStringExpression>
#include <QtUml/QUmlTransition>
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlVertex
+ \class QUmlVertex
\inmodule QtUml
\brief 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.
*/
-
-QUmlVertex::QUmlVertex(QObject *parent) :
- QObject(parent)
+QUmlVertex::QUmlVertex() :
+ _container(0)
{
}
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlVertex::ownedComment() const
+QUmlVertex::~QUmlVertex()
{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
}
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlVertex::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
+// OWNED ATTRIBUTES
/*!
- The Element that owns this element.
+ The region that contains this vertex.
*/
-QUmlElement *QUmlVertex::owner() const
+QUmlRegion *
+QUmlVertex::container() const
{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
+ // This is a read-write association end
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlVertex::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
+ return _container;
}
-/*!
- The name of the NamedElement.
- */
-QString QUmlVertex::name() const
+void QUmlVertex::setContainer(QUmlRegion *container)
{
- return _name;
-}
+ // This is a read-write association end
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlVertex::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
+ if (_container != container) {
+ // Adjust subsetted properties
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlVertex::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
+ _container = container;
+ if (container->asQObject() && this->asQObject())
+ QObject::connect(container->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setContainer()));
-/*!
- 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.
- */
-QString QUmlVertex::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
+ // Adjust subsetted properties
+ setNamespace(container);
+ }
}
/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
+ Specifies the transitions entering this vertex.
*/
-QtUml::VisibilityKind QUmlVertex::visibility() const
+const QSet<QUmlTransition *>
+QUmlVertex::incoming() const
{
- return _visibility;
-}
+ // This is a read-only derived association end
-// OWNED ATTRIBUTES [Vertex]
+ qWarning("UmlVertex::incoming(): to be implemented (this is a derived association end)");
-/*!
- The region that contains this vertex.
- */
-QUmlRegion *QUmlVertex::container() const
-{
- return reinterpret_cast<QUmlRegion *>(_container);
+ return QSet<QUmlTransition *>();
}
-/*!
- Specifies the transitions entering this vertex.
- */
-const QSet<QUmlTransition *> QUmlVertex::incoming() const
+void QUmlVertex::addIncoming(QUmlTransition *incoming)
{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::incoming())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
+ // This is a read-only derived association end
-/*!
- Specifies the transitions departing from this vertex.
- */
-const QSet<QUmlTransition *> QUmlVertex::outgoing() const
-{
- QSet<QUmlTransition *> r;
- foreach (UmlTransition *element, UmlVertex::outgoing())
- r.insert(reinterpret_cast<QUmlTransition *>(element));
- return r;
-}
+ qWarning("UmlVertex::incoming(): to be implemented (this is a derived association end)");
+ Q_UNUSED(incoming);
-// OPERATIONS [Element]
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlVertex::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
+ // Adjust opposite properties
+ if (incoming) {
+ incoming->setTarget(this);
+ }
+ }
}
-/*!
- 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.
- */
-bool QUmlVertex::mustBeOwned() const
+void QUmlVertex::removeIncoming(QUmlTransition *incoming)
{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
+ // This is a read-only derived association end
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlVertex::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ qWarning("UmlVertex::incoming(): to be implemented (this is a derived association end)");
+ Q_UNUSED(incoming);
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlVertex::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-/*!
- 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.
- */
-bool QUmlVertex::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
+ // Adjust opposite properties
+ if (incoming) {
+ incoming->setTarget(0);
+ }
+ }
}
/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
+ Specifies the transitions departing from this vertex.
*/
-QString QUmlVertex::separator() const
+const QSet<QUmlTransition *>
+QUmlVertex::outgoing() const
{
- return UmlNamedElement::separator();
-}
+ // This is a read-only derived association end
-// OPERATIONS [Vertex]
+ qWarning("UmlVertex::outgoing(): to be implemented (this is a derived association end)");
-/*!
- The operation containingStateMachine() returns the state machine in which this Vertex is defined
- */
-QUmlStateMachine *QUmlVertex::containingStateMachine() const
-{
- return reinterpret_cast<QUmlStateMachine *>(UmlVertex::containingStateMachine());
+ return QSet<QUmlTransition *>();
}
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlVertex::addOwnedComment(UmlComment *ownedComment)
+void QUmlVertex::addOutgoing(QUmlTransition *outgoing)
{
- UmlElement::addOwnedComment(ownedComment);
-}
+ // This is a read-only derived association end
-void QUmlVertex::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
+ qWarning("UmlVertex::outgoing(): to be implemented (this is a derived association end)");
+ Q_UNUSED(outgoing);
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-void QUmlVertex::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
+ // Adjust opposite properties
+ if (outgoing) {
+ outgoing->setSource(this);
+ }
+ }
}
-void QUmlVertex::removeClientDependency(UmlDependency *clientDependency)
+void QUmlVertex::removeOutgoing(QUmlTransition *outgoing)
{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
+ // This is a read-only derived association end
-void QUmlVertex::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
+ qWarning("UmlVertex::outgoing(): to be implemented (this is a derived association end)");
+ Q_UNUSED(outgoing);
-void QUmlVertex::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
+ if (false /* <derivedexclusion-criteria> */) {
+ // <derived-code>
-void QUmlVertex::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
+ // Adjust opposite properties
+ if (outgoing) {
+ outgoing->setSource(0);
+ }
+ }
}
-// SLOTS FOR OWNED ATTRIBUTES [Vertex]
+// OPERATIONS
-void QUmlVertex::setContainer(QUmlRegion *container)
+/*!
+ The operation containingStateMachine() returns the state machine in which this Vertex is defined
+ */
+QUmlStateMachine *QUmlVertex::containingStateMachine() const
{
- UmlVertex::setContainer(container);
-}
+ qWarning("UmlVertex::containingStateMachine(): to be implemented (operation)");
-QT_END_NAMESPACE
+ return 0;
+}
diff --git a/src/uml/qumlvertex.h b/src/uml/qumlvertex.h
index 07f9de0d..f70a6950 100644
--- a/src/uml/qumlvertex.h
+++ b/src/uml/qumlvertex.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlvertex_p.h"
+#include <QtUml/QUmlNamedElement>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,95 +52,37 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlComment;
-class QUmlDependency;
-class QUmlElement;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlPackage;
class QUmlRegion;
class QUmlStateMachine;
-class QUmlStringExpression;
class QUmlTransition;
-class Q_UML_EXPORT QUmlVertex : public QObject, public UmlVertex
+class Q_UML_EXPORT QUmlVertex : public virtual QUmlNamedElement
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [Vertex]
- Q_PROPERTY(QUmlRegion * container READ container)
- Q_PROPERTY(QSet<QUmlTransition *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlTransition *> outgoing READ outgoing)
-
public:
- Q_DECL_HIDDEN explicit QUmlVertex(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [Vertex]
- Q_INVOKABLE QUmlRegion *container() const;
- Q_INVOKABLE const QSet<QUmlTransition *> incoming() const;
- Q_INVOKABLE const QSet<QUmlTransition *> outgoing() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [Vertex]
- Q_INVOKABLE QUmlStateMachine *containingStateMachine() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [Vertex]
+ virtual ~QUmlVertex();
+
+ // Owned attributes
+ QUmlRegion *container() const;
void setContainer(QUmlRegion *container);
+ const QSet<QUmlTransition *> incoming() const;
+ Q_DECL_HIDDEN void addIncoming(QUmlTransition *incoming);
+ Q_DECL_HIDDEN void removeIncoming(QUmlTransition *incoming);
+ const QSet<QUmlTransition *> outgoing() const;
+ Q_DECL_HIDDEN void addOutgoing(QUmlTransition *outgoing);
+ Q_DECL_HIDDEN void removeOutgoing(QUmlTransition *outgoing);
+
+ // Operations
+ QUmlStateMachine *containingStateMachine() const;
+
+protected:
+ explicit QUmlVertex();
+
+ QUmlRegion *_container;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlVertex *)
-Q_DECLARE_METATYPE(QList<QUmlVertex *> *)
-Q_DECLARE_METATYPE(QSet<QUmlVertex *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlVertex) *)
QT_END_HEADER
diff --git a/src/uml/qumlwritelinkaction.cpp b/src/uml/qumlwritelinkaction.cpp
index 1dcb5578..e8c89df6 100644
--- a/src/uml/qumlwritelinkaction.cpp
+++ b/src/uml/qumlwritelinkaction.cpp
@@ -40,547 +40,18 @@
****************************************************************************/
#include "qumlwritelinkaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlAssociation>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
-#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlLinkEndData>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
-
/*!
- \class UmlWriteLinkAction
+ \class QUmlWriteLinkAction
\inmodule QtUml
\brief WriteLinkAction is an abstract class for link actions that create and destroy links.
*/
-
-QUmlWriteLinkAction::QUmlWriteLinkAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlWriteLinkAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlWriteLinkAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlWriteLinkAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlWriteLinkAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlWriteLinkAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlWriteLinkAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlWriteLinkAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlWriteLinkAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlWriteLinkAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlWriteLinkAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlWriteLinkAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlWriteLinkAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlWriteLinkAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlWriteLinkAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlWriteLinkAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlWriteLinkAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlWriteLinkAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlWriteLinkAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlWriteLinkAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlWriteLinkAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlWriteLinkAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlWriteLinkAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlWriteLinkAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlWriteLinkAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlWriteLinkAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlWriteLinkAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlWriteLinkAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [LinkAction]
-
-/*!
- Data identifying one end of a link by the objects on its ends and qualifiers.
- */
-const QSet<QUmlLinkEndData *> QUmlWriteLinkAction::endData() const
-{
- return *(reinterpret_cast<const QSet<QUmlLinkEndData *> *>(&_endData));
-}
-
-/*!
- Pins taking end objects and qualifier values as input.
- */
-const QSet<QUmlInputPin *> QUmlWriteLinkAction::inputValue() const
-{
- return *(reinterpret_cast<const QSet<QUmlInputPin *> *>(&_inputValue));
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlWriteLinkAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlWriteLinkAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlWriteLinkAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlWriteLinkAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlWriteLinkAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlWriteLinkAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlWriteLinkAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlWriteLinkAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// OPERATIONS [LinkAction]
-
-/*!
- The association operates on LinkAction. It returns the association of the action.
- */
-QUmlAssociation *QUmlWriteLinkAction::association() const
-{
- return reinterpret_cast<QUmlAssociation *>(UmlLinkAction::association());
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlWriteLinkAction::addOwnedComment(UmlComment *ownedComment)
+QUmlWriteLinkAction::QUmlWriteLinkAction()
{
- UmlElement::addOwnedComment(ownedComment);
}
-void QUmlWriteLinkAction::removeOwnedComment(UmlComment *ownedComment)
+QUmlWriteLinkAction::~QUmlWriteLinkAction()
{
- UmlElement::removeOwnedComment(ownedComment);
}
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlWriteLinkAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlWriteLinkAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlWriteLinkAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlWriteLinkAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlWriteLinkAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlWriteLinkAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlWriteLinkAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlWriteLinkAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlWriteLinkAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlWriteLinkAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlWriteLinkAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlWriteLinkAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlWriteLinkAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlWriteLinkAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlWriteLinkAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlWriteLinkAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlWriteLinkAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlWriteLinkAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlWriteLinkAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlWriteLinkAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlWriteLinkAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlWriteLinkAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlWriteLinkAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlWriteLinkAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlWriteLinkAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [LinkAction]
-
-void QUmlWriteLinkAction::addEndData(UmlLinkEndData *endData)
-{
- UmlLinkAction::addEndData(endData);
-}
-
-void QUmlWriteLinkAction::removeEndData(UmlLinkEndData *endData)
-{
- UmlLinkAction::removeEndData(endData);
-}
-
-void QUmlWriteLinkAction::addInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::addInputValue(inputValue);
-}
-
-void QUmlWriteLinkAction::removeInputValue(UmlInputPin *inputValue)
-{
- UmlLinkAction::removeInputValue(inputValue);
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlwritelinkaction.h b/src/uml/qumlwritelinkaction.h
index 594ea395..8f16e2a6 100644
--- a/src/uml/qumlwritelinkaction.h
+++ b/src/uml/qumlwritelinkaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlwritelinkaction_p.h"
+#include <QtUml/QUmlLinkAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,192 +52,20 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlAssociation;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
-class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlLinkEndData;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-
-class Q_UML_EXPORT QUmlWriteLinkAction : public QObject, public UmlWriteLinkAction
+class Q_UML_EXPORT QUmlWriteLinkAction : public QUmlLinkAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [LinkAction]
- Q_PROPERTY(QSet<QUmlLinkEndData *> endData READ endData)
- Q_PROPERTY(QSet<QUmlInputPin *> inputValue READ inputValue)
-
public:
- Q_DECL_HIDDEN explicit QUmlWriteLinkAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [LinkAction]
- Q_INVOKABLE const QSet<QUmlLinkEndData *> endData() const;
- Q_INVOKABLE const QSet<QUmlInputPin *> inputValue() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
- // Operations [LinkAction]
- Q_INVOKABLE QUmlAssociation *association() const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
+ virtual ~QUmlWriteLinkAction();
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
+protected:
+ explicit QUmlWriteLinkAction();
- // Slots for owned attributes [LinkAction]
- void addEndData(UmlLinkEndData *endData);
- void removeEndData(UmlLinkEndData *endData);
- void addInputValue(UmlInputPin *inputValue);
- void removeInputValue(UmlInputPin *inputValue);
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlWriteLinkAction *)
-Q_DECLARE_METATYPE(QList<QUmlWriteLinkAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlWriteLinkAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlWriteLinkAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlwritestructuralfeatureaction.cpp b/src/uml/qumlwritestructuralfeatureaction.cpp
index 889327d8..437e54ab 100644
--- a/src/uml/qumlwritestructuralfeatureaction.cpp
+++ b/src/uml/qumlwritestructuralfeatureaction.cpp
@@ -40,556 +40,87 @@
****************************************************************************/
#include "qumlwritestructuralfeatureaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuralFeature>
-#include <QtUml/QUmlStructuredActivityNode>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlWriteStructuralFeatureAction
+ \class QUmlWriteStructuralFeatureAction
\inmodule QtUml
\brief WriteStructuralFeatureAction is an abstract class for structural feature actions that change structural feature values.
*/
-
-QUmlWriteStructuralFeatureAction::QUmlWriteStructuralFeatureAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlWriteStructuralFeatureAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlWriteStructuralFeatureAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlWriteStructuralFeatureAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlWriteStructuralFeatureAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlWriteStructuralFeatureAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlWriteStructuralFeatureAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlWriteStructuralFeatureAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlWriteStructuralFeatureAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlWriteStructuralFeatureAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlWriteStructuralFeatureAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlWriteStructuralFeatureAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlWriteStructuralFeatureAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlWriteStructuralFeatureAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlWriteStructuralFeatureAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlWriteStructuralFeatureAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlWriteStructuralFeatureAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlWriteStructuralFeatureAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlWriteStructuralFeatureAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlWriteStructuralFeatureAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlWriteStructuralFeatureAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlWriteStructuralFeatureAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlWriteStructuralFeatureAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlWriteStructuralFeatureAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlWriteStructuralFeatureAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlWriteStructuralFeatureAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlWriteStructuralFeatureAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlWriteStructuralFeatureAction::output() const
-{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
-}
-
-// OWNED ATTRIBUTES [StructuralFeatureAction]
-
-/*!
- Gives the input pin from which the object whose structural feature is to be read or written is obtained.
- */
-QUmlInputPin *QUmlWriteStructuralFeatureAction::object() const
+QUmlWriteStructuralFeatureAction::QUmlWriteStructuralFeatureAction() :
+ _result(0),
+ _value(0)
{
- return reinterpret_cast<QUmlInputPin *>(_object);
}
-/*!
- Structural feature to be read.
- */
-QUmlStructuralFeature *QUmlWriteStructuralFeatureAction::structuralFeature() const
+QUmlWriteStructuralFeatureAction::~QUmlWriteStructuralFeatureAction()
{
- return reinterpret_cast<QUmlStructuralFeature *>(_structuralFeature);
}
-// OWNED ATTRIBUTES [WriteStructuralFeatureAction]
+// OWNED ATTRIBUTES
/*!
Gives the output pin on which the result is put.
*/
-QUmlOutputPin *QUmlWriteStructuralFeatureAction::result() const
-{
- return reinterpret_cast<QUmlOutputPin *>(_result);
-}
-
-/*!
- Value to be added or removed from the structural feature.
- */
-QUmlInputPin *QUmlWriteStructuralFeatureAction::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlWriteStructuralFeatureAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlWriteStructuralFeatureAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlWriteStructuralFeatureAction::allNamespaces() const
+QUmlOutputPin *
+QUmlWriteStructuralFeatureAction::result() const
{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
+ // This is a read-write association end
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlWriteStructuralFeatureAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
+ return _result;
}
-/*!
- 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.
- */
-bool QUmlWriteStructuralFeatureAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
+void QUmlWriteStructuralFeatureAction::setResult(QUmlOutputPin *result)
{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
+ // This is a read-write association end
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlWriteStructuralFeatureAction::separator() const
-{
- return UmlNamedElement::separator();
-}
+ if (_result != result) {
+ // Adjust subsetted properties
+ removeOutput(_result);
-// OPERATIONS [RedefinableElement]
+ _result = result;
+ if (result->asQObject() && this->asQObject())
+ QObject::connect(result->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setResult()));
+ result->asQObject()->setParent(this->asQObject());
-/*!
- 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.
- */
-bool QUmlWriteStructuralFeatureAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
+ // Adjust subsetted properties
+ if (result) {
+ addOutput(result);
+ }
+ }
}
/*!
- 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.
+ Value to be added or removed from the structural feature.
*/
-bool QUmlWriteStructuralFeatureAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlWriteStructuralFeatureAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlWriteStructuralFeatureAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlWriteStructuralFeatureAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlWriteStructuralFeatureAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlWriteStructuralFeatureAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlWriteStructuralFeatureAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlWriteStructuralFeatureAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlWriteStructuralFeatureAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlWriteStructuralFeatureAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlWriteStructuralFeatureAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlWriteStructuralFeatureAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlWriteStructuralFeatureAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlWriteStructuralFeatureAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlWriteStructuralFeatureAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlWriteStructuralFeatureAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlWriteStructuralFeatureAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlWriteStructuralFeatureAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlWriteStructuralFeatureAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlWriteStructuralFeatureAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlWriteStructuralFeatureAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlWriteStructuralFeatureAction::addHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::addHandler(handler);
-}
-
-void QUmlWriteStructuralFeatureAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlWriteStructuralFeatureAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
-}
-
-void QUmlWriteStructuralFeatureAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlWriteStructuralFeatureAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
+QUmlInputPin *
+QUmlWriteStructuralFeatureAction::value() const
{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlWriteStructuralFeatureAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlWriteStructuralFeatureAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [StructuralFeatureAction]
+ // This is a read-write association end
-void QUmlWriteStructuralFeatureAction::setObject(QUmlInputPin *object)
-{
- UmlStructuralFeatureAction::setObject(object);
+ return _value;
}
-void QUmlWriteStructuralFeatureAction::setStructuralFeature(QUmlStructuralFeature *structuralFeature)
+void QUmlWriteStructuralFeatureAction::setValue(QUmlInputPin *value)
{
- UmlStructuralFeatureAction::setStructuralFeature(structuralFeature);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [WriteStructuralFeatureAction]
+ if (_value != value) {
+ // Adjust subsetted properties
+ removeInput(_value);
-void QUmlWriteStructuralFeatureAction::setResult(QUmlOutputPin *result)
-{
- UmlWriteStructuralFeatureAction::setResult(result);
-}
+ _value = value;
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setValue()));
+ value->asQObject()->setParent(this->asQObject());
-void QUmlWriteStructuralFeatureAction::setValue(QUmlInputPin *value)
-{
- UmlWriteStructuralFeatureAction::setValue(value);
+ // Adjust subsetted properties
+ if (value) {
+ addInput(value);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlwritestructuralfeatureaction.h b/src/uml/qumlwritestructuralfeatureaction.h
index f53ecfa1..341e15fe 100644
--- a/src/uml/qumlwritestructuralfeatureaction.h
+++ b/src/uml/qumlwritestructuralfeatureaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlwritestructuralfeatureaction_p.h"
+#include <QtUml/QUmlStructuralFeatureAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,198 +52,30 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuralFeature;
-class QUmlStructuredActivityNode;
-class Q_UML_EXPORT QUmlWriteStructuralFeatureAction : public QObject, public UmlWriteStructuralFeatureAction
+class Q_UML_EXPORT QUmlWriteStructuralFeatureAction : public QUmlStructuralFeatureAction
{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [StructuralFeatureAction]
- Q_PROPERTY(QUmlInputPin * object READ object)
- Q_PROPERTY(QUmlStructuralFeature * structuralFeature READ structuralFeature)
-
- // Properties [WriteStructuralFeatureAction]
- Q_PROPERTY(QUmlOutputPin * result READ result)
- Q_PROPERTY(QUmlInputPin * value READ value)
-
public:
- Q_DECL_HIDDEN explicit QUmlWriteStructuralFeatureAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [StructuralFeatureAction]
- Q_INVOKABLE QUmlInputPin *object() const;
- Q_INVOKABLE QUmlStructuralFeature *structuralFeature() const;
-
- // Owned attributes [WriteStructuralFeatureAction]
- Q_INVOKABLE QUmlOutputPin *result() const;
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [StructuralFeatureAction]
- void setObject(QUmlInputPin *object);
- void setStructuralFeature(QUmlStructuralFeature *structuralFeature);
-
- // Slots for owned attributes [WriteStructuralFeatureAction]
+ virtual ~QUmlWriteStructuralFeatureAction();
+
+ // Owned attributes
+ QUmlOutputPin *result() const;
void setResult(QUmlOutputPin *result);
+ QUmlInputPin *value() const;
void setValue(QUmlInputPin *value);
+
+protected:
+ explicit QUmlWriteStructuralFeatureAction();
+
+ QUmlOutputPin *_result;
+ QUmlInputPin *_value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlWriteStructuralFeatureAction *)
-Q_DECLARE_METATYPE(QList<QUmlWriteStructuralFeatureAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlWriteStructuralFeatureAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlWriteStructuralFeatureAction) *)
QT_END_HEADER
diff --git a/src/uml/qumlwritevariableaction.cpp b/src/uml/qumlwritevariableaction.cpp
index aff1e132..b7f843d5 100644
--- a/src/uml/qumlwritevariableaction.cpp
+++ b/src/uml/qumlwritevariableaction.cpp
@@ -40,530 +40,54 @@
****************************************************************************/
#include "qumlwritevariableaction.h"
-#include <QtUml/QUmlActivity>
-#include <QtUml/QUmlActivityEdge>
-#include <QtUml/QUmlActivityGroup>
-#include <QtUml/QUmlActivityNode>
-#include <QtUml/QUmlActivityPartition>
-#include <QtUml/QUmlClassifier>
-#include <QtUml/QUmlComment>
-#include <QtUml/QUmlConstraint>
-#include <QtUml/QUmlDependency>
-#include <QtUml/QUmlElement>
-#include <QtUml/QUmlExceptionHandler>
#include <QtUml/QUmlInputPin>
-#include <QtUml/QUmlInterruptibleActivityRegion>
-#include <QtUml/QUmlNamedElement>
-#include <QtUml/QUmlNamespace>
-#include <QtUml/QUmlOutputPin>
-#include <QtUml/QUmlPackage>
-#include <QtUml/QUmlRedefinableElement>
-#include <QtUml/QUmlStringExpression>
-#include <QtUml/QUmlStructuredActivityNode>
-#include <QtUml/QUmlVariable>
-
-QT_BEGIN_NAMESPACE
/*!
- \class UmlWriteVariableAction
+ \class QUmlWriteVariableAction
\inmodule QtUml
\brief WriteVariableAction is an abstract class for variable actions that change variable values.
*/
-
-QUmlWriteVariableAction::QUmlWriteVariableAction(QObject *parent) :
- QObject(parent)
-{
-}
-
-// OWNED ATTRIBUTES [Element]
-
-/*!
- The Comments owned by this element.
- */
-const QSet<QUmlComment *> QUmlWriteVariableAction::ownedComment() const
-{
- return *(reinterpret_cast<const QSet<QUmlComment *> *>(&_ownedComment));
-}
-
-/*!
- The Elements owned by this element.
- */
-const QSet<QUmlElement *> QUmlWriteVariableAction::ownedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlElement *> *>(&_ownedElement));
-}
-
-/*!
- The Element that owns this element.
- */
-QUmlElement *QUmlWriteVariableAction::owner() const
-{
- return reinterpret_cast<QUmlElement *>(_owner);
-}
-
-// OWNED ATTRIBUTES [NamedElement]
-
-/*!
- Indicates the dependencies that reference the client.
- */
-const QSet<QUmlDependency *> QUmlWriteVariableAction::clientDependency() const
-{
- return *(reinterpret_cast<const QSet<QUmlDependency *> *>(&_clientDependency));
-}
-
-/*!
- The name of the NamedElement.
- */
-QString QUmlWriteVariableAction::name() const
-{
- return _name;
-}
-
-/*!
- The string expression used to define the name of this named element.
- */
-QUmlStringExpression *QUmlWriteVariableAction::nameExpression() const
-{
- return reinterpret_cast<QUmlStringExpression *>(_nameExpression);
-}
-
-/*!
- Specifies the namespace that owns the NamedElement.
- */
-QUmlNamespace *QUmlWriteVariableAction::namespace_() const
-{
- return reinterpret_cast<QUmlNamespace *>(_namespace_);
-}
-
-/*!
- 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.
- */
-QString QUmlWriteVariableAction::qualifiedName() const
-{
- return UmlNamedElement::qualifiedName();
-}
-
-/*!
- Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility.
- */
-QtUml::VisibilityKind QUmlWriteVariableAction::visibility() const
-{
- return _visibility;
-}
-
-// OWNED ATTRIBUTES [RedefinableElement]
-
-/*!
- Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, then it is not possible to further redefine the RedefinableElement. Note that this property is preserved through package merge operations; that is, the capability to redefine a RedefinableElement (i.e., isLeaf=false) must be preserved in the resulting RedefinableElement of a package merge operation where a RedefinableElement with isLeaf=false is merged with a matching RedefinableElement with isLeaf=true: the resulting RedefinableElement will have isLeaf=false. Default value is false.
- */
-bool QUmlWriteVariableAction::isLeaf() const
-{
- return _isLeaf;
-}
-
-/*!
- The redefinable element that is being redefined by this element.
- */
-const QSet<QUmlRedefinableElement *> QUmlWriteVariableAction::redefinedElement() const
-{
- return *(reinterpret_cast<const QSet<QUmlRedefinableElement *> *>(&_redefinedElement));
-}
-
-/*!
- References the contexts that this element may be redefined from.
- */
-const QSet<QUmlClassifier *> QUmlWriteVariableAction::redefinitionContext() const
-{
- return *(reinterpret_cast<const QSet<QUmlClassifier *> *>(&_redefinitionContext));
-}
-
-// OWNED ATTRIBUTES [ActivityNode]
-
-/*!
- Activity containing the node.
- */
-QUmlActivity *QUmlWriteVariableAction::activity() const
-{
- return reinterpret_cast<QUmlActivity *>(_activity);
-}
-
-/*!
- Groups containing the node.
- */
-const QSet<QUmlActivityGroup *> QUmlWriteVariableAction::inGroup() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityGroup *> *>(&_inGroup));
-}
-
-/*!
- Interruptible regions containing the node.
- */
-const QSet<QUmlInterruptibleActivityRegion *> QUmlWriteVariableAction::inInterruptibleRegion() const
-{
- return *(reinterpret_cast<const QSet<QUmlInterruptibleActivityRegion *> *>(&_inInterruptibleRegion));
-}
-
-/*!
- Partitions containing the node.
- */
-const QSet<QUmlActivityPartition *> QUmlWriteVariableAction::inPartition() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityPartition *> *>(&_inPartition));
-}
-
-/*!
- Structured activity node containing the node.
- */
-QUmlStructuredActivityNode *QUmlWriteVariableAction::inStructuredNode() const
-{
- return reinterpret_cast<QUmlStructuredActivityNode *>(_inStructuredNode);
-}
-
-/*!
- Edges that have the node as target.
- */
-const QSet<QUmlActivityEdge *> QUmlWriteVariableAction::incoming() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_incoming));
-}
-
-/*!
- Edges that have the node as source.
- */
-const QSet<QUmlActivityEdge *> QUmlWriteVariableAction::outgoing() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityEdge *> *>(&_outgoing));
-}
-
-/*!
- Inherited nodes replaced by this node in a specialization of the activity.
- */
-const QSet<QUmlActivityNode *> QUmlWriteVariableAction::redefinedNode() const
-{
- return *(reinterpret_cast<const QSet<QUmlActivityNode *> *>(&_redefinedNode));
-}
-
-// OWNED ATTRIBUTES [ExecutableNode]
-
-/*!
- A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node.
- */
-const QSet<QUmlExceptionHandler *> QUmlWriteVariableAction::handler() const
-{
- return *(reinterpret_cast<const QSet<QUmlExceptionHandler *> *>(&_handler));
-}
-
-// OWNED ATTRIBUTES [Action]
-
-/*!
- The classifier that owns the behavior of which this action is a part.
- */
-QUmlClassifier *QUmlWriteVariableAction::context() const
-{
- return reinterpret_cast<QUmlClassifier *>(UmlAction::context());
-}
-
-/*!
- The ordered set of input pins connected to the Action. These are among the total set of inputs.
- */
-const QList<QUmlInputPin *> QUmlWriteVariableAction::input() const
-{
- return *(reinterpret_cast<const QList<QUmlInputPin *> *>(&_input));
-}
-
-/*!
- If true, the action can begin a new, concurrent execution, even if there is already another execution of the action ongoing. If false, the action cannot begin a new execution until any previous execution has completed.
- */
-bool QUmlWriteVariableAction::isLocallyReentrant() const
-{
- return _isLocallyReentrant;
-}
-
-/*!
- Constraint that must be satisfied when executed is completed.
- */
-const QSet<QUmlConstraint *> QUmlWriteVariableAction::localPostcondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPostcondition));
-}
-
-/*!
- Constraint that must be satisfied when execution is started.
- */
-const QSet<QUmlConstraint *> QUmlWriteVariableAction::localPrecondition() const
-{
- return *(reinterpret_cast<const QSet<QUmlConstraint *> *>(&_localPrecondition));
-}
-
-/*!
- The ordered set of output pins connected to the Action. The action places its results onto pins in this set.
- */
-const QList<QUmlOutputPin *> QUmlWriteVariableAction::output() const
+QUmlWriteVariableAction::QUmlWriteVariableAction() :
+ _value(0)
{
- return *(reinterpret_cast<const QList<QUmlOutputPin *> *>(&_output));
}
-// OWNED ATTRIBUTES [VariableAction]
-
-/*!
- Variable to be read.
- */
-QUmlVariable *QUmlWriteVariableAction::variable() const
+QUmlWriteVariableAction::~QUmlWriteVariableAction()
{
- return reinterpret_cast<QUmlVariable *>(_variable);
}
-// OWNED ATTRIBUTES [WriteVariableAction]
+// OWNED ATTRIBUTES
/*!
Value to be added or removed from the variable.
*/
-QUmlInputPin *QUmlWriteVariableAction::value() const
-{
- return reinterpret_cast<QUmlInputPin *>(_value);
-}
-
-// OPERATIONS [Element]
-
-/*!
- The query allOwnedElements() gives all of the direct and indirect owned elements of an element.
- */
-QSet<QUmlElement *> QUmlWriteVariableAction::allOwnedElements() const
-{
- QSet<QUmlElement *> r;
- foreach (UmlElement *element, UmlElement::allOwnedElements())
- r.insert(reinterpret_cast<QUmlElement *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlWriteVariableAction::mustBeOwned() const
-{
- return UmlElement::mustBeOwned();
-}
-
-// OPERATIONS [NamedElement]
-
-/*!
- The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.
- */
-QList<QUmlNamespace *> QUmlWriteVariableAction::allNamespaces() const
-{
- QList<QUmlNamespace *> r;
- foreach (UmlNamespace *element, UmlNamedElement::allNamespaces())
- r.append(reinterpret_cast<QUmlNamespace *>(element));
- return r;
-}
-
-/*!
- The query allOwningPackages() returns all the directly or indirectly owning packages.
- */
-QSet<QUmlPackage *> QUmlWriteVariableAction::allOwningPackages() const
-{
- QSet<QUmlPackage *> r;
- foreach (UmlPackage *element, UmlNamedElement::allOwningPackages())
- r.insert(reinterpret_cast<QUmlPackage *>(element));
- return r;
-}
-
-/*!
- 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.
- */
-bool QUmlWriteVariableAction::isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const
-{
- return UmlNamedElement::isDistinguishableFrom(n, ns);
-}
-
-/*!
- The query separator() gives the string that is used to separate names when constructing a qualified name.
- */
-QString QUmlWriteVariableAction::separator() const
-{
- return UmlNamedElement::separator();
-}
-
-// OPERATIONS [RedefinableElement]
-
-/*!
- 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.
- */
-bool QUmlWriteVariableAction::isConsistentWith(QUmlRedefinableElement *redefinee) const
-{
- return UmlRedefinableElement::isConsistentWith(redefinee);
-}
-
-/*!
- The query isRedefinitionContextValid() specifies whether the redefinition contexts of this RedefinableElement are properly related to the redefinition contexts of the specified RedefinableElement to allow this element to redefine the other. By default at least one of the redefinition contexts of this element must be a specialization of at least one of the redefinition contexts of the specified element.
- */
-bool QUmlWriteVariableAction::isRedefinitionContextValid(QUmlRedefinableElement *redefined) const
-{
- return UmlRedefinableElement::isRedefinitionContextValid(redefined);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Element]
-
-void QUmlWriteVariableAction::addOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::addOwnedComment(ownedComment);
-}
-
-void QUmlWriteVariableAction::removeOwnedComment(UmlComment *ownedComment)
-{
- UmlElement::removeOwnedComment(ownedComment);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [NamedElement]
-
-void QUmlWriteVariableAction::addClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::addClientDependency(clientDependency);
-}
-
-void QUmlWriteVariableAction::removeClientDependency(UmlDependency *clientDependency)
-{
- UmlNamedElement::removeClientDependency(clientDependency);
-}
-
-void QUmlWriteVariableAction::setName(QString name)
-{
- UmlNamedElement::setName(name);
-}
-
-void QUmlWriteVariableAction::setNameExpression(QUmlStringExpression *nameExpression)
-{
- UmlNamedElement::setNameExpression(nameExpression);
-}
-
-void QUmlWriteVariableAction::setVisibility(QtUml::VisibilityKind visibility)
-{
- UmlNamedElement::setVisibility(visibility);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [RedefinableElement]
-
-void QUmlWriteVariableAction::setLeaf(bool isLeaf)
-{
- UmlRedefinableElement::setLeaf(isLeaf);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ActivityNode]
-
-void QUmlWriteVariableAction::setActivity(QUmlActivity *activity)
-{
- UmlActivityNode::setActivity(activity);
-}
-
-void QUmlWriteVariableAction::addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::addInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlWriteVariableAction::removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion)
-{
- UmlActivityNode::removeInInterruptibleRegion(inInterruptibleRegion);
-}
-
-void QUmlWriteVariableAction::addInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::addInPartition(inPartition);
-}
-
-void QUmlWriteVariableAction::removeInPartition(UmlActivityPartition *inPartition)
-{
- UmlActivityNode::removeInPartition(inPartition);
-}
-
-void QUmlWriteVariableAction::setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode)
-{
- UmlActivityNode::setInStructuredNode(inStructuredNode);
-}
-
-void QUmlWriteVariableAction::addIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::addIncoming(incoming);
-}
-
-void QUmlWriteVariableAction::removeIncoming(UmlActivityEdge *incoming)
-{
- UmlActivityNode::removeIncoming(incoming);
-}
-
-void QUmlWriteVariableAction::addOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::addOutgoing(outgoing);
-}
-
-void QUmlWriteVariableAction::removeOutgoing(UmlActivityEdge *outgoing)
-{
- UmlActivityNode::removeOutgoing(outgoing);
-}
-
-void QUmlWriteVariableAction::addRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::addRedefinedNode(redefinedNode);
-}
-
-void QUmlWriteVariableAction::removeRedefinedNode(UmlActivityNode *redefinedNode)
-{
- UmlActivityNode::removeRedefinedNode(redefinedNode);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [ExecutableNode]
-
-void QUmlWriteVariableAction::addHandler(UmlExceptionHandler *handler)
+QUmlInputPin *
+QUmlWriteVariableAction::value() const
{
- UmlExecutableNode::addHandler(handler);
-}
+ // This is a read-write association end
-void QUmlWriteVariableAction::removeHandler(UmlExceptionHandler *handler)
-{
- UmlExecutableNode::removeHandler(handler);
-}
-
-// SLOTS FOR OWNED ATTRIBUTES [Action]
-
-void QUmlWriteVariableAction::setLocallyReentrant(bool isLocallyReentrant)
-{
- UmlAction::setLocallyReentrant(isLocallyReentrant);
+ return _value;
}
-void QUmlWriteVariableAction::addLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::addLocalPostcondition(localPostcondition);
-}
-
-void QUmlWriteVariableAction::removeLocalPostcondition(UmlConstraint *localPostcondition)
-{
- UmlAction::removeLocalPostcondition(localPostcondition);
-}
-
-void QUmlWriteVariableAction::addLocalPrecondition(UmlConstraint *localPrecondition)
-{
- UmlAction::addLocalPrecondition(localPrecondition);
-}
-
-void QUmlWriteVariableAction::removeLocalPrecondition(UmlConstraint *localPrecondition)
+void QUmlWriteVariableAction::setValue(QUmlInputPin *value)
{
- UmlAction::removeLocalPrecondition(localPrecondition);
-}
+ // This is a read-write association end
-// SLOTS FOR OWNED ATTRIBUTES [VariableAction]
-
-void QUmlWriteVariableAction::setVariable(QUmlVariable *variable)
-{
- UmlVariableAction::setVariable(variable);
-}
+ if (_value != value) {
+ // Adjust subsetted properties
+ removeInput(_value);
-// SLOTS FOR OWNED ATTRIBUTES [WriteVariableAction]
+ _value = value;
+ if (value->asQObject() && this->asQObject())
+ QObject::connect(value->asQObject(), SIGNAL(destroyed()), this->asQObject(), SLOT(setValue()));
+ value->asQObject()->setParent(this->asQObject());
-void QUmlWriteVariableAction::setValue(QUmlInputPin *value)
-{
- UmlWriteVariableAction::setValue(value);
+ // Adjust subsetted properties
+ if (value) {
+ addInput(value);
+ }
+ }
}
-QT_END_NAMESPACE
-
diff --git a/src/uml/qumlwritevariableaction.h b/src/uml/qumlwritevariableaction.h
index 6594ccdf..0dc9d2ab 100644
--- a/src/uml/qumlwritevariableaction.h
+++ b/src/uml/qumlwritevariableaction.h
@@ -43,10 +43,8 @@
#include <QtUml/QtUmlGlobal>
-#include <QtCore/QObject>
-#include "private/umlwritevariableaction_p.h"
+#include <QtUml/QUmlVariableAction>
-#include <QtUml/QtUmlNamespace>
QT_BEGIN_HEADER
@@ -54,192 +52,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(QtUml)
-class QUmlActivity;
-class QUmlActivityEdge;
-class QUmlActivityGroup;
-class QUmlActivityNode;
-class QUmlActivityPartition;
-class QUmlClassifier;
-class QUmlComment;
-class QUmlConstraint;
-class QUmlDependency;
-class QUmlElement;
-class QUmlExceptionHandler;
class QUmlInputPin;
-class QUmlInterruptibleActivityRegion;
-class QUmlNamedElement;
-class QUmlNamespace;
-class QUmlOutputPin;
-class QUmlPackage;
-class QUmlRedefinableElement;
-class QUmlStringExpression;
-class QUmlStructuredActivityNode;
-class QUmlVariable;
-
-class Q_UML_EXPORT QUmlWriteVariableAction : public QObject, public UmlWriteVariableAction
-{
- Q_OBJECT
-
- // Properties [Element]
- Q_PROPERTY(QSet<QUmlComment *> ownedComment READ ownedComment)
- Q_PROPERTY(QSet<QUmlElement *> ownedElement READ ownedElement)
- Q_PROPERTY(QUmlElement * owner READ owner)
-
- // Properties [NamedElement]
- Q_PROPERTY(QSet<QUmlDependency *> clientDependency READ clientDependency)
- Q_PROPERTY(QString name READ name)
- Q_PROPERTY(QUmlStringExpression * nameExpression READ nameExpression)
- Q_PROPERTY(QUmlNamespace * namespace_ READ namespace_)
- Q_PROPERTY(QString qualifiedName READ qualifiedName)
- Q_PROPERTY(QtUml::VisibilityKind visibility READ visibility)
-
- // Properties [RedefinableElement]
- Q_PROPERTY(bool isLeaf READ isLeaf)
- Q_PROPERTY(QSet<QUmlRedefinableElement *> redefinedElement READ redefinedElement)
- Q_PROPERTY(QSet<QUmlClassifier *> redefinitionContext READ redefinitionContext)
-
- // Properties [ActivityNode]
- Q_PROPERTY(QUmlActivity * activity READ activity)
- Q_PROPERTY(QSet<QUmlActivityGroup *> inGroup READ inGroup)
- Q_PROPERTY(QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion READ inInterruptibleRegion)
- Q_PROPERTY(QSet<QUmlActivityPartition *> inPartition READ inPartition)
- Q_PROPERTY(QUmlStructuredActivityNode * inStructuredNode READ inStructuredNode)
- Q_PROPERTY(QSet<QUmlActivityEdge *> incoming READ incoming)
- Q_PROPERTY(QSet<QUmlActivityEdge *> outgoing READ outgoing)
- Q_PROPERTY(QSet<QUmlActivityNode *> redefinedNode READ redefinedNode)
-
- // Properties [ExecutableNode]
- Q_PROPERTY(QSet<QUmlExceptionHandler *> handler READ handler)
-
- // Properties [Action]
- Q_PROPERTY(QUmlClassifier * context READ context)
- Q_PROPERTY(QList<QUmlInputPin *> input READ input)
- Q_PROPERTY(bool isLocallyReentrant READ isLocallyReentrant)
- Q_PROPERTY(QSet<QUmlConstraint *> localPostcondition READ localPostcondition)
- Q_PROPERTY(QSet<QUmlConstraint *> localPrecondition READ localPrecondition)
- Q_PROPERTY(QList<QUmlOutputPin *> output READ output)
-
- // Properties [VariableAction]
- Q_PROPERTY(QUmlVariable * variable READ variable)
-
- // Properties [WriteVariableAction]
- Q_PROPERTY(QUmlInputPin * value READ value)
+class Q_UML_EXPORT QUmlWriteVariableAction : public QUmlVariableAction
+{
public:
- Q_DECL_HIDDEN explicit QUmlWriteVariableAction(QObject *parent = 0);
-
- // Owned attributes [Element]
- Q_INVOKABLE const QSet<QUmlComment *> ownedComment() const;
- Q_INVOKABLE const QSet<QUmlElement *> ownedElement() const;
- Q_INVOKABLE QUmlElement *owner() const;
-
- // Owned attributes [NamedElement]
- Q_INVOKABLE const QSet<QUmlDependency *> clientDependency() const;
- Q_INVOKABLE QString name() const;
- Q_INVOKABLE QUmlStringExpression *nameExpression() const;
- Q_INVOKABLE QUmlNamespace *namespace_() const;
- Q_INVOKABLE QString qualifiedName() const;
- Q_INVOKABLE QtUml::VisibilityKind visibility() const;
-
- // Owned attributes [RedefinableElement]
- Q_INVOKABLE bool isLeaf() const;
- Q_INVOKABLE const QSet<QUmlRedefinableElement *> redefinedElement() const;
- Q_INVOKABLE const QSet<QUmlClassifier *> redefinitionContext() const;
-
- // Owned attributes [ActivityNode]
- Q_INVOKABLE QUmlActivity *activity() const;
- Q_INVOKABLE const QSet<QUmlActivityGroup *> inGroup() const;
- Q_INVOKABLE const QSet<QUmlInterruptibleActivityRegion *> inInterruptibleRegion() const;
- Q_INVOKABLE const QSet<QUmlActivityPartition *> inPartition() const;
- Q_INVOKABLE QUmlStructuredActivityNode *inStructuredNode() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> incoming() const;
- Q_INVOKABLE const QSet<QUmlActivityEdge *> outgoing() const;
- Q_INVOKABLE const QSet<QUmlActivityNode *> redefinedNode() const;
-
- // Owned attributes [ExecutableNode]
- Q_INVOKABLE const QSet<QUmlExceptionHandler *> handler() const;
-
- // Owned attributes [Action]
- Q_INVOKABLE QUmlClassifier *context() const;
- Q_INVOKABLE const QList<QUmlInputPin *> input() const;
- Q_INVOKABLE bool isLocallyReentrant() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPostcondition() const;
- Q_INVOKABLE const QSet<QUmlConstraint *> localPrecondition() const;
- Q_INVOKABLE const QList<QUmlOutputPin *> output() const;
-
- // Owned attributes [VariableAction]
- Q_INVOKABLE QUmlVariable *variable() const;
-
- // Owned attributes [WriteVariableAction]
- Q_INVOKABLE QUmlInputPin *value() const;
-
- // Operations [Element]
- Q_INVOKABLE QSet<QUmlElement *> allOwnedElements() const;
- Q_INVOKABLE bool mustBeOwned() const;
-
- // Operations [NamedElement]
- Q_INVOKABLE QList<QUmlNamespace *> allNamespaces() const;
- Q_INVOKABLE QSet<QUmlPackage *> allOwningPackages() const;
- Q_INVOKABLE bool isDistinguishableFrom(QUmlNamedElement *n, QUmlNamespace *ns) const;
- Q_INVOKABLE QString separator() const;
-
- // Operations [RedefinableElement]
- Q_INVOKABLE bool isConsistentWith(QUmlRedefinableElement *redefinee) const;
- Q_INVOKABLE bool isRedefinitionContextValid(QUmlRedefinableElement *redefined) const;
-
-public Q_SLOTS:
-
- // Slots for owned attributes [Element]
- void addOwnedComment(UmlComment *ownedComment);
- void removeOwnedComment(UmlComment *ownedComment);
-
- // Slots for owned attributes [NamedElement]
- void addClientDependency(UmlDependency *clientDependency);
- void removeClientDependency(UmlDependency *clientDependency);
- void setName(QString name);
- void setNameExpression(QUmlStringExpression *nameExpression);
- void setVisibility(QtUml::VisibilityKind visibility);
-
- // Slots for owned attributes [RedefinableElement]
- void setLeaf(bool isLeaf);
-
- // Slots for owned attributes [ActivityNode]
- void setActivity(QUmlActivity *activity);
- void addInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void removeInInterruptibleRegion(UmlInterruptibleActivityRegion *inInterruptibleRegion);
- void addInPartition(UmlActivityPartition *inPartition);
- void removeInPartition(UmlActivityPartition *inPartition);
- void setInStructuredNode(QUmlStructuredActivityNode *inStructuredNode);
- void addIncoming(UmlActivityEdge *incoming);
- void removeIncoming(UmlActivityEdge *incoming);
- void addOutgoing(UmlActivityEdge *outgoing);
- void removeOutgoing(UmlActivityEdge *outgoing);
- void addRedefinedNode(UmlActivityNode *redefinedNode);
- void removeRedefinedNode(UmlActivityNode *redefinedNode);
-
- // Slots for owned attributes [ExecutableNode]
- void addHandler(UmlExceptionHandler *handler);
- void removeHandler(UmlExceptionHandler *handler);
-
- // Slots for owned attributes [Action]
- void setLocallyReentrant(bool isLocallyReentrant);
- void addLocalPostcondition(UmlConstraint *localPostcondition);
- void removeLocalPostcondition(UmlConstraint *localPostcondition);
- void addLocalPrecondition(UmlConstraint *localPrecondition);
- void removeLocalPrecondition(UmlConstraint *localPrecondition);
-
- // Slots for owned attributes [VariableAction]
- void setVariable(QUmlVariable *variable);
-
- // Slots for owned attributes [WriteVariableAction]
+ virtual ~QUmlWriteVariableAction();
+
+ // Owned attributes
+ QUmlInputPin *value() const;
void setValue(QUmlInputPin *value);
+
+protected:
+ explicit QUmlWriteVariableAction();
+
+ QUmlInputPin *_value;
};
QT_END_NAMESPACE
-Q_DECLARE_METATYPE(QUmlWriteVariableAction *)
-Q_DECLARE_METATYPE(QList<QUmlWriteVariableAction *> *)
-Q_DECLARE_METATYPE(QSet<QUmlWriteVariableAction *> *)
+Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QUmlWriteVariableAction) *)
QT_END_HEADER
diff --git a/src/uml/uml.pri b/src/uml/uml.pri
index 11eaacbb..466c90e4 100644
--- a/src/uml/uml.pri
+++ b/src/uml/uml.pri
@@ -245,732 +245,634 @@ HEADERS += \
qumlwritevariableaction.h
PRIVATE_HEADERS += \
- internal/umlabstraction_p.h \
- internal/umlacceptcallaction_p.h \
- internal/umlaccepteventaction_p.h \
- internal/umlaction_p.h \
- internal/umlactionexecutionspecification_p.h \
- internal/umlactioninputpin_p.h \
- internal/umlactivity_p.h \
- internal/umlactivityedge_p.h \
- internal/umlactivityfinalnode_p.h \
- internal/umlactivitygroup_p.h \
- internal/umlactivitynode_p.h \
- internal/umlactivityparameternode_p.h \
- internal/umlactivitypartition_p.h \
- internal/umlactor_p.h \
- internal/umladdstructuralfeaturevalueaction_p.h \
- internal/umladdvariablevalueaction_p.h \
- internal/umlanyreceiveevent_p.h \
- internal/umlartifact_p.h \
- internal/umlassociation_p.h \
- internal/umlassociationclass_p.h \
- internal/umlbehavior_p.h \
- internal/umlbehaviorexecutionspecification_p.h \
- internal/umlbehavioralfeature_p.h \
- internal/umlbehavioredclassifier_p.h \
- internal/umlbroadcastsignalaction_p.h \
- internal/umlcallaction_p.h \
- internal/umlcallbehavioraction_p.h \
- internal/umlcallevent_p.h \
- internal/umlcalloperationaction_p.h \
- internal/umlcentralbuffernode_p.h \
- internal/umlchangeevent_p.h \
- internal/umlclass_p.h \
- internal/umlclassifier_p.h \
- internal/umlclassifiertemplateparameter_p.h \
- internal/umlclause_p.h \
- internal/umlclearassociationaction_p.h \
- internal/umlclearstructuralfeatureaction_p.h \
- internal/umlclearvariableaction_p.h \
- internal/umlcollaboration_p.h \
- internal/umlcollaborationuse_p.h \
- internal/umlcombinedfragment_p.h \
- internal/umlcomment_p.h \
- internal/umlcommunicationpath_p.h \
- internal/umlcomponent_p.h \
- internal/umlcomponentrealization_p.h \
- internal/umlconditionalnode_p.h \
- internal/umlconnectableelement_p.h \
- internal/umlconnectableelementtemplateparameter_p.h \
- internal/umlconnectionpointreference_p.h \
- internal/umlconnector_p.h \
- internal/umlconnectorend_p.h \
- internal/umlconsiderignorefragment_p.h \
- internal/umlconstraint_p.h \
- internal/umlcontinuation_p.h \
- internal/umlcontrolflow_p.h \
- internal/umlcontrolnode_p.h \
- internal/umlcreatelinkaction_p.h \
- internal/umlcreatelinkobjectaction_p.h \
- internal/umlcreateobjectaction_p.h \
- internal/umldatastorenode_p.h \
- internal/umldatatype_p.h \
- internal/umldecisionnode_p.h \
- internal/umldependency_p.h \
- internal/umldeployedartifact_p.h \
- internal/umldeployment_p.h \
- internal/umldeploymentspecification_p.h \
- internal/umldeploymenttarget_p.h \
- internal/umldestroylinkaction_p.h \
- internal/umldestroyobjectaction_p.h \
- internal/umldestructionoccurrencespecification_p.h \
- internal/umldevice_p.h \
- internal/umldirectedrelationship_p.h \
- internal/umlduration_p.h \
- internal/umldurationconstraint_p.h \
- internal/umldurationinterval_p.h \
- internal/umldurationobservation_p.h \
- internal/umlelement_p.h \
- internal/umlelementimport_p.h \
- internal/umlencapsulatedclassifier_p.h \
- internal/umlenumeration_p.h \
- internal/umlenumerationliteral_p.h \
- internal/umlevent_p.h \
- internal/umlexceptionhandler_p.h \
- internal/umlexecutablenode_p.h \
- internal/umlexecutionenvironment_p.h \
- internal/umlexecutionoccurrencespecification_p.h \
- internal/umlexecutionspecification_p.h \
- internal/umlexpansionnode_p.h \
- internal/umlexpansionregion_p.h \
- internal/umlexpression_p.h \
- internal/umlextend_p.h \
- internal/umlextension_p.h \
- internal/umlextensionend_p.h \
- internal/umlextensionpoint_p.h \
- internal/umlfeature_p.h \
- internal/umlfinalnode_p.h \
- internal/umlfinalstate_p.h \
- internal/umlflowfinalnode_p.h \
- internal/umlforknode_p.h \
- internal/umlfunctionbehavior_p.h \
- internal/umlgate_p.h \
- internal/umlgeneralordering_p.h \
- internal/umlgeneralization_p.h \
- internal/umlgeneralizationset_p.h \
- internal/umlimage_p.h \
- internal/umlinclude_p.h \
- internal/umlinformationflow_p.h \
- internal/umlinformationitem_p.h \
- internal/umlinitialnode_p.h \
- internal/umlinputpin_p.h \
- internal/umlinstancespecification_p.h \
- internal/umlinstancevalue_p.h \
- internal/umlinteraction_p.h \
- internal/umlinteractionconstraint_p.h \
- internal/umlinteractionfragment_p.h \
- internal/umlinteractionoperand_p.h \
- internal/umlinteractionuse_p.h \
- internal/umlinterface_p.h \
- internal/umlinterfacerealization_p.h \
- internal/umlinterruptibleactivityregion_p.h \
- internal/umlinterval_p.h \
- internal/umlintervalconstraint_p.h \
- internal/umlinvocationaction_p.h \
- internal/umljoinnode_p.h \
- internal/umllifeline_p.h \
- internal/umllinkaction_p.h \
- internal/umllinkendcreationdata_p.h \
- internal/umllinkenddata_p.h \
- internal/umllinkenddestructiondata_p.h \
- internal/umlliteralboolean_p.h \
- internal/umlliteralinteger_p.h \
- internal/umlliteralnull_p.h \
- internal/umlliteralreal_p.h \
- internal/umlliteralspecification_p.h \
- internal/umlliteralstring_p.h \
- internal/umlliteralunlimitednatural_p.h \
- internal/umlloopnode_p.h \
- internal/umlmanifestation_p.h \
- internal/umlmergenode_p.h \
- internal/umlmessage_p.h \
- internal/umlmessageend_p.h \
- internal/umlmessageevent_p.h \
- internal/umlmessageoccurrencespecification_p.h \
- internal/umlmodel_p.h \
- internal/umlmultiplicityelement_p.h \
- internal/umlnamedelement_p.h \
- internal/umlnamespace_p.h \
- internal/umlnode_p.h \
- internal/umlobjectflow_p.h \
- internal/umlobjectnode_p.h \
- internal/umlobservation_p.h \
- internal/umloccurrencespecification_p.h \
- internal/umlopaqueaction_p.h \
- internal/umlopaquebehavior_p.h \
- internal/umlopaqueexpression_p.h \
- internal/umloperation_p.h \
- internal/umloperationtemplateparameter_p.h \
- internal/umloutputpin_p.h \
- internal/umlpackage_p.h \
- internal/umlpackageimport_p.h \
- internal/umlpackagemerge_p.h \
- internal/umlpackageableelement_p.h \
- internal/umlparameter_p.h \
- internal/umlparameterset_p.h \
- internal/umlparameterableelement_p.h \
- internal/umlpartdecomposition_p.h \
- internal/umlpin_p.h \
- internal/umlport_p.h \
- internal/umlprimitivetype_p.h \
- internal/umlprofile_p.h \
- internal/umlprofileapplication_p.h \
- internal/umlproperty_p.h \
- internal/umlprotocolconformance_p.h \
- internal/umlprotocolstatemachine_p.h \
- internal/umlprotocoltransition_p.h \
- internal/umlpseudostate_p.h \
- internal/umlqualifiervalue_p.h \
- internal/umlraiseexceptionaction_p.h \
- internal/umlreadextentaction_p.h \
- internal/umlreadisclassifiedobjectaction_p.h \
- internal/umlreadlinkaction_p.h \
- internal/umlreadlinkobjectendaction_p.h \
- internal/umlreadlinkobjectendqualifieraction_p.h \
- internal/umlreadselfaction_p.h \
- internal/umlreadstructuralfeatureaction_p.h \
- internal/umlreadvariableaction_p.h \
- internal/umlrealization_p.h \
- internal/umlreception_p.h \
- internal/umlreclassifyobjectaction_p.h \
- internal/umlredefinableelement_p.h \
- internal/umlredefinabletemplatesignature_p.h \
- internal/umlreduceaction_p.h \
- internal/umlregion_p.h \
- internal/umlrelationship_p.h \
- internal/umlremovestructuralfeaturevalueaction_p.h \
- internal/umlremovevariablevalueaction_p.h \
- internal/umlreplyaction_p.h \
- internal/umlsendobjectaction_p.h \
- internal/umlsendsignalaction_p.h \
- internal/umlsequencenode_p.h \
- internal/umlsignal_p.h \
- internal/umlsignalevent_p.h \
- internal/umlslot_p.h \
- internal/umlstartclassifierbehavioraction_p.h \
- internal/umlstartobjectbehavioraction_p.h \
- internal/umlstate_p.h \
- internal/umlstateinvariant_p.h \
- internal/umlstatemachine_p.h \
- internal/umlstereotype_p.h \
- internal/umlstringexpression_p.h \
- internal/umlstructuralfeature_p.h \
- internal/umlstructuralfeatureaction_p.h \
- internal/umlstructuredactivitynode_p.h \
- internal/umlstructuredclassifier_p.h \
- internal/umlsubstitution_p.h \
- internal/umltemplatebinding_p.h \
- internal/umltemplateparameter_p.h \
- internal/umltemplateparametersubstitution_p.h \
- internal/umltemplatesignature_p.h \
- internal/umltemplateableelement_p.h \
- internal/umltestidentityaction_p.h \
- internal/umltimeconstraint_p.h \
- internal/umltimeevent_p.h \
- internal/umltimeexpression_p.h \
- internal/umltimeinterval_p.h \
- internal/umltimeobservation_p.h \
- internal/umltransition_p.h \
- internal/umltrigger_p.h \
- internal/umltype_p.h \
- internal/umltypedelement_p.h \
- internal/umlunmarshallaction_p.h \
- internal/umlusage_p.h \
- internal/umlusecase_p.h \
- internal/umlvaluepin_p.h \
- internal/umlvaluespecification_p.h \
- internal/umlvaluespecificationaction_p.h \
- internal/umlvariable_p.h \
- internal/umlvariableaction_p.h \
- internal/umlvertex_p.h \
- internal/umlwritelinkaction_p.h \
- internal/umlwritestructuralfeatureaction_p.h \
- internal/umlwritevariableaction_p.h
+ qobjects/qumlabstractionobject_p.h \
+ qobjects/qumlacceptcallactionobject_p.h \
+ qobjects/qumlaccepteventactionobject_p.h \
+ qobjects/qumlactionexecutionspecificationobject_p.h \
+ qobjects/qumlactioninputpinobject_p.h \
+ qobjects/qumlactivityobject_p.h \
+ qobjects/qumlactivityfinalnodeobject_p.h \
+ qobjects/qumlactivityparameternodeobject_p.h \
+ qobjects/qumlactivitypartitionobject_p.h \
+ qobjects/qumlactorobject_p.h \
+ qobjects/qumladdstructuralfeaturevalueactionobject_p.h \
+ qobjects/qumladdvariablevalueactionobject_p.h \
+ qobjects/qumlanyreceiveeventobject_p.h \
+ qobjects/qumlartifactobject_p.h \
+ qobjects/qumlassociationobject_p.h \
+ qobjects/qumlassociationclassobject_p.h \
+ qobjects/qumlbehaviorexecutionspecificationobject_p.h \
+ qobjects/qumlbroadcastsignalactionobject_p.h \
+ qobjects/qumlcallbehavioractionobject_p.h \
+ qobjects/qumlcalleventobject_p.h \
+ qobjects/qumlcalloperationactionobject_p.h \
+ qobjects/qumlcentralbuffernodeobject_p.h \
+ qobjects/qumlchangeeventobject_p.h \
+ qobjects/qumlclassobject_p.h \
+ qobjects/qumlclassifiertemplateparameterobject_p.h \
+ qobjects/qumlclauseobject_p.h \
+ qobjects/qumlclearassociationactionobject_p.h \
+ qobjects/qumlclearstructuralfeatureactionobject_p.h \
+ qobjects/qumlclearvariableactionobject_p.h \
+ qobjects/qumlcollaborationobject_p.h \
+ qobjects/qumlcollaborationuseobject_p.h \
+ qobjects/qumlcombinedfragmentobject_p.h \
+ qobjects/qumlcommentobject_p.h \
+ qobjects/qumlcommunicationpathobject_p.h \
+ qobjects/qumlcomponentobject_p.h \
+ qobjects/qumlcomponentrealizationobject_p.h \
+ qobjects/qumlconditionalnodeobject_p.h \
+ qobjects/qumlconnectableelementtemplateparameterobject_p.h \
+ qobjects/qumlconnectionpointreferenceobject_p.h \
+ qobjects/qumlconnectorobject_p.h \
+ qobjects/qumlconnectorendobject_p.h \
+ qobjects/qumlconsiderignorefragmentobject_p.h \
+ qobjects/qumlconstraintobject_p.h \
+ qobjects/qumlcontinuationobject_p.h \
+ qobjects/qumlcontrolflowobject_p.h \
+ qobjects/qumlcreatelinkactionobject_p.h \
+ qobjects/qumlcreatelinkobjectactionobject_p.h \
+ qobjects/qumlcreateobjectactionobject_p.h \
+ qobjects/qumldatastorenodeobject_p.h \
+ qobjects/qumldatatypeobject_p.h \
+ qobjects/qumldecisionnodeobject_p.h \
+ qobjects/qumldependencyobject_p.h \
+ qobjects/qumldeploymentobject_p.h \
+ qobjects/qumldeploymentspecificationobject_p.h \
+ qobjects/qumldestroylinkactionobject_p.h \
+ qobjects/qumldestroyobjectactionobject_p.h \
+ qobjects/qumldestructionoccurrencespecificationobject_p.h \
+ qobjects/qumldeviceobject_p.h \
+ qobjects/qumldurationobject_p.h \
+ qobjects/qumldurationconstraintobject_p.h \
+ qobjects/qumldurationintervalobject_p.h \
+ qobjects/qumldurationobservationobject_p.h \
+ qobjects/qumlelementimportobject_p.h \
+ qobjects/qumlenumerationobject_p.h \
+ qobjects/qumlenumerationliteralobject_p.h \
+ qobjects/qumlexceptionhandlerobject_p.h \
+ qobjects/qumlexecutionenvironmentobject_p.h \
+ qobjects/qumlexecutionoccurrencespecificationobject_p.h \
+ qobjects/qumlexpansionnodeobject_p.h \
+ qobjects/qumlexpansionregionobject_p.h \
+ qobjects/qumlexpressionobject_p.h \
+ qobjects/qumlextendobject_p.h \
+ qobjects/qumlextensionobject_p.h \
+ qobjects/qumlextensionendobject_p.h \
+ qobjects/qumlextensionpointobject_p.h \
+ qobjects/qumlfinalstateobject_p.h \
+ qobjects/qumlflowfinalnodeobject_p.h \
+ qobjects/qumlforknodeobject_p.h \
+ qobjects/qumlfunctionbehaviorobject_p.h \
+ qobjects/qumlgateobject_p.h \
+ qobjects/qumlgeneralorderingobject_p.h \
+ qobjects/qumlgeneralizationobject_p.h \
+ qobjects/qumlgeneralizationsetobject_p.h \
+ qobjects/qumlimageobject_p.h \
+ qobjects/qumlincludeobject_p.h \
+ qobjects/qumlinformationflowobject_p.h \
+ qobjects/qumlinformationitemobject_p.h \
+ qobjects/qumlinitialnodeobject_p.h \
+ qobjects/qumlinputpinobject_p.h \
+ qobjects/qumlinstancespecificationobject_p.h \
+ qobjects/qumlinstancevalueobject_p.h \
+ qobjects/qumlinteractionobject_p.h \
+ qobjects/qumlinteractionconstraintobject_p.h \
+ qobjects/qumlinteractionoperandobject_p.h \
+ qobjects/qumlinteractionuseobject_p.h \
+ qobjects/qumlinterfaceobject_p.h \
+ qobjects/qumlinterfacerealizationobject_p.h \
+ qobjects/qumlinterruptibleactivityregionobject_p.h \
+ qobjects/qumlintervalobject_p.h \
+ qobjects/qumlintervalconstraintobject_p.h \
+ qobjects/qumljoinnodeobject_p.h \
+ qobjects/qumllifelineobject_p.h \
+ qobjects/qumllinkendcreationdataobject_p.h \
+ qobjects/qumllinkenddataobject_p.h \
+ qobjects/qumllinkenddestructiondataobject_p.h \
+ qobjects/qumlliteralbooleanobject_p.h \
+ qobjects/qumlliteralintegerobject_p.h \
+ qobjects/qumlliteralnullobject_p.h \
+ qobjects/qumlliteralrealobject_p.h \
+ qobjects/qumlliteralstringobject_p.h \
+ qobjects/qumlliteralunlimitednaturalobject_p.h \
+ qobjects/qumlloopnodeobject_p.h \
+ qobjects/qumlmanifestationobject_p.h \
+ qobjects/qumlmergenodeobject_p.h \
+ qobjects/qumlmessageobject_p.h \
+ qobjects/qumlmessageoccurrencespecificationobject_p.h \
+ qobjects/qumlmodelobject_p.h \
+ qobjects/qumlnodeobject_p.h \
+ qobjects/qumlobjectflowobject_p.h \
+ qobjects/qumloccurrencespecificationobject_p.h \
+ qobjects/qumlopaqueactionobject_p.h \
+ qobjects/qumlopaquebehaviorobject_p.h \
+ qobjects/qumlopaqueexpressionobject_p.h \
+ qobjects/qumloperationobject_p.h \
+ qobjects/qumloperationtemplateparameterobject_p.h \
+ qobjects/qumloutputpinobject_p.h \
+ qobjects/qumlpackageobject_p.h \
+ qobjects/qumlpackageimportobject_p.h \
+ qobjects/qumlpackagemergeobject_p.h \
+ qobjects/qumlparameterobject_p.h \
+ qobjects/qumlparametersetobject_p.h \
+ qobjects/qumlpartdecompositionobject_p.h \
+ qobjects/qumlportobject_p.h \
+ qobjects/qumlprimitivetypeobject_p.h \
+ qobjects/qumlprofileobject_p.h \
+ qobjects/qumlprofileapplicationobject_p.h \
+ qobjects/qumlpropertyobject_p.h \
+ qobjects/qumlprotocolconformanceobject_p.h \
+ qobjects/qumlprotocolstatemachineobject_p.h \
+ qobjects/qumlprotocoltransitionobject_p.h \
+ qobjects/qumlpseudostateobject_p.h \
+ qobjects/qumlqualifiervalueobject_p.h \
+ qobjects/qumlraiseexceptionactionobject_p.h \
+ qobjects/qumlreadextentactionobject_p.h \
+ qobjects/qumlreadisclassifiedobjectactionobject_p.h \
+ qobjects/qumlreadlinkactionobject_p.h \
+ qobjects/qumlreadlinkobjectendactionobject_p.h \
+ qobjects/qumlreadlinkobjectendqualifieractionobject_p.h \
+ qobjects/qumlreadselfactionobject_p.h \
+ qobjects/qumlreadstructuralfeatureactionobject_p.h \
+ qobjects/qumlreadvariableactionobject_p.h \
+ qobjects/qumlrealizationobject_p.h \
+ qobjects/qumlreceptionobject_p.h \
+ qobjects/qumlreclassifyobjectactionobject_p.h \
+ qobjects/qumlredefinabletemplatesignatureobject_p.h \
+ qobjects/qumlreduceactionobject_p.h \
+ qobjects/qumlregionobject_p.h \
+ qobjects/qumlremovestructuralfeaturevalueactionobject_p.h \
+ qobjects/qumlremovevariablevalueactionobject_p.h \
+ qobjects/qumlreplyactionobject_p.h \
+ qobjects/qumlsendobjectactionobject_p.h \
+ qobjects/qumlsendsignalactionobject_p.h \
+ qobjects/qumlsequencenodeobject_p.h \
+ qobjects/qumlsignalobject_p.h \
+ qobjects/qumlsignaleventobject_p.h \
+ qobjects/qumlslotobject_p.h \
+ qobjects/qumlstartclassifierbehavioractionobject_p.h \
+ qobjects/qumlstartobjectbehavioractionobject_p.h \
+ qobjects/qumlstateobject_p.h \
+ qobjects/qumlstateinvariantobject_p.h \
+ qobjects/qumlstatemachineobject_p.h \
+ qobjects/qumlstereotypeobject_p.h \
+ qobjects/qumlstringexpressionobject_p.h \
+ qobjects/qumlstructuredactivitynodeobject_p.h \
+ qobjects/qumlsubstitutionobject_p.h \
+ qobjects/qumltemplatebindingobject_p.h \
+ qobjects/qumltemplateparameterobject_p.h \
+ qobjects/qumltemplateparametersubstitutionobject_p.h \
+ qobjects/qumltemplatesignatureobject_p.h \
+ qobjects/qumltestidentityactionobject_p.h \
+ qobjects/qumltimeconstraintobject_p.h \
+ qobjects/qumltimeeventobject_p.h \
+ qobjects/qumltimeexpressionobject_p.h \
+ qobjects/qumltimeintervalobject_p.h \
+ qobjects/qumltimeobservationobject_p.h \
+ qobjects/qumltransitionobject_p.h \
+ qobjects/qumltriggerobject_p.h \
+ qobjects/qumlunmarshallactionobject_p.h \
+ qobjects/qumlusageobject_p.h \
+ qobjects/qumlusecaseobject_p.h \
+ qobjects/qumlvaluepinobject_p.h \
+ qobjects/qumlvaluespecificationactionobject_p.h \
+ qobjects/qumlvariableobject_p.h
SOURCES += \
qtumlnamespace.cpp \
- internal/umlabstraction.cpp \
+ qobjects/qumlabstractionobject.cpp \
qumlabstraction.cpp \
- internal/umlacceptcallaction.cpp \
+ qobjects/qumlacceptcallactionobject.cpp \
qumlacceptcallaction.cpp \
- internal/umlaccepteventaction.cpp \
+ qobjects/qumlaccepteventactionobject.cpp \
qumlaccepteventaction.cpp \
- internal/umlaction.cpp \
qumlaction.cpp \
- internal/umlactionexecutionspecification.cpp \
+ qobjects/qumlactionexecutionspecificationobject.cpp \
qumlactionexecutionspecification.cpp \
- internal/umlactioninputpin.cpp \
+ qobjects/qumlactioninputpinobject.cpp \
qumlactioninputpin.cpp \
- internal/umlactivity.cpp \
+ qobjects/qumlactivityobject.cpp \
qumlactivity.cpp \
- internal/umlactivityedge.cpp \
qumlactivityedge.cpp \
- internal/umlactivityfinalnode.cpp \
+ qobjects/qumlactivityfinalnodeobject.cpp \
qumlactivityfinalnode.cpp \
- internal/umlactivitygroup.cpp \
qumlactivitygroup.cpp \
- internal/umlactivitynode.cpp \
qumlactivitynode.cpp \
- internal/umlactivityparameternode.cpp \
+ qobjects/qumlactivityparameternodeobject.cpp \
qumlactivityparameternode.cpp \
- internal/umlactivitypartition.cpp \
+ qobjects/qumlactivitypartitionobject.cpp \
qumlactivitypartition.cpp \
- internal/umlactor.cpp \
+ qobjects/qumlactorobject.cpp \
qumlactor.cpp \
- internal/umladdstructuralfeaturevalueaction.cpp \
+ qobjects/qumladdstructuralfeaturevalueactionobject.cpp \
qumladdstructuralfeaturevalueaction.cpp \
- internal/umladdvariablevalueaction.cpp \
+ qobjects/qumladdvariablevalueactionobject.cpp \
qumladdvariablevalueaction.cpp \
- internal/umlanyreceiveevent.cpp \
+ qobjects/qumlanyreceiveeventobject.cpp \
qumlanyreceiveevent.cpp \
- internal/umlartifact.cpp \
+ qobjects/qumlartifactobject.cpp \
qumlartifact.cpp \
- internal/umlassociation.cpp \
+ qobjects/qumlassociationobject.cpp \
qumlassociation.cpp \
- internal/umlassociationclass.cpp \
+ qobjects/qumlassociationclassobject.cpp \
qumlassociationclass.cpp \
- internal/umlbehavior.cpp \
qumlbehavior.cpp \
- internal/umlbehaviorexecutionspecification.cpp \
+ qobjects/qumlbehaviorexecutionspecificationobject.cpp \
qumlbehaviorexecutionspecification.cpp \
- internal/umlbehavioralfeature.cpp \
qumlbehavioralfeature.cpp \
- internal/umlbehavioredclassifier.cpp \
qumlbehavioredclassifier.cpp \
- internal/umlbroadcastsignalaction.cpp \
+ qobjects/qumlbroadcastsignalactionobject.cpp \
qumlbroadcastsignalaction.cpp \
- internal/umlcallaction.cpp \
qumlcallaction.cpp \
- internal/umlcallbehavioraction.cpp \
+ qobjects/qumlcallbehavioractionobject.cpp \
qumlcallbehavioraction.cpp \
- internal/umlcallevent.cpp \
+ qobjects/qumlcalleventobject.cpp \
qumlcallevent.cpp \
- internal/umlcalloperationaction.cpp \
+ qobjects/qumlcalloperationactionobject.cpp \
qumlcalloperationaction.cpp \
- internal/umlcentralbuffernode.cpp \
+ qobjects/qumlcentralbuffernodeobject.cpp \
qumlcentralbuffernode.cpp \
- internal/umlchangeevent.cpp \
+ qobjects/qumlchangeeventobject.cpp \
qumlchangeevent.cpp \
- internal/umlclass.cpp \
+ qobjects/qumlclassobject.cpp \
qumlclass.cpp \
- internal/umlclassifier.cpp \
qumlclassifier.cpp \
- internal/umlclassifiertemplateparameter.cpp \
+ qobjects/qumlclassifiertemplateparameterobject.cpp \
qumlclassifiertemplateparameter.cpp \
- internal/umlclause.cpp \
+ qobjects/qumlclauseobject.cpp \
qumlclause.cpp \
- internal/umlclearassociationaction.cpp \
+ qobjects/qumlclearassociationactionobject.cpp \
qumlclearassociationaction.cpp \
- internal/umlclearstructuralfeatureaction.cpp \
+ qobjects/qumlclearstructuralfeatureactionobject.cpp \
qumlclearstructuralfeatureaction.cpp \
- internal/umlclearvariableaction.cpp \
+ qobjects/qumlclearvariableactionobject.cpp \
qumlclearvariableaction.cpp \
- internal/umlcollaboration.cpp \
+ qobjects/qumlcollaborationobject.cpp \
qumlcollaboration.cpp \
- internal/umlcollaborationuse.cpp \
+ qobjects/qumlcollaborationuseobject.cpp \
qumlcollaborationuse.cpp \
- internal/umlcombinedfragment.cpp \
+ qobjects/qumlcombinedfragmentobject.cpp \
qumlcombinedfragment.cpp \
- internal/umlcomment.cpp \
+ qobjects/qumlcommentobject.cpp \
qumlcomment.cpp \
- internal/umlcommunicationpath.cpp \
+ qobjects/qumlcommunicationpathobject.cpp \
qumlcommunicationpath.cpp \
- internal/umlcomponent.cpp \
+ qobjects/qumlcomponentobject.cpp \
qumlcomponent.cpp \
- internal/umlcomponentrealization.cpp \
+ qobjects/qumlcomponentrealizationobject.cpp \
qumlcomponentrealization.cpp \
- internal/umlconditionalnode.cpp \
+ qobjects/qumlconditionalnodeobject.cpp \
qumlconditionalnode.cpp \
- internal/umlconnectableelement.cpp \
qumlconnectableelement.cpp \
- internal/umlconnectableelementtemplateparameter.cpp \
+ qobjects/qumlconnectableelementtemplateparameterobject.cpp \
qumlconnectableelementtemplateparameter.cpp \
- internal/umlconnectionpointreference.cpp \
+ qobjects/qumlconnectionpointreferenceobject.cpp \
qumlconnectionpointreference.cpp \
- internal/umlconnector.cpp \
+ qobjects/qumlconnectorobject.cpp \
qumlconnector.cpp \
- internal/umlconnectorend.cpp \
+ qobjects/qumlconnectorendobject.cpp \
qumlconnectorend.cpp \
- internal/umlconsiderignorefragment.cpp \
+ qobjects/qumlconsiderignorefragmentobject.cpp \
qumlconsiderignorefragment.cpp \
- internal/umlconstraint.cpp \
+ qobjects/qumlconstraintobject.cpp \
qumlconstraint.cpp \
- internal/umlcontinuation.cpp \
+ qobjects/qumlcontinuationobject.cpp \
qumlcontinuation.cpp \
- internal/umlcontrolflow.cpp \
+ qobjects/qumlcontrolflowobject.cpp \
qumlcontrolflow.cpp \
- internal/umlcontrolnode.cpp \
qumlcontrolnode.cpp \
- internal/umlcreatelinkaction.cpp \
+ qobjects/qumlcreatelinkactionobject.cpp \
qumlcreatelinkaction.cpp \
- internal/umlcreatelinkobjectaction.cpp \
+ qobjects/qumlcreatelinkobjectactionobject.cpp \
qumlcreatelinkobjectaction.cpp \
- internal/umlcreateobjectaction.cpp \
+ qobjects/qumlcreateobjectactionobject.cpp \
qumlcreateobjectaction.cpp \
- internal/umldatastorenode.cpp \
+ qobjects/qumldatastorenodeobject.cpp \
qumldatastorenode.cpp \
- internal/umldatatype.cpp \
+ qobjects/qumldatatypeobject.cpp \
qumldatatype.cpp \
- internal/umldecisionnode.cpp \
+ qobjects/qumldecisionnodeobject.cpp \
qumldecisionnode.cpp \
- internal/umldependency.cpp \
+ qobjects/qumldependencyobject.cpp \
qumldependency.cpp \
- internal/umldeployedartifact.cpp \
qumldeployedartifact.cpp \
- internal/umldeployment.cpp \
+ qobjects/qumldeploymentobject.cpp \
qumldeployment.cpp \
- internal/umldeploymentspecification.cpp \
+ qobjects/qumldeploymentspecificationobject.cpp \
qumldeploymentspecification.cpp \
- internal/umldeploymenttarget.cpp \
qumldeploymenttarget.cpp \
- internal/umldestroylinkaction.cpp \
+ qobjects/qumldestroylinkactionobject.cpp \
qumldestroylinkaction.cpp \
- internal/umldestroyobjectaction.cpp \
+ qobjects/qumldestroyobjectactionobject.cpp \
qumldestroyobjectaction.cpp \
- internal/umldestructionoccurrencespecification.cpp \
+ qobjects/qumldestructionoccurrencespecificationobject.cpp \
qumldestructionoccurrencespecification.cpp \
- internal/umldevice.cpp \
+ qobjects/qumldeviceobject.cpp \
qumldevice.cpp \
- internal/umldirectedrelationship.cpp \
qumldirectedrelationship.cpp \
- internal/umlduration.cpp \
+ qobjects/qumldurationobject.cpp \
qumlduration.cpp \
- internal/umldurationconstraint.cpp \
+ qobjects/qumldurationconstraintobject.cpp \
qumldurationconstraint.cpp \
- internal/umldurationinterval.cpp \
+ qobjects/qumldurationintervalobject.cpp \
qumldurationinterval.cpp \
- internal/umldurationobservation.cpp \
+ qobjects/qumldurationobservationobject.cpp \
qumldurationobservation.cpp \
- internal/umlelement.cpp \
qumlelement.cpp \
- internal/umlelementimport.cpp \
+ qobjects/qumlelementimportobject.cpp \
qumlelementimport.cpp \
- internal/umlencapsulatedclassifier.cpp \
qumlencapsulatedclassifier.cpp \
- internal/umlenumeration.cpp \
+ qobjects/qumlenumerationobject.cpp \
qumlenumeration.cpp \
- internal/umlenumerationliteral.cpp \
+ qobjects/qumlenumerationliteralobject.cpp \
qumlenumerationliteral.cpp \
- internal/umlevent.cpp \
qumlevent.cpp \
- internal/umlexceptionhandler.cpp \
+ qobjects/qumlexceptionhandlerobject.cpp \
qumlexceptionhandler.cpp \
- internal/umlexecutablenode.cpp \
qumlexecutablenode.cpp \
- internal/umlexecutionenvironment.cpp \
+ qobjects/qumlexecutionenvironmentobject.cpp \
qumlexecutionenvironment.cpp \
- internal/umlexecutionoccurrencespecification.cpp \
+ qobjects/qumlexecutionoccurrencespecificationobject.cpp \
qumlexecutionoccurrencespecification.cpp \
- internal/umlexecutionspecification.cpp \
qumlexecutionspecification.cpp \
- internal/umlexpansionnode.cpp \
+ qobjects/qumlexpansionnodeobject.cpp \
qumlexpansionnode.cpp \
- internal/umlexpansionregion.cpp \
+ qobjects/qumlexpansionregionobject.cpp \
qumlexpansionregion.cpp \
- internal/umlexpression.cpp \
+ qobjects/qumlexpressionobject.cpp \
qumlexpression.cpp \
- internal/umlextend.cpp \
+ qobjects/qumlextendobject.cpp \
qumlextend.cpp \
- internal/umlextension.cpp \
+ qobjects/qumlextensionobject.cpp \
qumlextension.cpp \
- internal/umlextensionend.cpp \
+ qobjects/qumlextensionendobject.cpp \
qumlextensionend.cpp \
- internal/umlextensionpoint.cpp \
+ qobjects/qumlextensionpointobject.cpp \
qumlextensionpoint.cpp \
- internal/umlfeature.cpp \
qumlfeature.cpp \
- internal/umlfinalnode.cpp \
qumlfinalnode.cpp \
- internal/umlfinalstate.cpp \
+ qobjects/qumlfinalstateobject.cpp \
qumlfinalstate.cpp \
- internal/umlflowfinalnode.cpp \
+ qobjects/qumlflowfinalnodeobject.cpp \
qumlflowfinalnode.cpp \
- internal/umlforknode.cpp \
+ qobjects/qumlforknodeobject.cpp \
qumlforknode.cpp \
- internal/umlfunctionbehavior.cpp \
+ qobjects/qumlfunctionbehaviorobject.cpp \
qumlfunctionbehavior.cpp \
- internal/umlgate.cpp \
+ qobjects/qumlgateobject.cpp \
qumlgate.cpp \
- internal/umlgeneralordering.cpp \
+ qobjects/qumlgeneralorderingobject.cpp \
qumlgeneralordering.cpp \
- internal/umlgeneralization.cpp \
+ qobjects/qumlgeneralizationobject.cpp \
qumlgeneralization.cpp \
- internal/umlgeneralizationset.cpp \
+ qobjects/qumlgeneralizationsetobject.cpp \
qumlgeneralizationset.cpp \
- internal/umlimage.cpp \
+ qobjects/qumlimageobject.cpp \
qumlimage.cpp \
- internal/umlinclude.cpp \
+ qobjects/qumlincludeobject.cpp \
qumlinclude.cpp \
- internal/umlinformationflow.cpp \
+ qobjects/qumlinformationflowobject.cpp \
qumlinformationflow.cpp \
- internal/umlinformationitem.cpp \
+ qobjects/qumlinformationitemobject.cpp \
qumlinformationitem.cpp \
- internal/umlinitialnode.cpp \
+ qobjects/qumlinitialnodeobject.cpp \
qumlinitialnode.cpp \
- internal/umlinputpin.cpp \
+ qobjects/qumlinputpinobject.cpp \
qumlinputpin.cpp \
- internal/umlinstancespecification.cpp \
+ qobjects/qumlinstancespecificationobject.cpp \
qumlinstancespecification.cpp \
- internal/umlinstancevalue.cpp \
+ qobjects/qumlinstancevalueobject.cpp \
qumlinstancevalue.cpp \
- internal/umlinteraction.cpp \
+ qobjects/qumlinteractionobject.cpp \
qumlinteraction.cpp \
- internal/umlinteractionconstraint.cpp \
+ qobjects/qumlinteractionconstraintobject.cpp \
qumlinteractionconstraint.cpp \
- internal/umlinteractionfragment.cpp \
qumlinteractionfragment.cpp \
- internal/umlinteractionoperand.cpp \
+ qobjects/qumlinteractionoperandobject.cpp \
qumlinteractionoperand.cpp \
- internal/umlinteractionuse.cpp \
+ qobjects/qumlinteractionuseobject.cpp \
qumlinteractionuse.cpp \
- internal/umlinterface.cpp \
+ qobjects/qumlinterfaceobject.cpp \
qumlinterface.cpp \
- internal/umlinterfacerealization.cpp \
+ qobjects/qumlinterfacerealizationobject.cpp \
qumlinterfacerealization.cpp \
- internal/umlinterruptibleactivityregion.cpp \
+ qobjects/qumlinterruptibleactivityregionobject.cpp \
qumlinterruptibleactivityregion.cpp \
- internal/umlinterval.cpp \
+ qobjects/qumlintervalobject.cpp \
qumlinterval.cpp \
- internal/umlintervalconstraint.cpp \
+ qobjects/qumlintervalconstraintobject.cpp \
qumlintervalconstraint.cpp \
- internal/umlinvocationaction.cpp \
qumlinvocationaction.cpp \
- internal/umljoinnode.cpp \
+ qobjects/qumljoinnodeobject.cpp \
qumljoinnode.cpp \
- internal/umllifeline.cpp \
+ qobjects/qumllifelineobject.cpp \
qumllifeline.cpp \
- internal/umllinkaction.cpp \
qumllinkaction.cpp \
- internal/umllinkendcreationdata.cpp \
+ qobjects/qumllinkendcreationdataobject.cpp \
qumllinkendcreationdata.cpp \
- internal/umllinkenddata.cpp \
+ qobjects/qumllinkenddataobject.cpp \
qumllinkenddata.cpp \
- internal/umllinkenddestructiondata.cpp \
+ qobjects/qumllinkenddestructiondataobject.cpp \
qumllinkenddestructiondata.cpp \
- internal/umlliteralboolean.cpp \
+ qobjects/qumlliteralbooleanobject.cpp \
qumlliteralboolean.cpp \
- internal/umlliteralinteger.cpp \
+ qobjects/qumlliteralintegerobject.cpp \
qumlliteralinteger.cpp \
- internal/umlliteralnull.cpp \
+ qobjects/qumlliteralnullobject.cpp \
qumlliteralnull.cpp \
- internal/umlliteralreal.cpp \
+ qobjects/qumlliteralrealobject.cpp \
qumlliteralreal.cpp \
- internal/umlliteralspecification.cpp \
qumlliteralspecification.cpp \
- internal/umlliteralstring.cpp \
+ qobjects/qumlliteralstringobject.cpp \
qumlliteralstring.cpp \
- internal/umlliteralunlimitednatural.cpp \
+ qobjects/qumlliteralunlimitednaturalobject.cpp \
qumlliteralunlimitednatural.cpp \
- internal/umlloopnode.cpp \
+ qobjects/qumlloopnodeobject.cpp \
qumlloopnode.cpp \
- internal/umlmanifestation.cpp \
+ qobjects/qumlmanifestationobject.cpp \
qumlmanifestation.cpp \
- internal/umlmergenode.cpp \
+ qobjects/qumlmergenodeobject.cpp \
qumlmergenode.cpp \
- internal/umlmessage.cpp \
+ qobjects/qumlmessageobject.cpp \
qumlmessage.cpp \
- internal/umlmessageend.cpp \
qumlmessageend.cpp \
- internal/umlmessageevent.cpp \
qumlmessageevent.cpp \
- internal/umlmessageoccurrencespecification.cpp \
+ qobjects/qumlmessageoccurrencespecificationobject.cpp \
qumlmessageoccurrencespecification.cpp \
- internal/umlmodel.cpp \
+ qobjects/qumlmodelobject.cpp \
qumlmodel.cpp \
- internal/umlmultiplicityelement.cpp \
qumlmultiplicityelement.cpp \
- internal/umlnamedelement.cpp \
qumlnamedelement.cpp \
- internal/umlnamespace.cpp \
qumlnamespace.cpp \
- internal/umlnode.cpp \
+ qobjects/qumlnodeobject.cpp \
qumlnode.cpp \
- internal/umlobjectflow.cpp \
+ qobjects/qumlobjectflowobject.cpp \
qumlobjectflow.cpp \
- internal/umlobjectnode.cpp \
qumlobjectnode.cpp \
- internal/umlobservation.cpp \
qumlobservation.cpp \
- internal/umloccurrencespecification.cpp \
+ qobjects/qumloccurrencespecificationobject.cpp \
qumloccurrencespecification.cpp \
- internal/umlopaqueaction.cpp \
+ qobjects/qumlopaqueactionobject.cpp \
qumlopaqueaction.cpp \
- internal/umlopaquebehavior.cpp \
+ qobjects/qumlopaquebehaviorobject.cpp \
qumlopaquebehavior.cpp \
- internal/umlopaqueexpression.cpp \
+ qobjects/qumlopaqueexpressionobject.cpp \
qumlopaqueexpression.cpp \
- internal/umloperation.cpp \
+ qobjects/qumloperationobject.cpp \
qumloperation.cpp \
- internal/umloperationtemplateparameter.cpp \
+ qobjects/qumloperationtemplateparameterobject.cpp \
qumloperationtemplateparameter.cpp \
- internal/umloutputpin.cpp \
+ qobjects/qumloutputpinobject.cpp \
qumloutputpin.cpp \
- internal/umlpackage.cpp \
+ qobjects/qumlpackageobject.cpp \
qumlpackage.cpp \
- internal/umlpackageimport.cpp \
+ qobjects/qumlpackageimportobject.cpp \
qumlpackageimport.cpp \
- internal/umlpackagemerge.cpp \
+ qobjects/qumlpackagemergeobject.cpp \
qumlpackagemerge.cpp \
- internal/umlpackageableelement.cpp \
qumlpackageableelement.cpp \
- internal/umlparameter.cpp \
+ qobjects/qumlparameterobject.cpp \
qumlparameter.cpp \
- internal/umlparameterset.cpp \
+ qobjects/qumlparametersetobject.cpp \
qumlparameterset.cpp \
- internal/umlparameterableelement.cpp \
qumlparameterableelement.cpp \
- internal/umlpartdecomposition.cpp \
+ qobjects/qumlpartdecompositionobject.cpp \
qumlpartdecomposition.cpp \
- internal/umlpin.cpp \
qumlpin.cpp \
- internal/umlport.cpp \
+ qobjects/qumlportobject.cpp \
qumlport.cpp \
- internal/umlprimitivetype.cpp \
+ qobjects/qumlprimitivetypeobject.cpp \
qumlprimitivetype.cpp \
- internal/umlprofile.cpp \
+ qobjects/qumlprofileobject.cpp \
qumlprofile.cpp \
- internal/umlprofileapplication.cpp \
+ qobjects/qumlprofileapplicationobject.cpp \
qumlprofileapplication.cpp \
- internal/umlproperty.cpp \
+ qobjects/qumlpropertyobject.cpp \
qumlproperty.cpp \
- internal/umlprotocolconformance.cpp \
+ qobjects/qumlprotocolconformanceobject.cpp \
qumlprotocolconformance.cpp \
- internal/umlprotocolstatemachine.cpp \
+ qobjects/qumlprotocolstatemachineobject.cpp \
qumlprotocolstatemachine.cpp \
- internal/umlprotocoltransition.cpp \
+ qobjects/qumlprotocoltransitionobject.cpp \
qumlprotocoltransition.cpp \
- internal/umlpseudostate.cpp \
+ qobjects/qumlpseudostateobject.cpp \
qumlpseudostate.cpp \
- internal/umlqualifiervalue.cpp \
+ qobjects/qumlqualifiervalueobject.cpp \
qumlqualifiervalue.cpp \
- internal/umlraiseexceptionaction.cpp \
+ qobjects/qumlraiseexceptionactionobject.cpp \
qumlraiseexceptionaction.cpp \
- internal/umlreadextentaction.cpp \
+ qobjects/qumlreadextentactionobject.cpp \
qumlreadextentaction.cpp \
- internal/umlreadisclassifiedobjectaction.cpp \
+ qobjects/qumlreadisclassifiedobjectactionobject.cpp \
qumlreadisclassifiedobjectaction.cpp \
- internal/umlreadlinkaction.cpp \
+ qobjects/qumlreadlinkactionobject.cpp \
qumlreadlinkaction.cpp \
- internal/umlreadlinkobjectendaction.cpp \
+ qobjects/qumlreadlinkobjectendactionobject.cpp \
qumlreadlinkobjectendaction.cpp \
- internal/umlreadlinkobjectendqualifieraction.cpp \
+ qobjects/qumlreadlinkobjectendqualifieractionobject.cpp \
qumlreadlinkobjectendqualifieraction.cpp \
- internal/umlreadselfaction.cpp \
+ qobjects/qumlreadselfactionobject.cpp \
qumlreadselfaction.cpp \
- internal/umlreadstructuralfeatureaction.cpp \
+ qobjects/qumlreadstructuralfeatureactionobject.cpp \
qumlreadstructuralfeatureaction.cpp \
- internal/umlreadvariableaction.cpp \
+ qobjects/qumlreadvariableactionobject.cpp \
qumlreadvariableaction.cpp \
- internal/umlrealization.cpp \
+ qobjects/qumlrealizationobject.cpp \
qumlrealization.cpp \
- internal/umlreception.cpp \
+ qobjects/qumlreceptionobject.cpp \
qumlreception.cpp \
- internal/umlreclassifyobjectaction.cpp \
+ qobjects/qumlreclassifyobjectactionobject.cpp \
qumlreclassifyobjectaction.cpp \
- internal/umlredefinableelement.cpp \
qumlredefinableelement.cpp \
- internal/umlredefinabletemplatesignature.cpp \
+ qobjects/qumlredefinabletemplatesignatureobject.cpp \
qumlredefinabletemplatesignature.cpp \
- internal/umlreduceaction.cpp \
+ qobjects/qumlreduceactionobject.cpp \
qumlreduceaction.cpp \
- internal/umlregion.cpp \
+ qobjects/qumlregionobject.cpp \
qumlregion.cpp \
- internal/umlrelationship.cpp \
qumlrelationship.cpp \
- internal/umlremovestructuralfeaturevalueaction.cpp \
+ qobjects/qumlremovestructuralfeaturevalueactionobject.cpp \
qumlremovestructuralfeaturevalueaction.cpp \
- internal/umlremovevariablevalueaction.cpp \
+ qobjects/qumlremovevariablevalueactionobject.cpp \
qumlremovevariablevalueaction.cpp \
- internal/umlreplyaction.cpp \
+ qobjects/qumlreplyactionobject.cpp \
qumlreplyaction.cpp \
- internal/umlsendobjectaction.cpp \
+ qobjects/qumlsendobjectactionobject.cpp \
qumlsendobjectaction.cpp \
- internal/umlsendsignalaction.cpp \
+ qobjects/qumlsendsignalactionobject.cpp \
qumlsendsignalaction.cpp \
- internal/umlsequencenode.cpp \
+ qobjects/qumlsequencenodeobject.cpp \
qumlsequencenode.cpp \
- internal/umlsignal.cpp \
+ qobjects/qumlsignalobject.cpp \
qumlsignal.cpp \
- internal/umlsignalevent.cpp \
+ qobjects/qumlsignaleventobject.cpp \
qumlsignalevent.cpp \
- internal/umlslot.cpp \
+ qobjects/qumlslotobject.cpp \
qumlslot.cpp \
- internal/umlstartclassifierbehavioraction.cpp \
+ qobjects/qumlstartclassifierbehavioractionobject.cpp \
qumlstartclassifierbehavioraction.cpp \
- internal/umlstartobjectbehavioraction.cpp \
+ qobjects/qumlstartobjectbehavioractionobject.cpp \
qumlstartobjectbehavioraction.cpp \
- internal/umlstate.cpp \
+ qobjects/qumlstateobject.cpp \
qumlstate.cpp \
- internal/umlstateinvariant.cpp \
+ qobjects/qumlstateinvariantobject.cpp \
qumlstateinvariant.cpp \
- internal/umlstatemachine.cpp \
+ qobjects/qumlstatemachineobject.cpp \
qumlstatemachine.cpp \
- internal/umlstereotype.cpp \
+ qobjects/qumlstereotypeobject.cpp \
qumlstereotype.cpp \
- internal/umlstringexpression.cpp \
+ qobjects/qumlstringexpressionobject.cpp \
qumlstringexpression.cpp \
- internal/umlstructuralfeature.cpp \
qumlstructuralfeature.cpp \
- internal/umlstructuralfeatureaction.cpp \
qumlstructuralfeatureaction.cpp \
- internal/umlstructuredactivitynode.cpp \
+ qobjects/qumlstructuredactivitynodeobject.cpp \
qumlstructuredactivitynode.cpp \
- internal/umlstructuredclassifier.cpp \
qumlstructuredclassifier.cpp \
- internal/umlsubstitution.cpp \
+ qobjects/qumlsubstitutionobject.cpp \
qumlsubstitution.cpp \
- internal/umltemplatebinding.cpp \
+ qobjects/qumltemplatebindingobject.cpp \
qumltemplatebinding.cpp \
- internal/umltemplateparameter.cpp \
+ qobjects/qumltemplateparameterobject.cpp \
qumltemplateparameter.cpp \
- internal/umltemplateparametersubstitution.cpp \
+ qobjects/qumltemplateparametersubstitutionobject.cpp \
qumltemplateparametersubstitution.cpp \
- internal/umltemplatesignature.cpp \
+ qobjects/qumltemplatesignatureobject.cpp \
qumltemplatesignature.cpp \
- internal/umltemplateableelement.cpp \
qumltemplateableelement.cpp \
- internal/umltestidentityaction.cpp \
+ qobjects/qumltestidentityactionobject.cpp \
qumltestidentityaction.cpp \
- internal/umltimeconstraint.cpp \
+ qobjects/qumltimeconstraintobject.cpp \
qumltimeconstraint.cpp \
- internal/umltimeevent.cpp \
+ qobjects/qumltimeeventobject.cpp \
qumltimeevent.cpp \
- internal/umltimeexpression.cpp \
+ qobjects/qumltimeexpressionobject.cpp \
qumltimeexpression.cpp \
- internal/umltimeinterval.cpp \
+ qobjects/qumltimeintervalobject.cpp \
qumltimeinterval.cpp \
- internal/umltimeobservation.cpp \
+ qobjects/qumltimeobservationobject.cpp \
qumltimeobservation.cpp \
- internal/umltransition.cpp \
+ qobjects/qumltransitionobject.cpp \
qumltransition.cpp \
- internal/umltrigger.cpp \
+ qobjects/qumltriggerobject.cpp \
qumltrigger.cpp \
- internal/umltype.cpp \
qumltype.cpp \
- internal/umltypedelement.cpp \
qumltypedelement.cpp \
- internal/umlunmarshallaction.cpp \
+ qobjects/qumlunmarshallactionobject.cpp \
qumlunmarshallaction.cpp \
- internal/umlusage.cpp \
+ qobjects/qumlusageobject.cpp \
qumlusage.cpp \
- internal/umlusecase.cpp \
+ qobjects/qumlusecaseobject.cpp \
qumlusecase.cpp \
- internal/umlvaluepin.cpp \
+ qobjects/qumlvaluepinobject.cpp \
qumlvaluepin.cpp \
- internal/umlvaluespecification.cpp \
qumlvaluespecification.cpp \
- internal/umlvaluespecificationaction.cpp \
+ qobjects/qumlvaluespecificationactionobject.cpp \
qumlvaluespecificationaction.cpp \
- internal/umlvariable.cpp \
+ qobjects/qumlvariableobject.cpp \
qumlvariable.cpp \
- internal/umlvariableaction.cpp \
qumlvariableaction.cpp \
- internal/umlvertex.cpp \
qumlvertex.cpp \
- internal/umlwritelinkaction.cpp \
qumlwritelinkaction.cpp \
- internal/umlwritestructuralfeatureaction.cpp \
qumlwritestructuralfeatureaction.cpp \
- internal/umlwritevariableaction.cpp \
qumlwritevariableaction.cpp
diff --git a/src/uml/uml.pro b/src/uml/uml.pro
index 93bd5c6d..26b526ac 100644
--- a/src/uml/uml.pro
+++ b/src/uml/uml.pro
@@ -8,3 +8,5 @@ QMAKE_DOCS = $$PWD/doc/qtuml.qdocconf
load(qt_module)
include(uml.pri)
+
+HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS